Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用

时间:2023-03-09 22:14:03
Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用

先看下脚本结构:

Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用

思路:将登陆请求放在setUp Thread Group中;把登陆后的cookie通过正则提取出来,然后存为全局变量,传递到下一个线程组中;

第一步:添加setUp Thread Group线程组;线程数、Ramp-Up Period、循环次数都设置为1

Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用

第二步:添加HTTP Cookie 管理器,不用添加任何值

第三部:添加Sample,HTTP请求

Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用

第四步:添加后置处理器,正则表达式;

Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用

第五步:添加后置处理器,BeanShell PostProcessor;之前正则定义了参数TSSID,现在可以直接通过${TSSID}提取出来,并通过${__setProperty(newsTSSID,${TSSID},)};存入newsTSSID变量中,

Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用

第六步:添加线程组

第七部:添加配置元件,HTTP信息头管理器,将变量newsTSSID的值,通过${__property(newsTSSID)}取出,通过请求头传递cookie;

Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用

第八部:添加登陆后的请求,由于提交bug请求用的请求头不一致,所以要添加单独的请求头,这个可以通过抓包工具获取

Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用

然后查看结果树可以正常提交bug;

图中第三个线程组可添加可不添加,本人主要是用来测试setUp Thread Group执行次数,事实证明,setUp Thread Group设置运行几次,就运行几次,

不管是选中图中测试计划中的任意两种模式Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用,都会在线程组运行之前,先运行完毕setUp Thread Group,才会继续运行线程组,做初始化的操作;

而线程组之间的运行规则,如果选中独立运行每个线程组,则会先运行完setUp Thread Group,再依次运行线程组,如果选中第二个,则会先运行完setUp Thread Group,再同时运行所有线程组;两个都选,则会先运行完setUp Thread Group,再依次运行线程组;