Jmeter复杂参数化调用

时间:2014-06-06 18:43:12

标签: javascript jmeter

我正在使用Jmeter来模拟两个网页之间的流量。

案例很复杂,因为第二个网页的调用是通过一个表单传递的,该表单传递了一个javascript函数生成的输入参数列表,当用户点击按钮传递给第二个网页时调用该函数

如果我打开firebug控制台,我可以在POST中看到我感兴趣的参数列表

  1. 由于我需要使用生成的参数列表参数化Jmeter POST有什么解决方案吗?
  2. 如果它不适合任何解决方案,我正在考虑使用正则表达式从网页中提取javascript函数使用的参数。但是我真的找不到参数值,因为它存储在一个javascript变量中:如果我看一下html源代码,我会看到类似的东西:

    this.cabinNumber[numeroCabina]=$('#cabinnumber'+numeroCabina).val();
 
    

    但我没有看到真正的价值; (我感兴趣的是roomNumberis te变量)

  3. 是否有机会直接从HTTP响应参数中读取可能使用BeanShell?

  4. 请注意,该网页是使用Struts1技术开发的

1 个答案:

答案 0 :(得分:0)

JMeter不是浏览器,它不能在客户端页面上执行JavaScript,但是:

  1. 如果JavaScript没有假设与服务器通信(这不太可能),您应该能够使用任何合适的JMeter脚本扩展来复制函数,从__javaScript函数,Beanshell Scripting开始,甚至是自定义Java Sampler的实现。或者"有趣"值已经在响应中,它只是通过样式隐藏
  2. 如果确实如此(这是更常见的情况),您可以通过firebug捕获请求并使用JMeter复制它以检索所需的机舱编号。
  3. 您还可以尝试将使用firebug捕获的请求与JMeter HTTP(S) Test Script Recorder捕获的请求进行比较,并调查差异(如果有)。