如何捕获在Jmeter中使用JavaScript创建的动态值

我正在尝试运行JMeter脚本,但登录失败。原因是,

密码已使用RSA算法(即使用

javascript )进行加密。因此在录制时保存的密码将无法使用,

并且

由于使用JMeter不支持的javascript 对其进行加密,因此无法获得加密密码的动态值。由于

运行时使用javascript,因此我无法使用正则表达式查找

响应数据,因为这不是响应的一部分。

我正在尝试登录到Tableau报表服务器。

回答:

使用NEOLOAD时遇到相同的问题,因此

在Auth POST之前包含了以下脚本。

// Get variable value from VariableManager

var 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

回到顶部