做网站的挣钱么,网站开发用户名不存在,seo优化或网站编辑,wordpress如何添加表格Jmeter 请求签名api接口-BeanShell 项目签名说明编译扩展jar包jmeter 使用 BeanShell 调用jar包中的签名方法 项目签名说明
有签名算法的api接口本地不好测试#xff0c;使用BeanShell 扩展jar 包对参数进行签名#xff0c;接口签名算法使用 sha512Hex 算法。签名的说明如下… Jmeter 请求签名api接口-BeanShell 项目签名说明编译扩展jar包jmeter 使用 BeanShell 调用jar包中的签名方法 项目签名说明
有签名算法的api接口本地不好测试使用BeanShell 扩展jar 包对参数进行签名接口签名算法使用 sha512Hex 算法。签名的说明如下
请求参数类型 body 参数 原始字符串 originData
appIdappIdappKeyappKeytimeStamp当前时间戳bodyjson参数request 参数 原始字符串 originData
appIdappIdappKeyappKeytimeStamp当前时间戳key1value1key2value2key 按照升序排列
签名算法 使用 sha512Hex 签名算法
String inputData namescdaddress广东;
String encodeData URLEncoder.encode(inputData, StandardCharsets.UTF_8.name());
String result DigestUtil.sha512Hex(encodeData, StandardCharsets.UTF_8.name());
System.out.println(result);originData 使用 URLEncoder.encode 编码避免出现中文。在使用 sha512Hex 算法计算出签名串 sign
请求头数据
sign:sign
timestamp:1701948943849
appId:xxx项目地址 https://gitee.com/3281328128/web-jdk17/tree/dev/
启动项目后 swagger 访问地址 http://localhost:8080/boot3/swagger-ui/index.html
编译扩展jar包
jmeter 支持扩展的jar包使用BeanShell调用jar包中的方法。项目地址为https://gitee.com/3281328128/jmeter-api-sign。目前jmeter5.6.2版本支持jdk8编译的扩展jar之前用jdk17编译出来的扩展jar包不能运行签名算法后面改成使用jdk8编译的jar包
引用的jar包需要带jar-with-dependencies 结束的jar如图所示 如果使用 maven 编译将依赖编译到jar包里面配置如下所示
buildpluginspluginartifactIdmaven-assembly-plugin/artifactIdconfigurationdescriptorRefsdescriptorRefjar-with-dependencies/descriptorRef/descriptorRefsarchivemanifestmainClasscom.itsenlin.Helloworld/mainClass/manifest/archive/configurationexecutionsexecutionidmake-assembly/id !-- this is used for inheritance merges --phasepackage/phase !-- bind to the packaging phase --goalsgoalsingle/goal/goals/execution/executions/plugin/plugins/buildjmeter 使用 BeanShell 调用jar包中的签名方法
选择测试计划导航栏配置扩展的jar 配置BeanShell 预处理程序 路径 添加 -》前置处理器 -》BeanShellProcessor BeanShell 的具体配置如下所示 使用扩展jar包中的签名算法
import com.alibaba.fastjson.JSON;
import com.scd.sign.SignUtil;String inputParam {\n \id\: 0,\n \userName\: \string\,\n \password\: \string\\n };
String inputJson JSON.parseObject(inputParam).toJSONString();
log.info(request json inputJson);
String timeStamp String.valueOf(System.currentTimeMillis());
String appId bsh.args[0];
String appKey bsh.args[1];
String sign SignUtil.generateBodySign(appId, appKey, timeStamp, inputJson);
vars.put(body, inputJson);
vars.put(appId, appId);
vars.put(timestamp, timeStamp);
vars.put(sign, sign);vars 中存入了原始的请求参数http的请求的body参数需要取vars中存入的数据 ${body} 请求头中需要的数据 appId、timestamp、sign 也可以从 vars 中获取 BeanShell 的用法可以查看 【jmeter】BeanShell用法详细汇总
配置接口响应断言 路径 添加 -》断音 -》JSON断言 配置查看结果树 配置查看结果树之后才能查看请求的记录配置路径 添加 -》监听器 -》查看结果树 启动线程组验证 启动之后可以在查看结果树查看请求记录 点击黄色的感叹号可以查看运行的日志