我是刚接触过杰米的人,我很积极地学习。
我想知道JSR223采样器和JSR223 preprocessor有什么不同,一个采样器能和预处理器一样使用吗?
发布于 2020-01-19 06:11:58
一般的区别是,PreProcessor不会被执行,除非它的范围中有一个采样器,它将是触发 (每个采样器)
预处理器元素的定义是为了改变采样器在其范围内的设置。它总是在实际的采样器请求之前执行。
具体的区别是JSR223 PreProcessor没有可用的SampleResult,因此您不能执行以下示例:
SampleResult.setStopTest(true);
SampleResultResponseData是根据脚本的返回值设置的。如果脚本返回null,它可以使用SampleResult.setResponseData(data)方法直接设置响应,其中数据要么是字符串,要么是字节数组。数据类型默认为"text",但可以通过使用SampleResult.setDataType(SampleResult.BINARY)方法将其设置为二进制。 SampleResult变量允许脚本完全访问SampleResult中的所有字段和方法。例如,脚本可以访问setStopThread(boolean)和setStopTest(boolean)方法。
发布于 2020-01-20 10:07:08
JSR223采样器是一个采样器,因此它将生成一个SampleResult,它将出现在测试结果中(除非调用SampleResult.setIgnore()方法)
JSR223 PreProcessor本身无法执行,您需要根据JMeter范围规则将其连接到一个(或多个)采样器,以便在一个(或多个)采样器之前执行。PreProcessors执行时间不会反映在测试结果中(除非您使用配置为包含它的事务控制器 )
两者都可以运行任意代码(建议坚持使用Groovy),所以哪一种使用主要取决于您的用例,如果您需要执行加载并测量时间--如果您需要选择采样器,如果您需要设置一些数据,则使用PreProcessor等等。
https://stackoverflow.com/questions/59798958
复制相似问题