jmeter压测学习3-提取json数据里面的token参数关联 (json提取器)


前言

现在很多接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值。
上一个接口返回的token作为下个接口的入参。

案例场景

我现在有一个登陆接口A,登陆成功后返回一个token值。有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问
A接口登录接口文档基本信息

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接口获取绑定卡号的接口文档基本信息

登录请求

先在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方式实现,才能正常的关联成功

 
 
 
 
 

 

Jmeter之Json Path Extractor的使用(Json-handle下载安装和使用)

 

jp@gc - JSON Path Extractor和“正则表达式提取器”使用效果一样。

他的作用单一,只提取json数据

jp@gc - JSON Path Extracto

变量名自己定义,json数据路径,可通过“JSON-handle”获取

 

 JSON-handle

 JSON-handle是一款对JSON格式的内容进行浏览和编辑,以树形图样式展现JSON文档,并可实时编辑。

1.下载JSON-Handle:http://jsonhandle.sinaapp.com/

 

2.打开Chrome的扩展程序页,将下载的crx文件拖入

 

3.使用

点击浏览器上的小图标,即可使用

复制jmeter响应数据(json字串)到工具中,点击ok

点击右上角的按钮

 

出现弹窗后,点击需提取的数据,这个数据的json路径就获取到了。

复制JSON.result[0].pic到jmeter中,并将JSON修改为$

运行结果

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM