如何在jmeter中创建签名,使用beanshell预处理器

cwxwcias  于 2023-11-19  发布在  Shell
关注(0)|答案(1)|浏览(163)

我需要在jmeter中从JavaScript中的一个函数创建一个签名:

'x-signature': cipher.createSignature(stringCipheredBody, randomKey)

字符串
我已经计算了这两个变量的值,我需要创建一个方法来创建签名,“randomKey”对应于一个随机的AES密钥,“stringCipherBody”对应于一个以字符串格式加密的Json Body
在我的Jmeter代码中,我有:

import javax.crypto.Cipher;
...
String xSignature = cipher.createSignature(stringCipheredBody, randomKey);


但是我得到了以下错误:“类型化变量声明:尝试解析方法:在未定义的变量或类名上使用签名():密码”
我需要帮助

u2nhd7ah

u2nhd7ah1#

1.特别不要将Beanshell用于加密操作,它是某种形式的性能反模式,因为JMeter 3.1建议使用JSR 223 Test Elements和Groovy语言进行脚本编写。更多信息:Beanshell vs. JSR223 vs. Java For JMeter: Complete Showdown
1.在使用cipher对象之前,您需要先示例化它,类似于:

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

字符串
1.没有Cipher. java Signature()函数,请参阅JavaDoc以获取所有可用的方法。Java!= JavaScript,因此您不能粘贴函数并希望它们能够工作,特别是当它们依赖于第三方库时。因此,以某种方式确定加密算法并在Groovy中重新实现它,请参阅Encryption and decryption with Groovy指南以获取一些示例代码。

相关问题