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

标签 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>

我需要提取“FILELIST”和“URL”变量并将它们注入(inject)一个新的 URL:
https://192.168.100.46/updserver/download?action=signature_download&amp;token=1555;1340778737370;1526545487;&#xd;

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

最佳答案

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

https://stackoverflow.com/a/11188349/169277

但在这里,我将对此进行扩展。所以你有你的采样器,你已经得到了 $ {url} .现在你需要FILELIST并组装新的网址。

假设您已经有了请求和 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

所以现在你有 1 个请求采样器和 2 个正则表达式提取器。您需要添加额外的后处理器才能组装新的 url。
Right click on request sampler -> Post Processors -> BSF PostProcessor
选择beanshell来自 Script language 下的语言下拉列表在大领域Script:粘贴这个:
vars.put("NEW_URL", "${__javaScript('${url}'.replace('&#xd;'\,'${FILELIST}'))}");

现在你有 ${NEW_URL}在您的测试中进一步使用。

解决问题的方法总是不止一种,这一个类轮看起来真的很丑,但它可以达到目的。

在我的测试中,结果符合您的要求(调试采样器):
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;

编辑:

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

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

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

关于jmeter - 如何解析 Jmeter 响应并发出新请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11306584/

相关文章:

variables - jmeter 将命令行变量传递给 jmx

csv - JMeter 仅使用 CSV 设置的第一行

JMeter - 仅在非 GUI 中忽略查看结果树监听器

groovy - 从 groovy 传递 jmeter 采样器结果

testing - JMeter 测试和非静态 GET/POST 参数

testing - JMeter- 从 CLI 运行时不会替换属性值

java - Apache Jmeter : Post an object not working with ModelAttribute

jmeter - JMeter 中的 JSON 路径提取器

java - JMeter 返回上一个采样器

docker - 如何在一个容器中运行多个JMX文件?