目录:导读
前言
现在很多接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值
上一个接口返回的token作为下个接口的入参
一、案例场景
我现在有一个登陆接口A,登陆成功后返回一个token值。有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问
A接口登录接口文档基本信息
访问地址:http://127.0.0.1:8000/api/v1/login/
请求类型:POST
请求头部:application/json
请求参数:{“username”:”test”, “password”:”123456”}
A接口的请求和返回的报文信息如下
D:\>http http://127.0.0.1:8000/api/v1/login/ username=test password=123456 -v
POST /api/v1/login/ HTTP/1.1
Accept: application/json, */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 42
Content-Type: application/json
Host: 127.0.0.1:8000
User-Agent: HTTPie/1.0.3
{
"password": "123456",
"username": "test"
}
HTTP/1.1 200 OK
Allow: POST, OPTIONS
Content-Length: 109
Content-Type: application/json
Date: Sat, 21 Sep 2019 15:37:06 GMT
Server: WSGIServer/0.2 CPython/3.6.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"code": 0,
"msg": "login success!",
"token": "234af73571da46ade79ea6a74961b1d23d609b79",
"username": "test"
}
B接口获取绑定卡号的接口文档基本信息
访问地址:http://127.0.0.1:8000/api/v1/user/info/
请求类型:GET
请求头部:Content-Type: application/json
请求头部token参数:Authorization: Token xxxxx login token xxxxx
二、登录请求
先在jmeter里面添加http请求,填登录接口的参数
HTTP信息头管理器添加post请求类型:Content-Type: application/json
运行之后查看结果数,可以看到正确的返回我们想要的token值
三、Json 提取器
添加后置处理器-Json提取器
从返回的结果中提取token值
返回的结果
{
"code": 0,
"msg": "login success!",
"token": "234af73571da46ade79ea6a74961b1d23d609b79",
"username": "test"
}
JSON提取器参数说明:
Names of created variables:参数名称
JSON Path expressions:提取表达式
Match No.(0 for Random):匹配规则,-1所有,0随机,1第一个
Compute concatenation va :如果有匹配到多个值,选择此项,会将全部值保存到_ALL,并使用逗号分割每个值,注意Match No. (0 for Random)需要为-1才有效,不然只能匹配到一个值了
Default Values:没提取到就给默认值
四、关联请求
下个请求头部需要用到上面的token值
添加头部管理器,引用token参数 ${token}
查看结果,请求头部关联参数成功
查看响应结果也能正确的返回
五、遇到的坑
参数关联的时候,遇到一个坑,请求的参数都对,但是报错:
Response code: Non HTTP response code: org.apache.http.NoHttpResponseException
后来查资料,需要把第一个请求的的客户端实现用JAVA方式实现,才能正常的关联成功


1、自学开发或者测试必备的完整项目源码与环境
2、测试工作中所有模板(测试计划、测试用例、测试报告等)
3、软件测试经典面试题
4、Python/Java自动化测试实战.pdf
5、Jmeter/postman接口测试全套视频获取
我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题可以直接点击此链接进群询问,群里也会有大神帮忙解答,也可以手动添加群号 743262921 备注222