Javascript Jmeter复杂参数化调用

Javascript Jmeter复杂参数化调用,javascript,jmeter,Javascript,Jmeter,我正在使用Jmeter模拟两个网页之间的流 这种情况很复杂,因为对第二个网页的调用是通过一个表单来完成的,该表单传递一个输入参数列表,该列表由用户单击按钮传递到第二个网页时调用的javascript函数生成 如果我打开firebug控制台,我可以看到我感兴趣的参数列表 由于我需要使用生成的参数列表对Jmeter POST进行参数化,有什么解决方案吗 如果它不适合任何解决方案,我正在考虑使用regex从网页中提取javascript函数使用的参数。但是,我确实找不到参数值,因为它存储在javasc

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

这种情况很复杂,因为对第二个网页的调用是通过一个表单来完成的,该表单传递一个输入参数列表,该列表由用户单击按钮传递到第二个网页时调用的javascript函数生成

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

  • 由于我需要使用生成的参数列表对Jmeter POST进行参数化,有什么解决方案吗
  • 如果它不适合任何解决方案,我正在考虑使用regex从网页中提取javascript函数使用的参数。但是,我确实找不到参数值,因为它存储在javascript变量中:如果我查看html源代码,我会看到如下内容:

    this.cabinNumber[numeroCabina]=$('#cabinnumber'+numeroCabina).val();
 
    
    但我看不到真正的价值;(我感兴趣的是cabinnumberte变量)

  • 是否有可能使用BeanShell直接读取HTTP响应参数


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

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

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

    在解决方案1中:javascript/java能否读取http响应参数?。请假设我的servlet将参数“CAB”存储在响应消息中,您称之为“http响应参数”是什么?您可以获得响应代码、标题、消息和数据。根据您的
    cab
    所在的位置,方法可能会有所不同。参数设置为URL。我正在尝试使用beanshell获取URL:
    import org.apache.jmeter.util.JMeterUtils;导入org.apache.jmeter.samplers.SampleResult;字符串currentURL=SampleResult.getUrlAsString();log.info(currentURL)但我收到Beanshell预处理器的错误
    log.info(sampler.getUrl().getQuery()),用于Beanshell后处理器:
    log.info(prev.getURL().getQuery())。在您的情况下,SampleResult未定义,因此预计会出现错误。