一、什么是接口自动化测试?
顾名思义,接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,
以及相互逻辑依赖关系。其中接口协议分为HTTP,Rpc,WebService等类型,测试类型又主要分为功能测试,
性能测试,稳定性测试,安全性测试等。
在分层测试的“金字塔”模型中,接口测试属于第二层服务集成测试范畴。相比UI层(主要是WEB或APP)自动化测试而言,
接口自动化测试收益更大,且容易实现,维护成本低,有着更高的投入产出比,是每个公司开展自动化测试的首选。
二、接口自动化测试原理
模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程。
接口自动化测试目的
保证被测接口的正确性和稳定性;
功能正常:保证新老版本兼容
性能正常:单次请求响应时间
变更检测:字段缺失及字段类型变更
异常和健壮性测试
三、接口自动化如何做
- 接口的范围:需要覆盖多少业务和接口
- 接口分析:接口的协议、上下游依赖
- 接口测试用例设计:业务用例如何模拟和覆盖
- 接口测试框架选择:选择合适的框架
- 测试用例编写与维护:用例编写与维护更新
- 持续集成:不断的集成测试
四、接口自动化测试技能
- 业务流:了解系统以及内部各个组件之间的业务逻辑关系
- 数据流:了解接口的输入输出
- 协议:了解接口协议组成,http协议
- 工具:jmeter、soapui、postman、requests等
- 框架:pytest、testng、junit
五、接口自动化测试框架
在自动化测试中,人们逐渐总结出来自动化测试的一些最佳实践,形成了一些基础概念和常识让自动化测试实施效率更高、成本更低。这些结构性的实践也成为框架。
搭建自动化框架
1、脚本编写实现方式:
1)抓包的接口
2)手工编写的接口用例
2、框架执行测试流程
3、用例执行
本框架利用 pytest 扩展库,支持多线程模式、失败用例重试、用例模糊匹配等。
4、框架实现
1)执行根目录下的 startup.py 文件,会读取 config/runConfig.yml 文件,会根据yml文件配置执行脚本case。
2)框架是采用 yaml+py 文件,实现 数据与代码分离,更清晰的管理case。
3)测试日志,可以在logs查看当天执行case日志。
4)测试报告。
实现持续集成
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能发生多次集成。 每次集成
都通过自动化的构建(编译、发布、自动化测试)来验证,从而尽早发现错误。
1)在服务器搭建配置好Jenkins后,通过url地址访问Jenkins,进行创建任务,创建job参考文档:jenkins创建job文档。
2)任务创建完成后,可以通过手动执行job或定时任务的形式来进行脚本自动化。
3)执行结果,实现钉钉消息推送通知。