此次实例准备:
jmeter实战接口申请地址:https://www.tianapi.com/
实例信息
请求10次身份证归属地查询接口 ,提取响应数据的星座信息作为请求参数,给星座运势查询接口使用(即接口之间关联调用)。
下面是两个接口的基本信息:
A.身份证归属地接口
API:https://apis.tianapi.com/sfz/index
接口信息:接口返回身份证号码归属地(发证地)、生日、生肖、星座、性别信息。15位的身份证号自动转换为18位。
▼ 接口信息
接口地址:https://apis.tianapi.com/sfz/index
请求示例:
https://apis.tianapi.com/sfz/index?key=APIKEY&idcard=421121195205201619
支持协议:http/https
请求方式:get/post
返回格式:utf-8 json
▼ 请求参数
post方式请求时,enctype应为application/x-www-form-urlencoded
上传文件二进制数据流方式,enctype必须为multipart/form-data
参数url、base64中有特殊字符时,建议对值urlencode编码后传递
名称 类型 必填 示例值/默认值 说明
key string 是 您自己的APIKEY(注册账号后获得) api密钥
idcard string 是 421121195205201619 身份证号码
▼ 返回示例
接口数据样例仅作为预览参考,请以实际测试结果为准
{
"code": 200,
"msg": "success",
"result": {
"birthday": "1952-05-20",
"age": 69,
"sex": "男",
"zodiac": "龙",
"xingzuo": "金牛座",
"address": "湖北省黄冈市团风县"
}
}
B.星座运势接口
API:https://apis.tianapi.com/star/index
接口信息:查询十二星座每日运势,支持幸运色,工作指数,爱情指数。幸运色等等。年月日缺省时,默认为当天运势
▼ 接口信息
接口地址:https://apis.tianapi.com/star/index
请求示例:https://apis.tianapi.com/star/index?key=APIKEY&astro=taurus
支持协议:http/https
请求方式:get/post
返回格式:utf-8 json
▼ 请求参数
post方式请求时,enctype应为application/x-www-form-urlencoded
上传文件二进制数据流方式,enctype必须为multipart/form-data
参数url、base64中有特殊字符时,建议对值urlencode编码后传递
名称 类型 必填 示例值/默认值 说明
key string 是 您自己的APIKEY(注册账号后获得) API密钥
astro string 是 taurus 星座中文或英文名
date string 否 2020-10-12 日期
▼ 返回示例
接口数据样例仅作为预览参考,请以实际测试结果为准
{
"code": 200,
"msg": "success",
"result": {
"list": [
{
"type": "综合指数",
"content": "80%"
},
{
"type": "爱情指数",
"content": "80%"
},
{
"type": "工作指数",
"content": "80%"
},
{
"type": "财运指数",
"content": "70%"
},
{
"type": "健康指数",
"content": "80%"
},
{
"type": "幸运颜色",
"content": "金色"
},
{
"type": "幸运数字",
"content": "9"
},
{
"type": "速配Q友",
"content": "处女座"
},
{
"type": "今日概述",
"content": "今天朋友里面有些计较算计的人,沟通不顺利。部分人可能会比较想宅家躺吃"
}
]
}
}
案例分析
1)请求10次,可以利用jmeter的‘线程组’元件实现循环
2)接口A每次的请求参数可以利用jmeter的‘CSV数据文件设置’元件实现数据驱动,实现每次请求时获取不同的请求参数
3)接口B的请求参数依赖接口A的响应数据,两个接口存在关联关系,可以通过jmeter的‘后置处理器‘元件Json提取器来提取接口A响应信息中的星座
4)最后,为了验证结果,响应增加监听器组件(eq:查看结果树、聚合报告、断言结果)来查看结果
————————————————
接口测试实战步骤
1、添加测试计划和线程组,并配置运行条件
1) 添加线程组元件:测试计划->添加->线程组(用户)->线程组
勾选‘独立运行每个线程组’,确保接口按顺序请求,避免出现接口B先于接口A请求导致接口B获取不到对应的请求参数值的现象
2) 配置线程组元件:结合情景,线程数设置为1、循环次数设置为10即可满足要求
2、添加及配置HTTP请求默认值和HTTP请求
1)线程组右健>添加>配置元件>HTTP请求默认值
因为两个API都是同一个域名或IP,所有直接使用HTTP请求默认值,后面接口请求就不需要填写了
2) 添加HTTP请求元件:测试计划->线程组->添加->取样器->HTTP请求,因为一共有两个接口,所以需要增加两个HTTP请求元件
3)配置HTTP请求元件-A接口:结合A接口的接口信息,填写路径、请求方式、请求参数等信息。其中,由于接口A的参数值计划利用数据驱动实现,所以这里先填写对应参数的引用名
4)配置HTTP请求元件-B接口:结合B接口的接口信息,填写路径、请求方式、请求参数等信息。其中,由于接口B的参数值依赖于接口A的响应数据,所以这里先填写对应参数的引用名
3、接口A实现数据驱动
1) 准备CSV数据文件:根据需要,准备好对应的CSV文件,文件内容含所需的有效的key、idcard参数值
2)A请求的子节点下新增CSV数据文件设置元件并完成配置
a 在使用参数化的请求上右健>添加>配置元件>CSV数据文件设置
b 配置CSV元件
4、接口A及接口B实现关联
接口A请求的子节点下新增JSON提取器元件并完成配置
5、接口A、接口B增加断言
1) 接口A子节点下添加断言,断言方式为验证响应体中是否包含‘ “msg”:“success” ’信息
2) 接口B子节点下添加断言,断言方式为验证响应代码是否为200。(也可以使用其他断言内容,如上)
6、增加监听器组件,监听结果
1)线程组下增加察看结果树元件、聚合报告、断言结果
7、运行测试
查看结果