如何对动态 url 进行负载测试?

How to do a load testing for a dynamic url?

我正在尝试进行负载测试,但遇到了一些问题。 Web 应用程序中的基本概念是用户提出请求,应该生成响应链接。(就像 google 搜索我们在其中输入请求并单击提交,然后在下一页上我们得到响应(网站链接).

步骤如下

  1. 浏览器的初始页面有一个文本区域,用户在文本区域中输入请求并单击提交
  2. 回复链接将在下一页给出。选择相应链接至少需要 30 秒。

第二页的url是动态的url。

我用blazemter记录了过程,得到了jmx。 在使用 jmeter 中的 jmx 文件测试 100 个用户时,它采用了与 blazemeter 记录相同的 url(第二页 url) 对于所有 100 个用户,因此我们在毫秒内获得所有 100 个用户的响应链接。

如何确保 100 个用户使用 100 个动态 url?

您需要添加一个 CSS/JQuery extractor 作为第一个请求的子项,它将随机提取 link 并在以下模拟点击的 HTTP 请求中使用它。

此提取器使用此语法进行提取:

并且你需要使用0作为数字来保证随机性。

如果您在 SmartJMX 模式下导出记录,相关的 Regular Expression Extractors Post-处理器将被添加到您的脚本中以处理动态参数(如果有的话)所以每个 JMeter 线程(虚拟用户)都将获得自己的动态 URL。

我会建议 运行 你的测试首先要有 2-3 个用户,并启用 View Results Tree 侦听器,这样你就可以检查请求和响应的细节,并确保你的测试正在做它应该做的事情在模拟大负载之前要做的。

查看 How to Cut Your JMeter Scripting Time by 80% 了解更多信息。