14_jmeter之多線程共享cookie

jmeter中在測試計劃下添加一個cookie管理器就能實現多個接口對于cookie的驗證,但是只能作用于一個線程,如果把登錄和其余接口用多個線程分開,非登錄接口的request headers中顯示no cookie,從而導致腳本報錯!

解決方法:

  1. 創(chuàng)建一個登錄的http請求,然后執(zhí)行,看返回的cookie是在response的哪里!我這邊數據返回在response headers里,有些會用token,會在response body里
  1. 在登錄的http請求下創(chuàng)建后置處理器--正則表達式提取器或者后置處理器--邊界值提取器都可以,提取headers中的cookie信息
    正則表達式提取器和邊界值提取器的使用方法百度搜索一大把!
  1. 在登錄http請求下創(chuàng)建一個后置處理器--BeanShell PostProcessor,把提起到的cookie值改成全局變量
    格式:${__setProperty(轉換成全局變量后的引用名,${正則表達式定義的變量名},)};
${__setProperty(APHPSESSID,${PHPSESSID},)};
${__setProperty(Alanguage,${language},)};
${__setProperty(A1_product,${1_product},)};
${__setProperty(ApageSize,${pageSize},)};

log.info("----------------------APHPSESSID="+${__P(APHPSESSID,)}+"--------------------");
  1. 再添加一個cookie管理器,這個cookie管理器和上面的是不同的,這個里面是要放裝換成全局變量后的cookie引用名

注意:請看清楚層級結構,第二個cookie管理器所在的位子,請不要放在線程組內了!??!

關于第一個cookie的解釋:我的登錄中有重定向請求,第一個子請求就產生了cookie,后面兩個子請求依賴于第一個子請求的cookie,所以我創(chuàng)建了兩個cookie管理器!
登錄線程下面又創(chuàng)建的一個cookie管理器,按照jmeter中的執(zhí)行順序,下面的線程只會用第二個cookie管理器中的數據

  1. 第二個cookie管理器中的寫法
    名稱:cookie的key
    值: 引用 ·{__setProperty(,,)}; 中定義的全局變量名
    格式:${__P(全局變量名,)}
    域:我的理解,要測試的接口的域名或者ip
    路徑: 就用 / 就好了
  1. 結果展現

下個線程也請求成功了

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容