如何解析Jmeter响应并发出新请求

Sim*_*ang 26 jmeter

我正在使用jMeter来测试Tomcat应用程序.我需要解析jMeter响应并发出第二个请求.第一个响应如下:

<responseData class="java.lang.String">&lt;html&gt;&#xd;
&lt;body&gt;&#xd;
ERROR=0&#xd;
MSG=N/A&#xd;
FILELIST=1555;1340778737370;1526545487;&#xd;
VERSION=1.002&#xd;
URL=https://192.168.100.46/updserver/download?action=signature_download&amp;token=&#xd;
INTERVAL=0&#xd;
&lt;/body&gt;&#xd;
&lt;/html&gt;&#xd;
</responseData>
Run Code Online (Sandbox Code Playgroud)

我需要提取"FILELIST"和"URL"变量并将它们注入新的URL:

https://192.168.100.46/updserver/download?action=signature_download&amp;token=1555;1340778737370;1526545487;&#xd;
Run Code Online (Sandbox Code Playgroud)

我知道有一些后处理器可以做到这一点,但不知道如何做到这一点.顺便说一下,第二个请求会从Tomcat servlet下载一些文件,有没有办法让jMeter只下载流但不写入物理文件?这样我就可以对我的servlet进行负载性能测试.

ant*_*ant 21

好的,所以你已经知道如何从你的回复中提取url,我在之前的回答中描述了如何:

/sf/answers/783184461/

但在这里我将扩展它.所以你有你的采样器,你已经有了$ {url}.现在您需要FILELIST并组装新的URL.

假设您已经有请求和url提取器.添加一个新的Regular expression extractor.

Right click on request sampler -> Post Processors -> Regular Expression Extractor

Reference Name : FILELIST
Regular Expression : FILELIST=(\S+)
Template : $1$
Match No. (0 for Random): 1
Run Code Online (Sandbox Code Playgroud)

所以现在你有1个请求采样器和2个正则表达式提取器.您需要添加额外的后处理器才能组装新的URL.

Right click on request sampler -> Post Processors -> BSF PostProcessor

beanshellScript language和大字段下的语言下拉列表中选择Script:粘贴:

vars.put("NEW_URL", "${__javaScript('${url}'.replace('&#xd;'\,'${FILELIST}'))}");
Run Code Online (Sandbox Code Playgroud)

现在你必须${NEW_URL}在测试中进一步使用.

总是有不止一种解决问题的方法,这个衬里看起来很丑陋,但它有助于达到目的.

在我的测试中,结果是您所请求的(Debug Sampler):

url=https://192.168.100.46/updserver/download?action=signature_download&amp;token=&#xd;
FILELIST=1555;1340778737370;1526545487;&#xd;
NEW_URL=https://192.168.100.46/updserver/download?action=signature_download&amp;token=1555;1340778737370;1526545487;&#xd;
Run Code Online (Sandbox Code Playgroud)

编辑:

我想我不明白你如何命名你的变量.但最终的结果是你在问题中描述的那个.请参阅附带工作示例的.jmx测试:

http://www.filefactory.com/file/1q7nfitmh4qd/n/so_11309469_jmx

这是一个jmeter .jmx文件,使用2.6+版本的jmeter


Mar*_*aci 7

捕获部分响应,请使用正则表达式提取器.

您可以使用ViewResultsTree侦听器在响应数据上测试正则表达式.只需在ViewResultsTree侦听器左侧面板底部的下拉框中选择Regexp tester.