一、什么是接口自动化测试?

顾名思义,接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,
以及相互逻辑依赖关系。其中接口协议分为HTTP,Rpc,WebService等类型,测试类型又主要分为功能测试,
性能测试,稳定性测试,安全性测试等。

在分层测试的“金字塔”模型中,接口测试属于第二层服务集成测试范畴。相比UI层(主要是WEB或APP)自动化测试而言,
接口自动化测试收益更大,且容易实现,维护成本低,有着更高的投入产出比,是每个公司开展自动化测试的首选。
image.png

二、接口自动化测试原理

模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程。
image.png
接口自动化测试目的
保证被测接口的正确性和稳定性;
功能正常:保证新老版本兼容
性能正常:单次请求响应时间
变更检测:字段缺失及字段类型变更
异常和健壮性测试

三、接口自动化如何做

  • 接口的范围:需要覆盖多少业务和接口
  • 接口分析:接口的协议、上下游依赖
  • 接口测试用例设计:业务用例如何模拟和覆盖
  • 接口测试框架选择:选择合适的框架
  • 测试用例编写与维护:用例编写与维护更新
  • 持续集成:不断的集成测试

四、接口自动化测试技能

  • 业务流:了解系统以及内部各个组件之间的业务逻辑关系
  • 数据流:了解接口的输入输出
  • 协议:了解接口协议组成,http协议
  • 工具:jmeter、soapui、postman、requests等
  • 框架:pytest、testng、junit

五、接口自动化测试框架

在自动化测试中,人们逐渐总结出来自动化测试的一些最佳实践,形成了一些基础概念和常识让自动化测试实施效率更高、成本更低。这些结构性的实践也成为框架。

搭建自动化框架

image.png

1、脚本编写实现方式:
1)抓包的接口
image.png
2)手工编写的接口用例
image.png

2、框架执行测试流程
image.png

3、用例执行
本框架利用 pytest 扩展库,支持多线程模式、失败用例重试、用例模糊匹配等。

4、框架实现
1)执行根目录下的 startup.py 文件,会读取 config/runConfig.yml 文件,会根据yml文件配置执行脚本case。
image.png
2)框架是采用 yaml+py 文件,实现 数据与代码分离,更清晰的管理case。
image.png
image.png

3)测试日志,可以在logs查看当天执行case日志。
image.png
4)测试报告。
image.png


实现持续集成


持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能发生多次集成。 每次集成
都通过自动化的构建(编译、发布、自动化测试)来验证,从而尽早发现错误。
image.png
1)在服务器搭建配置好Jenkins后,通过url地址访问Jenkins,进行创建任务,创建job参考文档:jenkins创建job文档

2)任务创建完成后,可以通过手动执行job或定时任务的形式来进行脚本自动化。

3)执行结果,实现钉钉消息推送通知。