您的位置:软件测试 > 开源软件测试 > 开源性能测试工具 > Jmeter
JMeter技巧集锦
作者:网络转载 发布时间:[ 2012/12/6 15:46:00 ] 推荐标签:

  JMeter 是一个流行的用于负载测试的开源工具, 具有许多有用的功能元件,如线程组(thread group), 定时器(timer), 和HTTP 取样 (sampler) 元件。 本文是对JMeter 用户手册的补充,而且提供了关于使用Jmeter的一些模拟元件开发质量测试脚本的指导。

  本文同时也讨论了一项重要的内容:在指定了精确的响应时间要求后,如何来校验测试结果,特别是在采用了置信区间分析这种严格的统计方式的情况下应如何操作。请注意,我假定本文的读者们了解关于Jmeter的基础知识,本文的例子基于Jmeter2。0。3版。

  确定一个线程组的ramp-up period (Determine)

  Jmeter脚本的第一个要素是线程组(Thread Group),因此首先让我们来回顾一下。 正如图一所示,线程组需要设置以下参数:
  ·线程数量。
  ·ramp-up period。
  ·运行测试的次数。
  ·启动时间:立即或者预定的时间,如果是后者,线程组所包含的元素也要指定这个起止时间。

  图 1。 JMeter 线程组(JMeter Thread Group)

  每个线程均独立运行测试计划。因此, 线程组常用来模拟并发用户访问。如果客户机没有足够的能力来模拟较重的负载,可以使用Jmeter的分布式测试功能来通过一个Jmeter控制台来远程控制多个Jmeter引擎完成测试。

  参数 ramp-up period 用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也是说ramp-up period 为零, JMeter 将立即建立所有线程,假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。

  线程组的大部分参数是不言自明的,只有ramp-up period有些难以理解, 因为如何设置适当的值并不容易。 首先,如果要使用大量线程的话,ramp-up period 一般不要设置成零。 因为如果设置成零,Jmeter将会在测试的开始建立全部线程并立即发送访问请求, 这样一来很容易使服务器饱和,更重要的是会隐性地增加了负载,这意味着服务器将可能过载,不是因为平均访问率高而是因为所有线程的第一次并发访问而引起的不正常的初始访问峰值,可以通过Jmeter的聚合报告监听器看到这种现象。

这种异常不是我们需要的,因此,确定一个合理的ramp-up period 的规则是让初始点击率接近平均点击率。当然,也许需要运行一些测试来确定合理访问量。

  基于同样的原因,过大的ramp-up period 也是不恰当的,因为将会降低访问峰值的负载,换句话说,在一些线程还未启动时,初期启动的部分线程可能已经结束了。

  那么,如何检验ramp-up period I太小了或者太大了呢?首先,推测一下平均点击率并用总线程除点击率来计算初始的ramp-up period。 例如,假设线程数为100, 估计的点击率为每秒10次, 那么估计的理想ramp-up period 是 100/10 = 10 秒。 那么,应怎样来提出一个合理的估算点击率呢?没有什么好办法,必须通过运行一次测试脚本来获得。

  其次, 在测试计划(test plan)中增加一个聚合报告监听器,如图2所示,其中包含了所有独立的访问请求(一个samplers)的平均点击率。 第一次取样的点击率(如http请求)与ramp-up period 和线程数量密切相关。通过调整ramp-up period 可以使首次取样的奠基率接近平均取样的点击率。

上一页1234下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd