JMeter使用JSON Extractor时,如何让每个线程使用自身提取的值?
JMeter实现线程独立使用JSON Extractor提取变量的方法
确保JSON Extractor作用域正确:将JSON Extractor挂载到需要提取响应的请求子节点下。JMeter默认每个线程拥有独立的变量空间,只要提取器作用域对应单个请求,每个线程执行请求时,提取器只会处理当前线程的响应数据,提取到的变量值仅属于当前线程。
配置线程专属数据:线程组设置30个线程后,通过CSV Data Set Config读取包含不同客户信息的文件,或者用
${__threadNum}函数生成线程专属的请求参数,保证每个线程发起的请求对应不同客户,这样响应中的出生日期自然不同。直接引用提取变量:后续需要使用出生日期的请求中,直接用
${变量名}(比如你在JSON Extractor里设置的变量是customerBirthDate,就写${customerBirthDate}),JMeter会自动调用当前线程变量空间里的对应值,不会和其他线程的变量混淆。禁用全局变量:不要使用
__setProperty函数将提取的变量转为全局属性,全局属性是所有线程共享的,会导致变量值被其他线程覆盖,完全不符合你的需求。验证线程独立性:添加Debug Sampler和View Results Tree监听器,运行测试后查看每个线程的Debug Sampler输出,能直观看到每个线程的提取变量值都是对应客户的出生日期,确认线程间变量完全独立。
内容的提问来源于stack exchange,提问作者אלישבע שלזינגר
相关产品推荐
相关产品推荐

