压测必经之路,解读JMeter分布式

发表于:2019-7-18 08:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:魏建军    来源:宜信技术学院

  JMeter官网有非常具体的描述,主要内容如下。脚本中的监听器会根据配置将测试结果回传,默认情况下当结果产生后同步回传到协调主机。这会影响测试的最大吞吐量,JMeter提供了配置属性对此进行干预,即jmeter.propertie文件中的mode属性。该属性可以有如下取值:
  1)Standard:测试中的采样信息产生的同时回传给协调主机。
  2)Hold:在测试结束前将采样信息保存在数组中。这种模式会占用执行机大量内存,不推荐使用。
  3)DiskStore:在测试结束前,将结果存储在硬盘文件(由java.io.temp属性指定)中。这种序列化文件会在JVM退出后删除。
  4)StrippedDiskStore:将成功的响应数据在采样信息中删除,之后使用DiskStore的方式处理。
  5)Batch:当采样信息超过指定的阈值后,同步将采样信息发送。阈值可以是采样个数阈值(num_sample_threshold)或者时间(time_threshold),这两个阈值可以在执行机的jmeter.propertie文件中指定。
  ?num_sample_threshold:累加的采样个数,默认为100。
  ?time_threshold:时间阈值,默认为60000ms(即60秒)。
  后面的Asynch模式与该模式类似。
  6)Statistical:当采样信息超过指定阈值后,发送采样信息的摘要信息。根据线程组和采样名称进行表记。摘要包括如下字段:
  Elapsed time:流逝时间
  Latency:延迟
  Bytes:字节
  Sample count:采样个数
  Error count:错误个数
  其他字段会被丢弃。(5)中的两个属性也对该模式起作用。
  7)Stripped:将成功的采样在响应数据中删除。
  8)StrippedBatch:在响应数据中删除成功采样后,使用Batch模式。
  9)Asynch:采样信息在本地队列中临时存储。启动一个独立的工作线程进行采样信息发送。这样能够允许测试线程得以持续执行而不用等待回送的结果返回。当然,当结果产出太快,导致临时队列被充满,也会使得测试线程阻塞,直到队列中一些数据排空。该模式可以用来削平采样信息的网络波峰。通过执行机JMeter的属性asynch.batch.queue.size?(默认100)进行队列大小配置。
  10)StrippedAsynch:在响应数据中删除成功采样,再使用Asynch模式。
  11)自定义:通过配置一个特定的Java类,可以配置自行扩展的发送模式。扩展类必须首先接口SampleSender,并且实现接收一个具有RemoteSampleListener类型变量的构造函数。
  上述提到的Stripped类的模式,都会将响应数据中的成功信息进行删除,所以一些依赖前置响应数据的元件会出现问题。这个问题可以通过调整测试脚本得以解决。

  ......
查看更多精彩内容,请点击下载:

版权声明:本文出自《51测试天地》第五十四期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号