提问人:Hans López 提问时间:11/7/2023 更新时间:11/7/2023 访问量:22
如何使用 beanshell 预处理器在 jmeter 中创建签名
How to create a signature in jmeter, using beanshell preprocessor
问:
我需要从 javascript 中的函数在 jmeter 中创建一个签名:
'x-signature': cipher.createSignature(stringCipheredBody, randomKey)
我已经计算了两个变量的值,我需要创建一个方法来创建签名,“randomKey”对应一个随机的AES密钥,“stringCipheredBody”对应一个以字符串格式加密的Json Body
在我的 Jmeter 代码中,我有:
import javax.crypto.Cipher;
...
String xSignature = cipher.createSignature(stringCipheredBody, randomKey);
但我收到以下错误:“类型化变量声明:尝试在未定义的变量或类名上解析方法:createSignature():cipher”
我需要帮助
答:
1赞
Dmitri T
11/7/2023
#1
不要将 Beanshell 用于加密操作,它是某种形式的性能反模式,从 JMeter 3.1 开始,建议使用 JSR223 测试元素和 Groovy 语言进行脚本编写。更多信息:Beanshell vs. JSR223 vs. Java For JMeter: Complete Showdown
在使用 object 之前,您需要先实例化它,例如:
cipher
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
没有 Cipher.createSignature() 函数,请参阅 JavaDoc 了解所有可用方法。Java != JavaScript,因此您不能粘贴函数,并希望它们能够工作,尤其是当它们依赖于第三方库时。因此,以某种方式确定加密算法并在 Groovy 中重新实现它,有关一些示例代码,请参阅使用 Groovy 进行加密和解密指南。
评论