总纲
1. 前提条件
首先应该有接口文档,没有就只能问和摸索了
2. 使用工具
Jmeter
此工具不止能进行压力测试,也能完成接口的自动化测试
3. 好处
接口自动化实施成本低,需要修改量小(相比较于UI自动化测试中随着页面的改变需要改变测试用例,接口相对来说稳定的多);
能够提前介入测试,不需要有页面才能进行测试。
整体步骤
1、创建线程组合控制器(Jmeter基本操作)
2、针对http协议的接口增加Sampler——>http请求(Jmeter基本操作)
3、填写接口的地址,请求和请求参数(Jmeter基本操作)
4、简单实验(Jmeter基本操作)
5、对请求参数进行参数化(参考“参数化过程”)
6、对返回值增加返回值断言,并将断言参数化(参考“参数化过程”)
7、形成自动化测试脚本并运行
参数化过程
此处针对post请求,get请求更容易
1.在对应的接口请求下新增CSV Data Set Config元件
默认以,进行分割
2.创建csv文件
存放需要测试的不同参数
其中,各个值就对应在CSV Data Set Config的各个变量名,默认以,进行分割
第一个变量建议填写name,用于标识用例名
最后一个变量为response,用于在返回值里进行校验
3.将用例名参数化
在请求的名称后加入-${name}-${response}
视CSV Data Set Config中的变量名而定
4.将请求参数化(key-value形式)
将原来请求中实际的内容替换为变量,格式:${变量名}
5.将请求参数化(json形式)
由于json中已经含有,,所以我们的参数化不能以,分割变量,可以采用其他特殊字符,例如/
在CSV Data Set Config中进行配置
在请求中可以直接将整个json作为变量(方便验证json格式中包含异常的情况)
6.断言参数化
在响应断言中增加响应文本,内容${response}
视CSV Data Set Config中的变量名而定
7.运行时设置
将每个循环控制器中的循环次数设置为和csv中数据行数一致,即可运行
注意问题
1.编码格式问题
作为测试数据源的csv文件本身也要设为UTF-8编码,否则会出现数据库中插入乱码
2.变量名问题
如果要同时运行多个测试用例,需要将变量名进行区分,例如,用例1里有name变量,用例2里的name变量会使用用例1里设置的,不会更新。
可以用数字进行区分,或者一次只运行一个用例
3.主要测试情况
参数值为空、参数值不合法、传参格式错误、json里还需注意用户的输入中如包含,"等符号的处理