0

我需要模拟以下内容:

  • 500 个并发用户访问 10 个页面
  • 40% 的用户是网站的新用户,60% 是老访问者(浏览器缓存中已经有一些页面)
  • 10 个页面中有 3 个是老用户在缓存中的“常见”页面。其他 7 页分布如下:20% 在缓存中,80% 是新的。

在 JMeter 中对此进行建模的最佳方法是什么(甚至可能)?

4

2 回答 2

4

几个注释可能首先有用(抱歉,如果已经知道):

  • 使用HTTP 缓存管理器,选中“处理 GET 请求时使用缓存控制/过期标头”。
    如果缓存管理器检测到匹配,它将向请求添加 If-Last-Modified 和 If-None-Match 条件标头。如果为真,这将加快响应速度,因为响应会小得多。
  • 遵循 HTTP 请求选项,以模拟浏览器行为:
    • 从 HTML 文件中检索所有嵌入式资源
    • 使用并发池
    • 尺寸
  • 可能是吞吐量控制器——根据上面的场景应用百分比——但只有当你有超过 1 次迭代时它才能正常工作。

您的解决方案可能如下所示(线程组级别的 HTTP 缓存管理器):



    Thread Group
    Number of Threads = N
    Loop Count = 1
        HTTP Cache Manager
        Throughput Controller // CACHING
        Percent Executions
        Throughput = 60
        Per User unchecked
            Simpler Controller  // COMMON PAGES
                HTTP Request 01
                HTTP Request 02
                HTTP Request 03
            Loop Controller     // REST OF PAGES
            Loops = 7 [10 - 3 pages]
                Throughput Controller
                Percent Executions
                Throughput = 20
                    Random Controller
                        HTTP Request 04
                        . . .
                        HTTP Request 10
        Random Order Controller  // TESTING
            [requests to pages to test]
            HTTP Request 01
            . . .
            HTTP Request 10

“缓存”请求将具有以下详细信息(例如在查看结果树侦听器中):

  • 加载时间=延迟;
  • 以字节为单位的正文大小 = 0;
  • 响应代码:304
  • 响应消息:未修改
于 2012-05-15T16:58:47.480 回答
0

这里最简单的事情就是计算出您希望访问您正在测试的服务器的流量级别,然后使用 jmeter 对其进行建模。如果浏览器缓存了一个值,那么实际上它不会进行调用,因此请求永远不会发生,因此您不需要模拟这一点,您只是不发出请求。

要对服务器的流量进行建模,您应该考虑每秒/分钟的请求数。您还可以针对不同类型的页面或请求细分此吞吐量级别。例如,主页的吞吐量可能高于部分页面。获得每种类型的数据后,您可以将测试设置为在此级别运行。

于 2012-05-15T13:58:27.433 回答