zoukankan      html  css  js  c++  java
  • jmeter压测学习3-提取json数据里面的token参数关联

    前言

    现在很多接口的登录是返回一个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方式实现,才能正常的关联成功

  • 相关阅读:
    Java面试题(转)
    哪种方式更适合在React中获取数据?
    vue学习之深入响应式原理
    还不会用FindBugs?你的代码质量很可能令人堪忧
    几道大数据面试题(转)
    【Medium翻译】Java抽象类有什么用?
    深入理解Kafka必知必会(上)
    (八十六)c#Winform自定义控件-表格优化(转载)
    IDEA 配置及常用快捷键
    Markdown 复杂公式&常用符号
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/11961988.html
Copyright © 2011-2022 走看看