VOL 133
10
2020-06
今天距2021年204天
这是ITester软件测试小栈第133次推文
本文4445字,阅读约需12分钟
上一篇:Jmeter系列之参数化,主要介绍JMeter的三种参数化方式:用户参数、CSV Data Set Config、 CSV函数助手。
以下主要介绍接口依赖的三种处理方式:JSON Extractor、正则表达式、边界提取器(Boundary Extractor)。
在接口自动化中,需要将多个流程串联起来才能将程序整个流程测试通过,会出现后一个接口的请求要用到前面接口的返回值。比如调用商品列表接口请求需要先登录,这时就需要先登录后,获取登录结果中的token,商品列表接口请求时携带token即可。
一
JSON Extractor
1
使用场景
JSON Extractor后置处理器用在返回格式为json的HTTP请求中,用来获取返回的json中的某个值,并保存成变量供后面的请求进行调用或断言等。
2
Json Extractor界面说明
①HTTP请求,右键,依次选择Add--》Post-Processors--》JSON Extractor。
②创建的 JSON Extractor页面如下:
JsonPath语法:
说明
以上的语法规范,细心的小伙伴可能会发现语法中 ..
表示递归匹配所有子元素,简单粗暴,用..
获取所有匹配的子元素,通过索引拿到想要的值,以下以实战进行演练。
3
实战小例子
①创建线程组、http请求。其中http请求配置如下:
②运行结果如下:
{
"msg": "OK",
"code": 0,
"data": {
"token_info": {
"token_type": "Bearer",
"expires_in": "2020-06-09 12:40:27",
"token": "eyJhbGciOiJIUzUxMiJ9.eyJtZW1iZXJfaWQiOjExNTE1LCJleHAiOjE1OTE2Nzc2Mjd9.u8XfG1vzNmFkkNweiZ2N3hKrzZbIIiI2zb6Z44RAHw7XVrQwoFYTw4vOAL1vK4dquh62atZZoIdmYGjOI-FuRQ"
}
}
}
③HTTP请求右键,新建JSON Extractor,配置如下:
④创建Debug Sampler及察看结果树,运行之后,在Debug Sampler查看token是否提取成功。
二
正则表达式
1
使用场景
从请求的响应结果中取到需要的内容,作为下一个接口的入参从而实现关联。比如登录后,用正则表达式获取token
,其他接口携带token请求。
2
正则表达式提取器界面说明
①HTTP请求右键,依次点击添加--》后置处理器--》正则表达式提取器。
②创建的正则表达式提取器页面如下:
APPly to:
要检查的响应字段:
引用名称:
提取结果之后的变量名称,即下个请求需要引用的值,后面引用方式是${变量名}
。
正则表达式:
使用正则表达式解析响应结果,()
括号表示提取字符串中的部分值,前后是提取的边界内容。一般通用的正则表达式(.+?)
。
如需了解更多关于正则表达式知识,可参照:Python自动化测试-正则表达式解析一文。
模板:
如果正则表达式有多个提取结果,则结果是数组形式。若只有一组表达式,则使用1,两组正则匹配使用12,以此类推。
匹配数字:
正则表达式匹配数据的结果可以看做一个数组:-1
表示全部,0
表示随机,1
表示第一个,2
表示第二个,依次类推。
缺省值:
如果参数没有取到值,那默认给个值,比如null
。
3
实战小例子
①创建一个线程组。
②创建一个HTTP请求,用来发送登录请求,登录接口请求参数配置如下。
③HTTP请求,右键,创建一个正则表达式提取器,登录接口返回结果如下:
{
"data": {
"mobile": "12345678",
"id": 500,
"rid": 0,
"email": "adsfad@qq.com",
"username": "admin",
"token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE1OTA5MDY3MzAsImV4cCI6MTU5MDk5MzEzMH0.M3CWrgsDUMvnhkprQMBJ1wWY5OKO-mKiOD4EJ2YV4zc"
},
"meta": {
"msg": "登录成功",
"status": 200
}
}
正则表达式提取token,配置如下:
④创建一个察看结果树,运行后,接口返回如下:
三
Boundary Extractor
1
使用场景
边界提取器(Boundary Extractor
),不需要写复杂的正则表达式,只要填写左右边界即可。
2
边界提取器界面说明
①HTTP请求右键,依次选择Add--》Post Processors--》Boundary Extractor。
②边界提取(Boundary Extractor)界面如下:
APPly to:
要检查的响应字段:
引用名称:
提取结果之后的变量名称,即下个请求需要引用的值,后面引用方式是${变量名}
。
左边界:
要提取字符的左边。
右边界:
要提取字符的右边。
匹配数字(0代表随机):
-1
匹配所有,0
随机,1
代表匹配第一个,以此类推,n
取匹配的第n个。
缺省值:
如果没有取到值,那默认给个值,比如null
。
3
实战小例子
①创建http请求,配置如下:
②创建察看结果树,运行结果如下:
{
"msg": "OK",
"code": 0,
"data": {
"token_info": {
"token_type": "Bearer",
"expires_in": "2020-06-09 12:40:27",
"token": "eyJhbGciOiJIUzUxMiJ9.eyJtZW1iZXJfaWQiOjExNTE1LCJleHAiOjE1OTE2Nzc2Mjd9.u8XfG1vzNmFkkNweiZ2N3hKrzZbIIiI2zb6Z44RAHw7XVrQwoFYTw4vOAL1vK4dquh62atZZoIdmYGjOI-FuRQ"
}
}
}
③http请求,右键,新建边界提取器(Boundary Extractor),配置如下:
④创建Debug Sampler,运行之后,查看token是否正确获取。
今日问题:在接口自动化测试中,你用什么方式处理接口依赖?
(欢迎在留言区发表你的看法)
本文分享自 ITester软件测试小栈 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有