一、前言
测试框架的作用是帮助我们管理测试用例、执行测试用例、参数化、断言、生成测试报告等基础性工作,
让我们将精力用在测试用例的编写上。好的测试框架应该具有很高的扩展性,支持二次开发,并能够支持多种类型的自动化测试。
测试工具的作用是为了完成某一类型的测试,比如Selenium用于对WEB UI进行自动化测试,Appium用来对APP进行自动化测试,Jmeter可以用来进行API自动化测试和性能测试。
另外,Java语言中OkHttp库,Python语言中的requests库,这些HTTP的client也可以看做是一种API测试工具。
二、框架对比
【Robot Framework】
Robot Framework是一个基于Python的,可扩展的关键字驱动的自动化测试框架,用于端到端验收测试和验收测试驱动开发(ATDD)。
优点:
1)启用易于使用的表格语法,以统一的方式创建测试用例。
2)提供从现有关键字创建可重复使用的更高级别关键字的功能。
3)提供易于阅读的结果****报告和HTML格式的日志。
4)提供一个简单的库API,用于创建自定义测试库
5)提供标记以分类和选择要执行的测试用例。
缺点:
1)固定的表格编写形式,使很多简单的语法变得复杂化,而且不支持复杂语法,不够灵活,并且不利于提升测试人员的代码编写能力,而且容易编写疲劳。
2)测试数据和测试代码穿插写到同一文件、同一方法中,产生了紧耦合,会导致修改测试数据或测试代码时,可能会相互影响,不利于测试数据和测试脚本的维护。
【Pytest**】 **
Pytest 是Python的一种易用、高效和灵活的单元测试框架,可以支持单元和功能测试。
优点:
1)容易上手,入门简单,文档丰富,文档中有很多实例可以参考。
2)能够支持简单的单元测试和复杂的功能测试。
3)能够执行全部测试用例,也可以挑选部分测试用例执行,并能自动重试失败用例。
4)支持并发执行,还能运行由nose, unittest编写的测试用例。
5)具有很多第三方插件,并且可以自定义扩展。
缺点:
1)由于纯Python编写,需要测试人员具有一定的代码编写与阅读能力
2)Pytest本身没有直观的用例显示与浏览页面,需要借助第三方模块展示用例分布情况(比如Allure)
编写规则:
- 测试文件以test_开头(以_test结尾也可以)
- 测试类以Test开头,并且不能带有init方法
- 测试函数以test_开头
- 断言使用基本的assert即可
常用装饰器:
三、新框架说明
解决的痛点:
1)方法(关键字)的入参过多,容易混淆、使用混乱
2)方法封装层次简单,重复代码过多,导致自动化用例臃肿(一两百行)
3)方法功能单一,总体方法太多,使用不便(redis七八种查询方式)
4)随着用例越来越多,不能并发执行,总执行耗时太长(几个小时)
5)测试数据固定,参数化太少,对于环境依赖太多,无法扩展(无法切换省市执行)
四、 新版自动化流程图
**1、 **自动化运行流程图
**2、 **接口校验流程图
3****、数据库校验流程图
版权归原作者 软测小达人 所有, 如有侵权,请联系我们删除。