如何解析Jmeter响应并发出新请求
我正在使用jMeter测试Tomcat应用程序。我需要解析jMeter响应并发出第二个请求。第一个响应如下所示:如何解析Jmeter响应并发出新请求,jmeter,Jmeter,我正在使用jMeter测试Tomcat应用程序。我需要解析jMeter响应并发出第二个请求。第一个响应如下所示: <responseData class="java.lang.String"><html>
 <body>
 ERROR=0
 MSG=N/A
 FILELIST=1555;1340778737370;1526545487;
 VERSI
<responseData class="java.lang.String"><html>
<body>
ERROR=0
MSG=N/A
FILELIST=1555;1340778737370;1526545487;
VERSION=1.002
URL=https://192.168.100.46/updserver/download?action=signature_download&token=
INTERVAL=0
</body>
</html>
</responseData>
我知道有一些后处理器可以做到这一点,但不知道如何做到这一点。顺便说一句,第二个请求将从TomcatServlet下载一些文件,有没有办法让jMeter只下载流而不写入物理文件?这样我就可以对我的servlet进行负载性能测试。部分响应使用
您可以使用ViewResultsTree侦听器在响应数据上测试正则表达式。只需在ViewResultsTree侦听器左侧面板底部的下拉框中选择Regexp tester即可。好的,您已经知道如何从响应中提取url,我在上一个回答中描述了如何: 但在这里,我将进一步阐述这一点。所以你有了采样器,你已经得到了$
{url}
。现在您需要文件列表
并组装新的url
假设您已经有了请求和url提取器。添加新的正则表达式提取器
右键单击请求采样器->后处理器->正则表达式提取器
Reference Name : FILELIST
Regular Expression : FILELIST=(\S+)
Template : $1$
Match No. (0 for Random): 1
现在您有了1个请求采样器和2个正则表达式提取器。您需要添加额外的后处理程序才能组装新的url
右键单击请求采样器->后处理器->BSF后处理器
从Script language
下的language下拉列表中选择beanshell
,并在大字段Script:
中粘贴以下内容:
vars.put("NEW_URL", "${__javaScript('${url}'.replace('
'\,'${FILELIST}'))}");
现在您有了${NEW_URL}
可以在测试中进一步使用
解决问题的方法总是不止一种,这一套看起来很难看,但却能达到目的。
在我的测试中,结果符合您的要求(调试采样器):
编辑:
我想我不明白你是怎么命名变量的。但最终结果是你在问题中描述的结果。请参阅工作示例附带的.jmx测试:
这是一个jmeter.jmx文件,使用2.6+版本的jmeter@ant,根据您的帮助,目前我有sample1(它有3个后处理器:url/token extrator/bsf后处理器)和sample2用于发送新请求。但是仍然有一些错误,sample2没有获得正确的URL,请帮助找到我的调试采样器:[link]@ant,很抱歉我犯了一个可怕的错误。它现在在我这边起作用了,我非常感谢你的帮助。
vars.put("NEW_URL", "${__javaScript('${url}'.replace('
'\,'${FILELIST}'))}");
url=https://192.168.100.46/updserver/download?action=signature_download&token=
FILELIST=1555;1340778737370;1526545487;
NEW_URL=https://192.168.100.46/updserver/download?action=signature_download&token=1555;1340778737370;1526545487;