jmeter beanshell预处理程序和后处理程序以及跨线程组传参
最近在做公司的接口测试
因系统做了防重放攻击等安全措施,导致接口之间的加密验证会一直变化,所以需要使用正则表达式和beanshell,下面为总结的一些方法
通过beanshell生成22位的随机字符串,使用base64进行加密以及对函数进行全局变量设置,进行跨线程传参
随机字符串:
在jmeter中可以通过函数助手去快速的生成一个函数

random string length:需要生成的结果长度
Chars to use for random string generation:生成字符串的取值范围
存储结果的变量名(可选):保存生成结果的变量名,这个是可选的
base64加密:

通过beanshell预处理程序,导入base64加密库,引用随机生成字符串函数,对随机生成的字符串进行加密
使用vars.put("变量名", 变量),对变量进行存储,可以在同线程使用${变量名}进行引用
正则表达式提取:
通过正则表达式提取器,提取响应数据的关键值

提取请求头中的admin-token-id
通过beanshell后置处理器将admin-token-id设为全局变量

${__setProperty(admin_token_id, ${admin_token_id},)};
设置引用的变量名为admin_token_id,使用前面正则表达式提取的数据进行赋值
跨线程传递参数:
设置全局变量后

${__P(admin_token_id,)},引用全局变量,如需要在beanshell中引用

需要将引用函数,通过引号,转为字符串,否则无法传递,转为字符串后后续可以对字符串进行加密,拼接等操作

浙公网安备 33010602011771号