【问题标题】:How to capture dynamic values created using javascript in jmeter如何在 jmeter 中捕获使用 javascript 创建的动态值
【发布时间】:2013-07-26 11:19:47
【问题描述】:

我正在尝试运行 JMeter 脚本,但登录时失败。原因是,密码是使用 RSA 算法加密的,那就是使用 javascript。所以录制时保存的密码不起作用,我无法获得加密密码的动态值,因为它是使用 JMeter 不支持的 javascript 加密的。由于在运行时使用 javascript,我不能使用正则表达式来查看响应数据,因为这不是响应的一部分。

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

【问题讨论】:

    标签: javascript dynamic jmeter


    【解决方案1】:

    您可以在 JMeter 中使用类似的方法即时加密密码,例如 JSR223 Sampler 通过 Mozilla RhinoOracle Nashorn 提供 JavaScript 语言支持,因此您可以使用与应用程序相同的 JavaScript 代码来加密密码。

    但是从性能的角度来看,JavaScript 语言效率不是很高,如果您需要模拟数百个并发用户,因此您必须每秒执行数百次加密 JavaScript 可能会成为瓶颈,最好考虑使用 groovy 语言使用 JSR223 采样器。请参阅Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! 指南以获取详细说明、有关 groovy 引擎安装和脚本最佳实践的说明。

    【讨论】:

      【解决方案2】:

      我在使用 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 加密参数创建的变量。

      RSAKey()、setPublic() 和 encrypt() 包含在您访问登录页面时从服务器下载的 .js 文件中。我只是将这些文件包含到我的项目库中,它就可以工作了。

      我不知道与 JMeter 是否相同,但希望这有助于您了解您需要做什么。

      【讨论】:

        【解决方案3】:

        我也没有找到并回答这个问题,但我所做的是每次运行测试时将 tableau_online_idworkgroup_session_id cookie 放入用户变量中.

        所以我首先使用浏览器登录,并使用变量将这些 cookie 设置为 JMeter cookie。

        【讨论】:

          猜你喜欢
          • 2021-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多