自动化测试selenium篇1
1.什么是自动化测试
自动化测试介绍:
自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果,将人为驱动的测试行为转化为机器执行的过程。
常见的自动化测试工具
- QTP :quiet fast profession 图形化界
- selenium:测试工具集 web端 开源 多平台
- jmeter:apache 开源 压力测试和接口测试的工具
- Loadrunner:性能测试(相应时间、吞吐率等)
- appium: 手机端应用测试工具 开源 IOS 安卓 Java Python
- soapui:接口测试工具
自动化测试方法
测试对象:UI、接口、代码
测试过程:系统测试、集成测试、单元测试
执行人员:测试人员、开发人员
- UI自动化
用例维护量大
页面相关性强,必须后期介入
UI测试适合与界面变动较小的项目 - 接口自动化
可在产品前期介入
用例维护量小
页面相关性小
适合接口变动较小,界面变动频繁的项目
自动化测试的适用对象
实施自动化测试的前提条件:需求变动不频繁、项目周期足够长、自动化测试脚本可重复使用
- 1、需求变动频繁的项目,自动化脚本不能重复使用,维护成本太大,性价比低
- 2、项目周期短,自动化脚本编制完成后使用次数不多,性价比低
- 3、交互型较强的项目,需要人工干预的项目,自动化无法实施
2.什么是Selenium
Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,支持多平台、多浏览器、多语言去实现自动化测试,Selenium2将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),所以就像真正的用户在操作一样。
Selenium的三多:
支持多种开发语言:ruby,python,java,perl,c#,
支持多平台:Windows、Linux、Mac
支持多浏览器: IE、Chrome 、Firefox、edge、Safari
selenium的工具集
selenium1:selenium IDE, selenium RC, selenium Grid
selenium2:selenium1+webdriver
selenium3:做了一些更新 增加了edge sarafi原生驱动
webdriver的工作原理:
- 启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的 remote server。
- 客户端(也就是测试脚本),借助ComandExecutor发送HTTP请求给sever端(通信协议:The WebDriver Wire
Protocol,在HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我
们希望浏览器接下来做什么事情)。 - Sever端需要依赖原生的浏览器组件,转化Web Service的命令为浏览器native的调用来完成操作
举个例子:
在WebDriver中也有类似的三个角色:
- 工程师写的自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动)
- 浏览器的驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器
- 浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。
所以在这个例子比中:
-
工程师写的自动化测试代码就相当于是乘客
-
浏览器的驱动就相当于是出租车司机
-
浏览器就相当于是出租车