前言:
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦
一、JSON提取器
前言:比较复杂,学会了给自己加个鸡腿儿~~~
1. 作用
JSON是目前大多数接口响应内容的数据格式
在接口测试中,不同接口之间可能会有数据依赖,在Jmeter中可以通过后置处理器来提取接口的响应内容,JSON提取器是其中一个可以用来提取响应内容的元件
2. 参数详解
- Apply to:应用范围,选默认的main sample only就行了
- Names of created variables:接收提取值的变量名,多个变量用;分割,必传
- JSON Path expression:json path表达式,用来提取某个值,多个表达式用;分割,必传
- Match No.(0 for Random):取第几个值,多个值用;分割(0:随机,默认;-1所有;1第一个值),非必传
- Compute concatenation var(suffix_ALL):如果匹配到多个值,则将它们都连接卡里,不同值之间用都好分割;变量会自动命名为_ALL
- Default Values:缺省值,匹配不到值的时候取该值,可写error;多个值用分号分割;非必传
初学者一开始可能不太理解这些参数,下面我们来举例子啦~~
3. JSON 提取器实栗
入门实栗:
下面以这个地址的接口举例:http://api.yesapi.cn/docs.php?keyword=%E4%BC%9A%E5%91%98&channel=api (可以在这个网站注册账号免费使用上面的测试接口)
我们一次调用【会员注册】->【会员登录】->【会员登录检测接口】->【获取会员个人资料】->【会员退出登录】这几个接口。
【会员登录】是后面几个接口的前置接口,需要提取获取用户的token、uuid这两个字段给后面几个接口使用
创建的测试计划如下(应用之前学到的知识,请求默认值里设置了服务器以及下面几个请求都需要的请求参数app_key;用户自定义变量里定义了两个变量username和password用于会员注册及会员登录时使用):
我们来重点关注JSON提取器提取的内容:
会员登录的响应信息如下:
{
"ret":200,
"data":{
"err_code":0,
"err_msg":"",
"uuid":"AAC71046CFA51B8A55D4367652791D66",
"token":"8BDE45E59ABB1D8651CB80C73283A49133EA628BAE8BE423215C1DE8ECC40810",
"role":"user"
},
"msg":"V3.3.0 YesApi App.User.Login 2022-03-19 13:22:24 hd215"
}
提取token(相对路径方式):
提取uuid(绝对路径方式):
其他接口调用token、uuid
进阶实栗
测试接口:http://api.yesapi.cn/docs-api-App.User.GetList.html
创建测试计划:
查看会员列表的响应结果如下:
{
"ret":200,
"data":{
"err_code":0,
"err_msg":"",
"users":[
{
"uuid":"AAC71046CFA51B8A55D4367652791D66",
"username":"xey04",
"role"