BeanShell PostProcessor是用户对一些变量的操作,操作方法很灵活,大概原理是通过parameters传回来对象,然后在script中对对象进行操作
场景:从登陆接口中获取token,设置成全局变量让HTTP Header Manager能获取到,让其他所有线程都能拿到这个参数
1.在Test Plan下设置HTTP Header Manager,以及需要用的Header内容
2.建立一个线程放置登陆接口,并提取token设置成全局变量
提取token:
设置全局变量:把上一步提取的token通过Parametres:把需要操作的参数传递给Bean Shell PostProcessor。
- 前面提取出来的token的值,就把参数token写入Script: string Token=bsh.args[0]; 把Bean Shell PostProcessor接收到的参数值,赋值给某参数。0是第一个值。${__setProperty(requestToken,${Token},)}; 调用函数__setProperty,把Bean Shell PostProcessor中的参数Token的值赋值给requestToken,并设置requestToken为jmeter内置属性。
用函数助手获取__setProperty:
再用_P函数来引用:
这次脚本思路:
登陆只登陆一次获取token后然后对某个接口进行压测,对接口进行压测就要设置线程,频繁的多余掉去登陆接口会造成资源浪费