Jmeter JSR223采样器和JSR223预处理器之间的区别

Jmeter JSR223采样器和JSR223预处理器之间的区别,jmeter,Jmeter,我是Jmeter的新手,正在积极学习 我想知道JSR223采样器和JSR223预处理器有什么不同,采样器可以和预处理器一样使用吗 一般的区别是预处理器不会被执行,除非它的作用域中有一个采样器(每个采样器) 预处理器元素用于改变采样器在其范围内的设置。它总是在实际的采样器请求之前执行 具体区别在于没有可用的SampleResult,因此,例如,您无法执行以下示例: SampleResult.setStopTest(true); 根据脚本的返回值设置SampleResultResponseData

我是Jmeter的新手,正在积极学习


我想知道JSR223采样器和JSR223预处理器有什么不同,采样器可以和预处理器一样使用吗

一般的区别是预处理器不会被执行,除非它的作用域中有一个采样器(每个采样器)

预处理器元素用于改变采样器在其范围内的设置。它总是在实际的采样器请求之前执行

具体区别在于没有可用的
SampleResult
,因此,例如,您无法执行以下示例:

SampleResult.setStopTest(true);
根据脚本的返回值设置
SampleResult
ResponseData。如果脚本返回null,它可以使用方法
SampleResult.setResponseData(数据)
直接设置响应,其中数据是字符串或字节数组。数据类型默认为“text”,但可以使用方法
SampleResult.setDataType(SampleResult.binary)
将其设置为二进制

SampleResult变量允许脚本完全访问SampleResult中的所有字段和方法。例如,脚本可以访问方法
setStopThread(boolean)
setStopTest(boolean)

JSR223采样器是一个,因此它将生成一个将出现在测试结果中的(除非调用方法)

JSR223预处理器本身无法执行,您需要根据需要将其连接到一个(或多个)采样器,以便在一个(或多个)采样器之前执行。预处理器执行时间不会反映在测试结果中(除非您使用配置为包含它的)


两者都可以运行任意代码(建议坚持使用),因此使用哪种代码主要取决于您的用例,如果您需要进行加载并测量时间-采样器的运行时间,如果您需要设置一些数据-预处理器的运行时间,等等。

谢谢您的回答!!现在我很清楚什么时候用哪一种。