如何捕获在Jmeter中使用JavaScript创建的动态值
我正在尝试运行JMeter脚本,但登录失败。原因是,
密码已使用RSA算法(即使用
javascript )进行加密。因此在录制时保存的密码将无法使用,
并且
由于使用JMeter不支持的javascript 对其进行加密,因此无法获得加密密码的动态值。由于
运行时使用javascript,因此我无法使用正则表达式查找
响应数据,因为这不是响应的一部分。
我正在尝试登录到Tableau报表服务器。
回答:
使用NEOLOAD时遇到相同的问题,因此
在Auth POST之前包含了以下脚本。
// Get variable value from VariableManagervar doLoginIDString = context.variableManager.getValue("doLoginID");
if (doLoginIDString==null) {
context.fail("Variable 'doLoginID' not found");
}
logger.debug("doLoginIDString="+doLoginIDString);
var rsa = new RSAKey();
rsa.setPublic(doLoginIDString,'10001');
var res = rsa.encrypt('<USER_PASSWORD>');
logger.debug("encrypted_var= "+res);
if (res) {
context.variableManager.setValue("crypted_Password",res);
}
VariableManager是一个NEOLOAD变量管理器:)
“ doLoginID”是我根据服务器传递的字符串创建的变量,以供您使用密码进行加密。该字符串可以在
LoginPage的源代码中找到。
“ crypted_Password”是我为POST加密参数创建的变量。
当您访问登录页面时,从服务器下载的.js文件中包含RSAKey(),setPublic()和crypto()。我只是将这些文件包含在我的项目的库中,并且可以正常工作。
我不知道JMeter是否相同,但是希望这可以帮助您了解需要做的事情。
以上是 如何捕获在Jmeter中使用JavaScript创建的动态值 的全部内容, 来源链接: utcz.com/qa/425712.html