jmeter设置全局变量在不同线程使用

不得不说jmeter是一个很强大的工具,上手容易/插件多/扩展性强,现在进入正题,接口中参数需要加密需要获得token,之前是直接叫开发把加密校验关闭,直接在redis里面导入一批token直接使用,本次是先调用登陆接口获取到token再将获取到的token进行加密,需要的步骤:

    1. 第一个线程,跑通登陆接口

        1).选择插件BeanShell PreProcessor,编写脚本获取登陆接口中需要加密的sign(因为登陆接口中token为非必传,所以此处传入null进行加密):


        2).添加查看结果数,查看返回结果,添加正则表达式提取器获取到返回结果中需要获取的userToken:


        3).将获取到的token设置为全局变量,方便后续接口使用,添加后置处理器:BeanShell PostProcessor,特别注意添加第一行代码(虽然不晓得为嘛要添加,反正经过调试不添加第一段在设置全局变量时就获取不到token变量的值):

2. 添加第二个线程,业务流程接口:

    1). 添加前置处理器BeanShell PreProcessor,编写接口需要加密的参数,业务流程的接口都需要传入token,token为登陆接口获取的token,可直接用:${__P(token,)}获取,请求头参数:

    3. 设置完以上信息接口基本就跑通了,在接口请求中添加断言校验接口,此处只添加了简单的响应断言,只要响应码为200就当作接口请求通过:

在这个过程中遇到的难点就是在设置全局变量时一直不能获取到,在网上查了好多资料照着写也不能实现,后面发现因为在BeanShell PreProcessor插件里面有一行代码错误导致请求头里面无法获取到。

以此记录设置全局变量方法

你可能感兴趣的:(jmeter设置全局变量在不同线程使用)