测试篇(五):什么是自动化测试、自动化测试分类、selenium工具、第一个自动化测试程序
创始人
2024-05-19 19:28:33
0

目录

  • 一、什么是自动化测试
  • 二、自动化测试分类
    • 2.1 单元测试
    • 2.2 UI自动化测试
  • 三、selenium工具
    • 3.1 selenium的介绍
    • 3.2 环境部署
    • 3.3 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. 结束会话

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...