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

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

BeanShell 脚本如下:

 import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.HashMap;
import java.util.Map;
import org.apache.jmeter.config.Arguments;
import com.unisound.ym.SignUtil;
import com.alibaba.fastjson.*;
import org.apache.jmeter.config.*; String accessKey = "${accessKey}";
String secretKey = "${secretKey}";
String timestamp = "${requestTime}"; log.info("accessKey----->{}",accessKey);
log.info("secretKey----->{}",secretKey);
log.info("timestamp----->{}",timestamp); //获取请求的Body参数
Arguments args = sampler.getArguments();
//json格式请求:body只有一个key为空的参数值
for(int i=0;i<args.getArgumentCount();i++){
String key = args.getArgument(i).getName();
String value = args.getArgument(i).getValue();
log.info("requst body:key={},value={}",key,value);
}
String requestJson = args.getArgument(0).getValue();
log.info("-------{}",requestJson); String ymMd5SignStr=SignUtil.md5Sign(requestJson,accessKey,secretKey,timestamp);
log.info("signatureStr--->{}",ymMd5SignStr);
vars.put("ymMd5SignStr",ymMd5SignStr);

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

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

很简单吧!!!!

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

Jmeter在Http Rest接口中自动生成签名(Json格式请求参数)的更多相关文章

  1. JMeter 接口测试 自动生成签名机制

    在进行接口测试时,遇到接口进行了签名校验,为实现自动生成签名,经过一点研究终于成功. 首先,需要从前端获取 签名加密包  XXXsign.jar..  建议将该jar包放在 jmeter lib 目录 ...

  2. IntelliJ IDEA 中自动生成 serialVersionUID 的方法

    as, idea plugin中搜如下关键字,并安装该插件: GenerateSerialVersionUID 如上图所示,创建一个类并实现Serializable接口,然后按alt+Enter键,即 ...

  3. 二十四、详述 IntelliJ IDEA 中自动生成 serialVersionUID 的方法

    当我们用 IntelliJ IDEA 编写类并实现 Serializable(序列化)接口的时候,可能会遇到这样一个问题,那就是: 无法自动生成serialVersionUID. 而serialVer ...

  4. 从JSON中自动生成对应的对象模型

    编程的乐趣和挑战之一,就是将体力活自动化,使效率成十倍百倍的增长. 需求 做一个项目,需要返回一个很大的 JSON 串,有很多很多很多字段,有好几层嵌套.前端同学给了一个 JSON 串,需要从这个 J ...

  5. 在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序

    在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序 本贴首发于: http://xuekaiyuan.com/forum.php?mod=vie ...

  6. 在PowerDesigner中自动生成sqlserver字段备注

    在PowerDesigner中自动生成sqlserver字段备注 PowerDesigner是数据库设计人员常用的设计工具,但其自生默认生成的代码并不会生成sqlserver数据库的字段备注说明.在生 ...

  7. eclipse中自动生成注释

    eclipse中自动生成注释 包前缀设置的地方 注释模板设置的地方 Eclipse自动生成方法注释 快捷键 自动生成方法的注释格式,例如 /*** @param str* @return* @thro ...

  8. Eclipse中自动生成get/set时携带注释给get/set

    Eclipse中自动生成get/set时携带注释给get/set   编码的时候通常要用到 JavaBean ,而在我们经常把注释写在字段上面,但生成的Get/Set方法不会生成,通过修改Eclips ...

  9. npm install 不自动生成 package-lock.json文件

    package-lock.json这个文件的作用就不详细说明了 有需要的可以参考 :https://www.cnblogs.com/cangqinglang/p/8336754.html 网上都说 n ...

随机推荐

  1. drf常用方法

    1.认证 2.权限 3.序列化 4.分页 5.限流

  2. JS对象创建模式

    JS的对象创建模式 1.Object构造函数模式 var person = new Object(); person.name = 'name'; person.age = 43; console.l ...

  3. 洛谷 P1195 【口袋的天空】

    P1195 传送门 大体题意: 就是给你\(n\)个点\(m\)条边, 然后让你把这几个点连成\(k\)个部分. 解题思路: 很容易就可以想到生成树(别问我怎么想到的). 因为最小生成树中有一个判断 ...

  4. Linux防火墙配置方法

    1)查看防火墙状态 查看防火墙状态: /etc/init.d/iptables status 暂时关闭防火墙: /etc/init.d/iptables stop 重启防火墙: /etc/init.d ...

  5. AngularJS实现地址栏取值

    有时候我们由如下需求 1.从a.html跳转到b.html 2.从a跳转时携带参数和值. 3.从b.html中取出传过来的参数值 在AngularJS的操作如下 在a.html中添加 <a hr ...

  6. 运行虚拟机报错:CPU acceleration status: HAXM is not installed on this machine

    运行虚拟机报错:CPU acceleration status: HAXM is not installed on this machine. 这是因为SDKmanage没有安装HAXM ,于是打开S ...

  7. docker安装 与 基本配置

    1.安装docker #yum remove docker \ docker-common \ container-selinux \ docker-selinux \ docker-engine \ ...

  8. JAVA字符编码二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换

    第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换   1.函数介绍 在Java中,字符串用统一的Unicode编码,每个字符占用两个字节,与编码有 ...

  9. VLC搭建RTSP服务器

    实时流协议 RTSP 是在实时传输协议的基础上工作的,主要实现对多媒体播放的控制.用户对多媒体信息的播放.暂停.前进和后退等功能就是通过对实时数据流的控制来实现的. 而这些播放控制功能的实现不仅需要多 ...

  10. 关于最新版本的flutter在安卓打包的问题解决方法

    1.集成友盟push提示androidx版本号不一致,需在gradle文件中手动选择即可,如下 buildscript { repositories { google() jcenter() mave ...