测试篇(五):什么是自动化测试、自动化测试分类、selenium工具、第一个自动化测试程序

目录

一、什么是自动化测试

在日常生活中我们会见到,自动化的水龙头、无人驾驶汽车、自动化的洗手液、自动化扫地机器人等…

自动化测试是指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将认为驱动的测试行为转化为机器执行的过程;通过自动化测试有效的减少了人力的投入,同时提高了测试的质量和效率。

二、自动化测试分类

自动化测试包括UI自动化(界面测试)、接口自动化、单元测试自动化,按照下面这个金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(ROI),可以用较少的投入获得很好的收益。

2.1 单元测试

最大的投入应该在单元测试上,单元测试运行的频率也更加高。
java的单元测试框架是Junit

2.2 UI自动化测试

UI自动化测试又分为移动端自动化测试和web端自动化测试,后面介绍的selenium工具也是主要用于web端自动化测试的.

在测试金字塔中告诉我们尽量多做API层的自动化测试,但是UI层的自动化测试更加贴近用户的需求和软件的实际业务;

【UI自动化的特点】

  • 用例维护量大
  • 页面相关性强,必须后期项目页面开发完后介入
  • UI测试适用于界面变动较小的项目

【UI自动化的好处】

  • 用于回归测试,减少人力的投入
  • 减少重复测试的时间,实现快速回归测试
  • 创建优良可靠的测试过程,减少认为错误
  • 可进行更多繁琐的测试
  • 更好的利用资源
  • 测试脚本的重要性

【UI自动化测试框架】

UI层的测试框架比较多,比如Windows客户端测试的AutoIT,web测试的selenium以及TestPlanteggPlant,Robot framework,QTP等。
下面主要以Web UI自动化测试框架Selenium为例进行详细介绍。selenium有以下优点:

  • 免费,也不用再为破解软件而大伤脑筋
  • 小巧,对于不同的语言它只是一个包而已,而QTP 需要下载安装1个多G 的程序。
  • 支持多语言,熟悉C、java、ruby、python、或都是C#,你都 可以通过selenium 完成自动化测试,而QTP 只支持VBS
  • 支持多平台:windows、linux、MAC ,
  • 支持多浏览器:ie、ff、safari、opera、chrome
  • 提供了很多可供测试使用的API
  • 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器执行,相当于分发机的功能
     

【UI自动化测试的适用对象】

实施自动化测试的前提条件:需求变动不频繁、项目周期足够长、自动化测试脚本可重复使用。
适合做自动化的项目:

  1. 产品型项目。产品型的项目,新版本是在旧版本的基础上进行改进,功能变不大的项目,但项目的新老功能都必须重复的进行回归测试。回归测试是自动化测试的强项,它能够很好的验证你是否引入了新的缺陷,老的缺陷是否修改过来了。在某种程度上可以把自动化测试工具叫做回归测试工具。
  2. 机械并频繁的测试。每次需要输入相同、大量的一些数据,并且在一个项目中运行的周期比较长。比如兼容性测试。

以下情况的项目不适合做自动化测试:

1、需求变动频繁的项目,自动化脚本不能重复使用,维护成本太大,性价比低
2、项目周期短,自动化脚本编制完成后使用次数不多,性价比低
3、交互型较强的项目,需要人工干预的项目,自动化无法实施

【自动化测试需要了解哪些技能?】

了解被测系统的基本业务、了解业务的基本框架、懂得功能测试、懂得一门编程语言、了解数据库与操作系统、了解常见的测试框架…

 三、selenium工具
3.1 selenium的介绍

Selenium是web应用中基于UI的自动化测试框架,支持多平台、多浏览器、多语言。
早期的selenium RC已经被现在的webDriver所替代,可以简单的理解为selenium1.0+webdriver构成现在的Selenium2.0。现在我们说起selenium,一般指的是Selenium2.0。它有由Selenium IDE,Webdriver,Selenium Grid组成。
 

3.2 环境部署

想要使用selenium实施web自动化测试,需要的环境是什么呢?

  • 首先需要一个浏览器,我这里选择的使Chrome浏览器
  • ChromeDriver:谷歌浏览器的驱动
  • selenium工具包

【什么是浏览器的驱动?】

对于一台机计算机来说,可以驱动计算机和设备工作起来
对于自动化来说,使用selenium编写的脚本代码,不能直接的打开浏览器,这是就需要借助驱动程序打开浏览器

驱动程序相当于是一个服务器

3.3 selenium的常用方法

  • 查找页面元素 findElement

 

  • 查找标签/属性相同的元素列表 findElements()方法

  •  定位元素的方法 ,通过By类中提供的方法

 

  • xpath方法
  • 语法: 

对于xpath方法的使用,通过在页面中Copy XPath作为方法的参数即可 

四、第一个自动化测试用例

第一步:创建一个Maven项目,并引入selenium依赖

 第二步:在test目录下创建包和java文件

第三步:在Test1中编写代码,达到"在百度搜索框中搜索迪丽热巴"的目的 

package com.autotest;

import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;

public class Test1 {
    //百度网址搜索关键词"迪丽热巴"
    public  void dilirebaTest() throws InterruptedException {
        ChromeDriver chromeDriver=new ChromeDriver(); //创建一个驱动实例
        Thread.sleep(3000);
        chromeDriver.get("https://www.baidu.com"); //输入百度网址,访问百度首页
        Thread.sleep(3000);
        //找到搜索输入框元素,并输入关键字"迪丽热巴"
        chromeDriver.findElement(By.cssSelector("#kw")).sendKeys("迪丽热巴");
        Thread.sleep(3000);
        //找到"百度一下"按钮并点击
        chromeDriver.findElement(By.cssSelector("#su")).click();
        Thread.sleep(3000);
        chromeDriver.quit(); //关闭浏览器
    }
}

第四步:启动程序

package com.autotest;

public class RunAutoTest {

    public static void main(String[] args) throws InterruptedException {

        Test1 test1=new Test1();
        test1.dilirebaTest();
    }
}

【简单的自动化示例主要分以下几步】

  1. 创建驱动实例,创建会话
  2. 访问网站
  3. 查找元素
  4. 操作元素
  5. 结束会话

猜你喜欢

转载自blog.csdn.net/lzz718719/article/details/130683707