软件自动化测试是相对手工测试而存在的,主要是通过使用自动化测试工具来验证各种软件测试的需求,具有良好的可操作性、可重复性和高效率等特点。
1.自动化测试能带来哪些好处
- 测试效率高,充分利用硬件资源。如有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎不可能做到。自动化测试脚本在测试人员下班后仍能继续执行,可以充分利用硬件资源。
- 节省人力资源,降低测试成本。如简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,工作量往往较大,这部分场景可以通过自动化测试来完成;
- 增强测试的稳定性和可靠性。如进行系统可靠性测试时,长时间持续测试,需要模拟系统运行10年、几十年,以验证系统能否稳定运行,这也是手工测试无法模拟的。
- 提高软件测试的准确度和精确度,增加软件信任度。
- 软件测试工具使测试工作相对比较容易,且能产生更高质量的测试结果。
- 手工不能做的事情,自动化测试能做,如负载、性能测试。如需要模拟大量数据或大量并发用户等各种应用场合时,很难通过于工测试来进行。
2.开展自动化测试的前提条件
1.需求变动不频繁,需求的稳定决定了自动化测试的维护成本。
我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。项目中我们可以对相对稳定的模块进行自动化测试,对变动较大的模块用手工测试。
2.项目周期足够长 ,自动化测试脚本可重复使用
3.在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量测试(如批量数据比对)等。
3.常用的自动化测试方法和工具
方式 | 工具 | 简介 |
测试过程的捕获和回放 | Jmeter | 可以录制web类操作,可以把录制的生成脚本进行修改后在回放; |
测试脚本技术 | Jmeter+ant | 适用于大多数项目接口自动化测试,相对容易实现 |
Yapi | 接口自动化测试,可以和项目接口关联起来 | |
postman | 适用于大多数项目接口自动化测试,相对容易实现 | |
python+pytest/unittest+Allure | 可以根据测试需求编写较复杂测试场景的自动化脚本,能自动生成测试报告 | |
python+selenium | WebUI自动化测试 | |
虚拟用户技术 | Jmeter | 开源,支持分布式压测,满足大多数项目的压测需求 |