【JMeter】JMeter實現跨線程組共享cookie


Jmter實現跨線程組共享cookie

場景:
測試需要登錄的接口時,只需要在一個線程組中添加http cookie管理器就可以實現。
此時進行壓測,比如用戶並發數100 ,相當於調用100次登錄接口和100次需測試接口。但是在實際場景中,只需要調用1次登錄接口,此時需要把登錄和被測接口的線程分開,並實現多線程共享cookie。

解決方法

  1. 創建setup線程,添加登錄的http請求、添加察看結果樹,執行后在結果樹中查看登錄接口返回的cookie。返回形式有兩種:Response headers、Response body。本文講解返回的cookie在Response headers中。有些會用token ,返回在response body。
    在這里插入圖片描述

  2. 在登錄的http請求下創建后置處理器- -正則表達式提取器,提取headers中的cookie信息。

引用名稱: jsession
正則表達式: Set-Cookie:(.*)
模板: $ 1$
匹配數字: 1
缺省值: error

在這里插入圖片描述

在這里插入圖片描述

  1. 添加取樣器-調試取樣器,用於校驗正則表達式取到的cookie是否正確。( 運行后可查看到)

在這里插入圖片描述

在這里插入圖片描述

  1. 確認cokkie取值正確后,在登錄請求下添加后置處理--BeanShel后置處理程序。將cookie值改為全局量,如圖。
    格式: $ {_ setProperty(轉換成全局變量后的引用名 ,${正則表達式定義的變量名},)}

在這里插入圖片描述

  1. 以上完成登錄的線程組后,添加第2個線程組,添加被測接口的http請求,添加配置元件-http信息頭管理器,設置cookie的值: ${_ _property(JSESSIONID)。
    這一步在其他教程上看到過是添加在http cookie管理器中,但是我沒有實現。
    在這里插入圖片描述

在這里插入圖片描述

  1. 設置登錄的線程數1 ,需測試接[的線程數2 ,運行后可看到被測接口的Request Body中有Cookie Data ,並且值與登錄接口返回的信息頭中的set-Cookie-致。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM