一、什么是自动化测试
1. 概念
-
根据预设的条件去执行软件,手动测试结果,预设的条件设置有正常条件和异常条件。换句话说,就是将人为需要测试的内容,通过机器转换的过程
-
自动化测试包括UI自动化,接口自动化,单元测试自动化。具体的测试可详见文字 测试方法的分类 的最后
2. 常用自动化测试工具
- Jmeter :性能测试、接口测试,设置/录制脚本,测试静态或者动态资源的性能
- Selenium:性能测试,网页应用中最流行的开源自动化测试框架
- Loadrunner:性能测试,UI 界面录制,预测系统行为和性能的负载测试工具
- Postman:接口测试,提供功能强大的 Web API 和 HTTP 请求的调试
- Appscan:安全测试,适合安全专家的 Web 应用程序和 Web 服务渗透测试解决方案
- QTP:WebUI自动化测试,提供符合所有主要应用软件环境的功能测试和回归测试的自动化
- Soapui:接口测试,提供了所有所需的工具来测试和完善的测试
- Monkey:稳定性测试,软件附带在sdk中,适用于android和ios,通过adb shell,生成用户或系统的伪随机事件
3. 自动化测试金字塔
- UI 自动化 —— 用例维护量比较大,适用于界面稳定时候做自动化测试
- 接口自动化 —— 适合接口稳定的项目,效率比较高,用例维护量适中
- 单元测试 —— Java,Junit
- 由下往上,测试用例的维护越大,效率越低
4. 自动化测试的优势
- 降低大型系统的由于变更或者多期开发引起的大量的回归新试的人力投入
- 减少重复测试的时间,实现快速回归测试
- 创建优良可靠的测试过程,减少人为错误可以运行更多更繁琐的测试
- 可以执行一些手工测试困难或不可能进行的测试
- 更好的利用资源
- 测试具有一致性和重复性
- 测试脚本的重用性
5. 自动化测试的适用对象
实施自动化测试的前提条件:需求变动不频繁、项目周期足够长、自动化测试脚本可重复使用(兼容性测试,回归测试)
- 需求变动频繁的项目,自动化脚本不能重复使用,维护成本太大,性价比低
- 项目周期短,自动化脚本编制完成后使用次数不多,性价比低
- 交互型较强的项目,需要人工干预的项目,自动化无法实施
适合做自动化的项目:
- 产品型项目。产品型的项目,新版本是在旧版本的基础上进行改进,功能变不大的项目,但项目的新老功能都必须重复的进行回归测试。回归测试是自动化测试的强项,它能够很好的验证你是否引入了新的缺陷,老的缺陷是否修改过来了。在某种程度上可以把自动化测试工具叫做回归测试工具。
- 机械并频繁的测试。每次需要输入相同、大量的一些数据,并且在一个项目中运行的周期比较长。
6. 如何实施自动化测试
单纯的讲,自动化测试的具体实现,应该是包含下面七个过程的
- 分析:总体把握系统逻辑,分析出系统的核心体系架构
- 设计:设计测试用例,测试用例要足够明确和清晰,覆盖面广而精
- 实现:实现脚本,有两个要求一是断言,二是合理的运用参数化。
- 执行:执行脚本远远没有我们想象中那么简单。脚本执行过程中的异常需要我们仔细的去分析原因。
- 总结:测试结果的分析,和测试过程的总结是自动化测试的关键。
- 维护:自动化测试脚本的维护是一个难以解决但又必须要解决的问题。
- 分析:在自动化测试过程中深刻的分析自动化用例的覆盖风险和脚本维护的成本。
二、selenium 工具集
1. 特点
- 轻量级:安装方便,内存小
- 支持多语言进行操作:ruby,python,Java,C#等
- 支持多平台:Windows,mac
- 支持多浏览器:FireFox,IE,Chrome,edge,Opera,Safari
- 支持多分布测试:selenium,grid
2. 版本发展
-
selenium 1.0 (会有 JavaScript 发生拦截,出现环境沙箱问题)
selenium RC :远程控制服务器
selenium IDE:在火狐浏览器可下载,可以进行录制
selenium GRIFD:分布式的测试工具,类似服务器 -
selenium 2.0(解决了环境沙箱问题)
selenium 1.0 + webdriver(相当于司机) -
selenium 3.0
增加了一些新的特性,edge,Safari 的原生内核,可以直接在浏览器进行测试
3. 安装与使用
- 在 PyCharm 的终端处中对 Selenium 进行下载
pip install selenium
-
下载对应浏览器的驱动:
谷歌浏览器驱动
火狐浏览器驱动
注意:应下载和浏览器对应版本的驱动,否则运行代码会出现闪退的情况
-
对驱动进行配置
将下载的驱动文件解压放到 python 目录下
-
利用代码进行测试(这里我采用火狐浏览器)
from selenium import webdriver
# 创建Webdriver对象,指明使用Chromedriver,运行FireFox浏览器
wd = webdriver.FireFox()
# 调用Webdriver对象的get方法,打开网址
wd.get("https://www.baidu.com")
出现如下形式就说明安装成功
三、利用 Selenium IDE 录制脚本
1. 安装
- 我们选择在火狐浏览器进行安装,因为其他浏览器安装比较复杂困难。首先要安装好火狐浏览器,同时在设置设置中取消自动更新
- 可以直接在浏览器的扩展与主题中直接搜索并下载 selenium ide
2. 使用
-
首先点击浏览器里的 Selenium Ide 的图标,进入初始化界面
-
点击 Record a new test in a new project,输入想要保存的项目名点击【OK】,以及录制对应的的 URL 地址,点击【START RECORDING】,开始录制
-
开始录制后,会自动打开界面,在界面进行操作后关闭窗口,点击录制停止按钮,输入用例名称点击【OK】,就操作完成了
3. 导出用例
- 选中想要导出的用例,右键鼠标,选择【Export】,选择要导出的代码格式
- 利用 Pycharm 运行导出的代码,同时需要配置好运行环境
① 安装pytest,点击【File】→【Settings】→【Project:xxx.py】→【Python:Interpreter】点击添加按钮【+】,搜索pytest,选择安装包,点击【Install Package】,若还缺少其它包,通过此方法添加即可
② 已配置好WebDriver,ChromeDriver或者FireFoxDriver,具体依据所选浏览器
③ 同时,在代码后添加main函数,进行运行
if __name__ == '__main__':
pytest.main()
4. 其他操作
除了上述基本的简单操作外,页面还有一些其他的功能