一,测试数据准备
1、基础知识
接口测试基础
和普通的黑盒功能测试一样,接口测试也是需要先编写测试用例,然后将测试用例编辑成各种测试脚本,集中管理和维护,便于回归使用。
数据驱动思想
Jmeter数据驱动的本质就是依靠参数的组件,不设置线程数和循环数,依靠编写的测试用例数据来驱动脚本。编写多少条Case就自动循环多少次,这么做的好处是:
1、测试用例数量较大时,不需要重复配置太多的Jmeter线程组
2、测试数据和Jmeter脚本分离,直接修改外部的数据文档比挨个修改组件要来的便利的多
2、待测API基本信息梳理
一些网上的免费API,这次找了一个 物流接口 来做演示
可以看见接口的基础信息为:
- 接口URL:
http://www.kuaidi100.com/query
- 请求方式:
PSOT
- 协议:
HTTP
- 入参:
type=快递公司代号&postid=快递单号
3、测试用例编写
编写测试用例,下面是简单的几个用例,实际会比下面这个多很多
注意:
- 由于我们后续需要使用的是 CSV 格式的文件,所以编写完 Case 之后,需要把
.xlsx
格式的文件另存为.csv
格式的文件 - 当然使用
.txt
格式的文件也是可以,只不过可读性没有CSV格式的文件好
一般测试用例设计参考:
- 覆盖所有的必选参数 (正向)必填和可选
- 组合可选参数 (正向_覆盖率问题,考虑人力和时间成本)
- 参数边界值 (一些接口的入参会有边界值,比如:年龄)
- 如果参数的取值范围是枚举变量,需要覆盖所有枚举值 (测试所有可能的数据,比如性别,男女 都得有)
- 空数据 (逆向)
- 包含特殊的字符 (+ - = / … 空格)
- 越界的数据 (逆向_比如 长度过长或过短)
- 错误的数据 (逆向_ID之类的)
二,测试执行流程
1、CSV文件配置
添加 CSV Data Set Config
组件
配置情况如下
2、参数化使用
如下依次添加组件,要确保组件层级都是对的
组件配置情况依次为:
循环控制器
勾选循环次数为永远
HTTP请求
如果有需要,入参也可以放置在如下图第6个和第7个位置,如果入参必须是 json 格式的话,放置在7号位置
3、运行脚本
运行结果如下,我们编写了3条Case,就执行3次
其中第2次和第3次都是访问失败,和Case中的预期情况一致
- 上述演示脚本 百度网盘 提取码:6666