JMeter-模拟新老访问者

JMeter-模拟新老访问者,jmeter,load-testing,Jmeter,Load Testing,我需要模拟以下内容: 500个并发用户访问10个页面 40%的用户是该网站的新手,60%是老访问者(浏览器缓存中已有一些页面) 10个页面中有3个是老用户缓存中的“普通”页面。其他7个页面是这样分布的:20%在缓存中,80%是新的 在JMeter中对此进行建模的最佳方法是什么(甚至有可能吗)?这里最简单的事情就是计算出您期望到达您正在测试的服务器的流量级别,并使用JMeter对此进行建模。如果浏览器缓存了一个值,那么实际上它不会进行调用,所以请求永远不会发生,所以您不需要模拟它,您只是不进行

我需要模拟以下内容:

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

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

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


要对服务器的流量进行建模,您应该考虑每秒/分钟的请求数。您还可以针对不同类型的页面或请求细分此吞吐量级别。例如,主页的吞吐量可能比分区页面高。一旦你有了每种类型的数据,你就可以设置你的测试在这个级别上运行。

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


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

首先可能需要注意几点(如果已经知道,请抱歉):

  • 选中“处理GET请求时使用缓存控制/Expires标头”。
    如果缓存管理器检测到匹配,它将向请求添加If Last Modified和If None匹配条件头。如果为真,这将加快响应速度,因为响应将小得多
  • 以下HTTP请求选项用于模拟浏览器行为:
    • 从HTML文件中检索所有嵌入的资源
    • 使用并发池
    • 大小
  • 可能-根据上面的场景应用百分比-但只有当您有超过1次迭代时,它才能正常工作
您的解决方案可能如下所示(线程组级别的HTTP缓存管理器):


螺纹组
线程数=N
循环计数=1
HTTP缓存管理器
吞吐量控制器//缓存
执行百分比
吞吐量=60
未选中的每个用户
更简单的控制器//公共页
HTTP请求01
HTTP请求02
HTTP请求03
循环控制器//页面的其余部分
循环=7[10-3页]
吞吐量控制器
执行百分比
吞吐量=20
随机控制器
HTTP请求04
. . .
HTTP请求10
随机顺序控制器//测试
[对要测试的页面的请求]
HTTP请求01
. . .
HTTP请求10
“缓存”请求将具有以下详细信息(例如,在结果树侦听器视图中):

  • 加载时间=延迟
  • 以字节为单位的正文大小=0
  • 答复代码:304
  • 响应消息:未修改

首先,一些注释可能很有用(如果已知,则表示抱歉):

  • 选中“处理GET请求时使用缓存控制/Expires标头”。
    如果缓存管理器检测到匹配,它将向请求添加If Last Modified和If None匹配条件头。如果为真,这将加快响应速度,因为响应将小得多
  • 以下HTTP请求选项用于模拟浏览器行为:
    • 从HTML文件中检索所有嵌入的资源
    • 使用并发池
    • 大小
  • 可能-根据上面的场景应用百分比-但只有当您有超过1次迭代时,它才能正常工作
您的解决方案可能如下所示(线程组级别的HTTP缓存管理器):


螺纹组
线程数=N
循环计数=1
HTTP缓存管理器
吞吐量控制器//缓存
执行百分比
吞吐量=60
未选中的每个用户
更简单的控制器//公共页
HTTP请求01
HTTP请求02
HTTP请求03
循环控制器//页面的其余部分
循环=7[10-3页]
吞吐量控制器
执行百分比
吞吐量=20
随机控制器
HTTP请求04
. . .
HTTP请求10
随机顺序控制器//测试
[对要测试的页面的请求]
HTTP请求01
. . .
HTTP请求10
“缓存”请求将具有以下详细信息(例如,在结果树侦听器视图中):

  • 加载时间=延迟
  • 以字节为单位的正文大小=0
  • 答复代码:304
  • 响应消息:未修改

到目前为止,我一直在使用“每秒请求数”指标,但现在我们注意到带宽使用率很高,因此我们需要对缓存进行实际测试。缓存发生在客户端,而不是服务器上。从服务器的角度来看,这只是缺少一个请求,这是您无法模拟的。也就是说,使用JMeter的HTTP缓存管理器可能会让您感到更愉快,但最终的结果是identica


    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