zoukankan      html  css  js  c++  java
  • Jmeter在Http Rest接口中自动生成签名(Json格式请求参数)

    第一步: 签名的java类生成jar包,导入到jmeter的lib目录下(依赖的第三方包也要导入)

    第二步:编写jmeter脚本,这里使用BeanShell 进行签名串的生成,目录结构如下:

     

    BeanShell 脚本如下:

     1 import java.util.ArrayList;
     2 import java.util.Collections;
     3 import java.util.List;
     4 import java.util.HashMap;
     5 import java.util.Map;
     6 import org.apache.jmeter.config.Arguments;
     7 import com.unisound.ym.SignUtil;
     8 import com.alibaba.fastjson.*;
     9 import org.apache.jmeter.config.*;
    10 
    11 
    12 String accessKey = "${accessKey}";
    13 String secretKey = "${secretKey}";
    14 String timestamp = "${requestTime}";
    15 
    16 log.info("accessKey----->{}",accessKey);
    17 log.info("secretKey----->{}",secretKey);
    18 log.info("timestamp----->{}",timestamp);
    19 
    20 //获取请求的Body参数
    21 Arguments args = sampler.getArguments();
    22 //json格式请求:body只有一个key为空的参数值
    23 for(int i=0;i<args.getArgumentCount();i++){
    24     String key = args.getArgument(i).getName();
    25     String value = args.getArgument(i).getValue();
    26     log.info("requst body:key={},value={}",key,value);
    27 }
    28 String requestJson = args.getArgument(0).getValue();
    29 log.info("-------{}",requestJson);
    30 
    31 String ymMd5SignStr=SignUtil.md5Sign(requestJson,accessKey,secretKey,timestamp);
    32 log.info("signatureStr--->{}",ymMd5SignStr);
    33 vars.put("ymMd5SignStr",ymMd5SignStr);

    关键代码:如何获取request body中的json字符串(HttpRest请求,注意header是application/json)

    1 //获取请求的Body参数
    2 Arguments args = sampler.getArguments();
    3 //json格式请求:body只有一个key为空的参数值
    4 String requestJson = args.getArgument(0).getValue();

    很简单吧!!!!

     测试脚本放入linux,命令行启动压测!!!

  • 相关阅读:
    AtCoder Beginner Contest 157
    AtCoder Beginner Contest 158 BCD
    1046 A^B Mod C
    AtCoder Beginner Contest 150
    Aizu
    【建图】【思维】拓扑排序建图+序列自动机——swerc Gym
    【思维】单调栈——cf1366E
    【数学】gcd数论——cf1366D
    【思维】cf 1365 DEF
    【思维】构造——ICPC NEAU B
  • 原文地址:https://www.cnblogs.com/huahua035/p/11892322.html
Copyright © 2011-2022 走看看