首页 > 其他分享 >Jmeter关联处理-跨越线程组的传值

Jmeter关联处理-跨越线程组的传值

时间:2024-11-08 15:50:50浏览次数:3  
标签:__ 组中 线程 BeanShell 使用 Jmeter 传值 属性

一、线程组1提取要传递的值

设置全局变量,变量值在函数助手setProperty中设置:

添加BeanShell取样器

BeanShell取样器中设置要使用的全局变量:

二、线程组2 获取全局变量

通过函数助手property获取:

获取的全局变量,写入请求中

三、总结:

JMeter中跨越线程组传值主要有以下几种方法‌:

  1. 使用属性(Property)‌:

    • 在源线程组中,使用BeanShell后置处理器JSR223后置处理器设置属性。例如,使用props.put("parameterName", "parameterValue");来设置属性‌。
    • 在目标线程组中,使用${__P(parameterName)}来获取属性值并使用‌。
  2. 使用JMeter变量(借助BeanShell共享变量)‌:

    • 在源线程组中,创建一个BeanShell Sampler或在取样器的BeanShell后置处理器中定义一个全局变量,例如JMeterContextService.getContext().getVariables().put("sharedVariable", "value");‌。
    • 在目标线程组中,使用相同的BeanShell Sampler或后置处理器获取这个共享变量,例如String sharedValue = JMeterContextService.getContext().getVariables().get("sharedVariable");‌。
  3. 使用JSON提取器BeanShell Sampler‌:

    • 在源线程组中,使用JSON提取器提取需要的值。
    • 使用BeanShell Sampler将提取的值保存为JMeter属性,例如${__setProperty(P_city,${city},)}‌。
    • 在目标线程组中,使用${__property(P_city,,)}来获取属性值‌。
  4. 使用正则表达式提取器BeanShell PostProcessor‌:

    • 在源线程组中,使用正则表达式提取器提取需要的值。
    • 使用BeanShell PostProcessor调用__setProperty函数设置属性,例如${__setProperty(requesttoken,${token},)}‌。
    • 在目标线程组中,使用${__P(requesttoken)}来获取属性值‌。

这些方法可以帮助你在JMeter的不同线程组之间传递参数,确保测试的连贯性和数据的准确性。

标签:__,组中,线程,BeanShell,使用,Jmeter,传值,属性
From: https://blog.csdn.net/Queen077/article/details/143628139

相关文章

  • Jmeter关联处理-正则表达式提取
    当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,就需要关联处理。正则表达式就是一个公式,或者说一套规则,这套规则可以从任意字符串中提取出想要的数据内容。作用:把上一个请求的响应结果和下一个请求的数据有关联。在需要提取参数的请求的“后置处理器”部分......
  • 进程 线程
    1.举例进程,能够完成多任务,比如在一台电脑上能够同时运行多个QQ线程,能够完成多任务,比如一个QQ中的多个聊天窗口2.定义的不同进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自......
  • python中多线程和多进程的应用
    选择指南总结I/O密集型任务:使用多线程(ThreadPoolExecutor)。例如,爬虫抓取数据、从数据库或API获取信息、读取/写入文件等。计算密集型任务:使用多进程(multiprocessing.Pool)。例如,进行大量数据计算、数值分析等。混合型任务:可以结合多线程和多进程。例如,先用线程处理I/O......
  • python多线程:控制线程数量
    python多线程:控制线程数量  https://www.cnblogs.com/hanmk/p/12990017.html使用线程池  https://zhuanlan.zhihu.com/p/6278539371.自定义线程池1importthreading2importQueue3importtime45queue=Queue.Queue()678defput_data_in_qu......
  • 并发编程(6)——future、promise、async,线程池
    六、day6今天学习如何使用std::future、std::async、std::promise。主要内容包括:参考:https://llfc.club/category?catid=225RaiVNI8pFDD5L4m807g7ZwmF#!aid/2Agk6II6SsiG8DwPawfXHsP4bUThttps://github.com/Mq-b/ModernCpp-ConcurrentProgramming-Tutorial/blob/main/md......
  • 并发编程/6种线程池设计图/1大线程池标准设计与执行规范/2种线程池管理设计(全面篇)
    在现代多核处理器时代,线程池成为了并发编程中不可或缺的工具,它不仅提高了程序性能,还简化了线程管理。线程池允许我们重用有限数量的线程来执行大量任务,从而减少了线程创建和销毁的开销。Java中的ExecutorService接口及其实现类,如FixedThreadPool、SingleThreadExecutor、Ca......
  • 线程的概念、作用和属性
    线程的概念、作用和属性线程的概念理解:线程可视作“轻量级进程”。线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文......
  • 线程的实现方式和多线程模型
    线程的实现方式和多线程模型‍​​‍一、线程的实现方式(一)用户级线程​​‍(二)内核级线程​​‍二、多线程模型在支持内核级线程的系统中,根据用户级线程和内核级线程的映射关系,可以划分不同的多线程模型(一)一对一模型​​‍(二)多对一模型和上面提到的用户级线程的......
  • 两个线程交替写1~100
     packageTest;publicclassPrintNumber{privateintstatus=1,cnt=1;synchronizedvoidprint_odd(){while(cnt<100){while(status==2){try{this.wait();}......
  • Java并发编程 --- 线程安全
    为什么会有线程安全问题?为什么会存在线程安全问题呢?那我们先来探究一下JMM(Java内存模型)线程与JMM每个线程都有自己的工作内存,它会存储主内存中变量的Copy值,再对变量进行操作的时候,也是操作工作内存中变量的Copy值。当线程Dead(生命周期结束)时,才会将自己工作内存中的数据同......