JMeter - 模拟新老访客

时间:2012-05-15 12:21:17

标签: jmeter load-testing

我需要模拟以下内容:

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

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

2 个答案:

答案 0 :(得分:4)

几个音符可能首先有用(对不起,如果已经知道):

  • 使用HTTP Cache Manager,“处理GET请求时使用缓存控制/过期标头”选中 如果缓存管理器检测到匹配,它将向请求添加If-Last-Modified和If-None-Match条件头。如果为真,这将加快响应速度,因为响应会小得多。
  • 遵循HTTP请求选项,以模拟浏览器行为:
    • 从HTML文件中检索所有嵌入资源
    • 使用并发池
    • 尺寸
  • 可能Throughput Controller - 按照上面的方案应用百分比 - 但只有当你有超过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
  • 响应消息:未修改

答案 1 :(得分:0)

这里最简单的方法就是计算出你想要测试的服务器的流量水平,并使用jmeter对其进行建模。如果浏览器有一个缓存的值,那么它实际上不会进行调用,因此请求永远不会发生,所以你不需要模拟这个,你就是不要发出请求。

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