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中引用

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

posted @ 2021-11-12 14:16  水玄雨林  阅读(755)  评论(0)    收藏  举报