目录
什么是自动化测试
自动化测试
单元测试
接口测试
UI自动化测试
适合做自动化测试的项目
如何实施自动化测试
自动化测试需要了解的技能
selenium介绍
特性
原理
什么是自动化测试
自动化测试
自动化测试是指软件测试的自动化, 在预设状态下运行应用程序或者系统,预设条件包括正常和异常, 最后评估运行结果. 将人为驱动的测试转换成机器执行的过程.
下面是自动化测试的金字塔.
自动化测试包括UI自动化, 接口自动化, 单元测试自动化. 按照这个金字塔模型来进行自动化规划, 可以产生最佳的自动化测试产出投入比(ROI), 可以用较小的投入获得很好的收益.
单元测试
最大的投入应该在单元测试上. 单元测试运行的频率也更加高.
java的单元测试框架是Junit.
接口测试
接口测试就是API测试, 相对于UI自动化,API自动化更容易实现, 执行起来也更加稳定.
接口自动化的有以下特点:
可在产品前期, 接口完成后介入;
用例维护量小;
适合接口变动较小, 界面变动频繁的项目.
常见的接口自动化测试工具有RobotFramework, JMeter, SoapUI, TestNG+HttpClient, Postman.
UI自动化测试
虽然测试金字塔告诉我们尽量多做API层的自动化测试, 但是UI层的自动化测试更加贴近用户的需求和软件系统的实际业务. 并且有时候我们不得不进行UI层的测试.
UI自动化的特点:
用例维护量大
页面相关性强, 必须后期项目页面开发完成后介入
UI测试适合与界面变动较小的项目.
UI自动化测试的好处:
降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力投入, 这可能是自动化测试主要的任务, 特别是在程序修改比较频繁, 效果是非常明显的, 自动化测试前期人力投入比较多, 但后期进入维护期后, 可节省大量人力, 而手工测试后期需要增加大量人力用于回归测试.
减少重复测试时间, 实现快速回归测试.
创建优良可靠的测试过程, 减少人为错误.
可以运行更多更繁琐的测试.
可以执行一些手工测试困难或不可能进行的测试.
更好地利用资源.
测试脚本的重要性.
UI自动化测试的适用对象:
实施自动化测试的前置条件: 需求变动频繁, 项目周期足够长, 自动化测试脚本可重复使用.
适合做自动化测试的项目
1.产品型项目. 产品型的项目, 新版本是在旧版本的基础上改进, 功能变动不大的项目, 但项目的新老功能都必须重复的进行回归测试. 回归测试是自动化测试的强项, 它能够很好地验证你是否引入了新的缺陷, 老的缺陷是否改过来了. 在某种程度上可以把自动化测试的工具叫做回归测试工具.
2.机械并频繁的测试. 每次输入相同, 大量的一些数据, 并且在一个项目中运行周期较长的测试, 比如兼容性测试.
以下情况的项目不适合做自动化测试:
1.需求变动频繁的项目, 自动化脚本不能重复使用, 维护成本太大, 性价比低.
2.项目周期短, 自动化脚本编制完成后使用次数不多, 性价比低.
3.交互性较强的项目, 需要人工干预的项目, 自动化项目无法实施.
如何实施自动化测试
单纯地讲, 自动化测试的具体实现, 应该包含以下七个过程:
1.分析: 总体把握系统逻辑, 分析出系统的核心体系架构.
2.设计: 设计测试用例, 测试用例要足够明确和分析, 覆盖面广而精.
3.实现: 实现脚本, 有两个要求: (1)断言. (2)合理运用参数化.
4.执行: 执行脚本远没有想象的那么简单. 脚本执行过程中的异常需要我们仔细地去分析原因.
5.总结: 测试结果的分析,和测试过程中的总结是自动化测试的关键.
6.维护: 自动化测试脚本的维护是一个难以解决但必须解决的问题.
7.分析: 在自动化测试过程中深刻分析自动化用例的覆盖风险和脚本维护的成本.
自动化测试需要了解的技能
了解测试系统的基本业务
了解业务的技术框架
懂得功能测试
懂得一种编程语言
懂数据库, 操作系统.
了解常见的测试框架.
selenium介绍
Selenium是web应用中基于UI自动化测试框架, 支持多平台, 多浏览器, 多语言.
特性
1.跨浏览器兼容性: Selenium支持多种主流的Web浏览器, 包括Chrome, Firefox, Edge Safari等, 可以在不同浏览器上运行相同的测试用例.
2.多语言支持: Selenium支持多种编程语言, 如Java, Python等, 开发人员可以根据自己的偏好选择合适的语言编写测试脚本
3.灵活性: Selenium提供了灵活的API和丰富的操作方法, 可以模拟用户在浏览器中的各种操作, 包括点击, 输入, 下拉选择等, 从而实现对Web应用程序的完整测试.
4.集成性: Selenium可以与其它测试框架和工具集成, 如JUnit, TestNG, Maven等, 可以与持续集成工具结合, 实现自动化测试的持续集成和持续部署.
5.定位策略: Selenium提供了多种定位元素的策略, 如ID, 名称, XPath, CSS选择器等, 开发人员可以选择合适的定位策略.
原理
不再赘述, 直接给出原理图:
这个过程就像你喜欢一个女神, 但是你并不认识她, 并且比较内向, 不敢与其直接交流, 但你有一个朋友恰好认识她, 这是你就可以让你的朋友作为一个传话员, 将自己的想法传递给女神,从而间接交流(让朋友帮忙约她, 传递好意, 要微信什么的).