目录
一、什么是自动化测试
在日常生活中我们会见到,自动化的水龙头、无人驾驶汽车、自动化的洗手液、自动化扫地机器人等…
自动化测试是指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将认为驱动的测试行为转化为机器执行的过程;通过自动化测试有效的减少了人力的投入,同时提高了测试的质量和效率。
二、自动化测试分类
自动化测试包括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、项目周期短,自动化脚本编制完成后使用次数不多,性价比低
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中编写代码,达到"在百度搜索框中搜索迪丽热巴"的目的
packagecom.autotest;importorg.openqa.selenium.By;importorg.openqa.selenium.chrome.ChromeDriver;publicclassTest1{//百度网址搜索关键词"迪丽热巴"publicvoiddilirebaTest()throwsInterruptedException{ChromeDriver chromeDriver=newChromeDriver();//创建一个驱动实例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();//关闭浏览器}}
第四步:启动程序
packagecom.autotest;publicclassRunAutoTest{publicstaticvoidmain(String[] args)throwsInterruptedException{Test1 test1=newTest1();
test1.dilirebaTest();}}
【简单的自动化示例主要分以下几步】
- 创建驱动实例,创建会话
- 访问网站
- 查找元素
- 操作元素
- 结束会话
版权归原作者 No regrets、 所有, 如有侵权,请联系我们删除。