上一篇说到了接口自动化中的用例设计,大家对编写接口用例,应该有了一定了解,这一篇给大家理一下接口自动化执行思路以及第一阶段的框架设计思路。
1.接口测试步骤
面试的时候经常会被问道:给你一个接口,你会怎么测?
- 怎么测?详细一点呢,就是:
- 了解业务背景(首先要了解业务需求,明确业务场景),了解后台架构(了解服务结构是传统结构?还是微服务结构?),了解后台框架(SSH?SSM?)
- 了解接口文档,接口设计规范(基于Restful API规范?还是公司内部自定义规范),了解数据库设计(总要知道参数和参数之前的关系吧)
- 编写测试用例(Excle,禅道,SQL,Yaml的形式不限,存储方式不限)
- 执行测试用例(Postman,Jmeter,Python(request模板),Java(httpclient),本质上来说就是模拟HTTP请求,像浏览器,Fiddler这些也是可以的)
- 收集用例结果(一条一条手动记录(功能测试结果不就是手动记录么),工具生成,自定义模板收集结果形式不限)
- 通知相关研发人员(邮件,企业微信群里艾特,位置上喊一下,通知到了就好)
- 到这里就可以结束了么?不,BUG记录与追踪,上线前再次摸排。
整体的接口测试呢,大概分为上面的几个步骤,其中最花时间的是执行测试用例。用例评审完之后就不会有大的改动了。但是,执行用例这个步骤
- 冒烟一遍,测试一遍(甚至几遍),预发布一遍,演示一遍,线上再一遍,来来回回至少5遍,那么,为了解决这中间的时间成本问题,就引入了接口自动化的环节,通过工具/代码来执行用例。
- 我理解的第一阶段的自动化,就是把功能用例记录下来,然后需要用到了就去执行(工具/代码),然后收集用例结果展示。
下面的图示,就是我理解的接口自动化的逻辑:
- 编写测试用例,然后存储到一个位置
- 把用例导出来,通过工具/代码来执行
- 收集用例结果展示
-
通知相关人员
2.自动化框架设计
这是一个全民Python的时代,语言就选择了Python,所以相关模块就是:requests,pytest,logging
- 选择原因:简单,上手快,容易看懂,方便组内推广
根据接口测试步骤,需要有个用例存放的位置,选用了Excle,但是一条用例字段比较多,又有很多可以去除的地方,所以就把接口信息相关的字段抽出去(JSON存储),Excle里就是简化版的用例了。
- 选择原因:界面可视化方便(但是数据格式不容易处理,如果嫌处理格式麻烦的,建议用SQL)
用例结果收集借助于Allure这个工具,使用的功能有:插入用例结果,失败日志,用例配置信息等字段。
- 选择原因:Allure社区活跃,扩展性强,适合造轮子
通知相关人员,这个方式就多种多样了,基于运行完成通过内部通讯方式通知,至于是邮件,钉钉群通知,企业微信群通知等,形式不限。
- 综合来看,整体框架设计思路如下: