Cookie,跨线程组接口调用

构成:线程组A

            ----- 登录请求

     线程组B

            ----- 新建请求

系统:登录生成cookie 和 token。 后面所有的请求在 cookie 的情况下,传递 token 来请求数据。

实现:

 1. 测试计划:配置环境变量,供后面所有接口调用

 2. 线程组A, 新建登录接口,再给登录接口下 添加:

    “查看结果树”,

    "JSON提取器“(自定义成了 token 提取器),

    "正则表达式提取器“(自定义成了cookie正则表达式提取器),

    BeanShell断言

 3. 运行 登录接口

     

   4. 查看登录的查看树, token 在 Repsonse Body的 msg,JSESSIONID 在 Response headers 的 JSESSIONID 

   5. 提取 token 和 JSESSIONID,利用 JSON提取器 和 正则表达式。提取后,形成变量 token 和 JSESSIONID

        注意:

    1)token 和 JSESSIONID 的表达式,需要根据 登录生成的具体字符串来提取。

    2)JSESSIONID 因为是在 登录接口的 Response Header里面,所以提取 JSESSIONID 时选择的时,Main sample 和 Header

       

    6. 变量 token 和 JSESSIONID 目前仅在一个线程组内可以调用。跨线程组的调用,需要将其设置成全局变量,可以使用 BeanShell断言 来实现。

         

      7. 新建另外一个线程组,新建功能,并添加:

    HTTP 请求:新建功能

    HTTP Cookie Manager:加载前面设置的 Cookie

    查看结果树:查看结果

  8. 配置

    ${__P(JSESSIONID)}:从全局变量中获取 JSESSIONID;

    域:一定要配置!!!,即当前请求的域名或IP

     

            

 9. 运行新建的HTTP请求,查看结果树

  如果 请求里面的 Requst Body or Request Headers 里面,包含了所需要的 token 和 JSESSIONID,那么基本就没什么问题。

  

原文地址:https://www.cnblogs.com/bruce-he/p/12900450.html