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内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。