日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JMeter中3种参数值的传递

發布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JMeter中3种参数值的传递 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小伙伴們在使用JMeter的過程中,肯定會遇到參數值傳遞的問題,下面來和大家總結下,在使用JMeter做壓力測試的時候,常見的3種參數值的傳遞是怎樣的。?

(一)從CSV文件讀取要批量輸入的變量?

假如我們要登錄的數據保存在login.csv文件里,數據如下:?

?

在JMeter中,我們需要添加CSV Data Set Config這個配置文件,如下圖:?

?

添加后,我們需要填寫其中的必要參數,如Filename和Variable Names:?

?

這里要注意下Variable Names里面的分隔符,為啥是用’,’號呢,因為csv文件login.csv用notepad++打開是如下所示,前面的字段是代表用戶的user,后面的字段代表的pwd:?

?

配置好CSV Data后,我們添加login的HTTP請求,截圖如下:?

?

其中用戶的user和pwd都是用${}包圍著的,這個是JMeter的語法規定。配置線程數為5,點擊啟動按鈕運行后,看到的結果如下:?

?

?

?

?

?

可以看到,login.csv文件中的2個字段被當作參數值進行了傳遞。?

(二)利用Cookie進行值的傳遞?

用JMeter進行接口調試時,有時候會遇到需要登錄的情況,如請求wetest的DataSearchAjax接口:?

?

返回的結果如下:?

?

出現這種情況的原因很明顯是未登錄引起的。一個較好的解決方法就是將登錄后的cookies保存下來,在訪問DataSearchAjax接口的時候,帶上用戶登錄后的cookies信息進行查看。?

在JMeter中,我們可以通過如下途徑進行cookies的傳遞,如下圖添加HTPP Cookie管理器:?

?

再給登錄的接口添加前置處理器Bean Shell PreProcessor,用來保存登錄的cookies:?

?

下面,我們要在Bean Shell PreProcessor里面添加我們的cookies值了。

import org.apache.jmeter.protocol.http.control.CookieManager;?

import org.apache.jmeter.protocol.http.control.Cookie;?

?

// 身份驗證必須的cookie值字段(可以詢問開發哪些是必須要校驗的字段)

// 可以在登錄后,點擊chrome里URL右邊的查看網站信息按鈕,查看所有的cookie值找到

// wetest的校驗字段是:csrftoken和sessionid

?

CookieManager manager = sampler.getCookieManager();

String csrftoken = "898b3ade5cb3744140503da601dee5d6793f82807cda581de9eb0982c05dfdc7a"; ?

//定義Cookie對象,其中參數:cookie的名稱, cookie值, cookie域, 路徑, 安全

Cookie cookie = new Cookie("csrftoken",csrftoken,"wetest.qq.com","/",false,0);

manager.add(cookie);

?

String sessionid = "0ir0hrodptu5qgv9qurk98c3l4";?

Cookie cookie1 = new Cookie("sessionid",sessionid,"wetest.qq.com","/",false,0);

manager.add(cookie1);

添加完HTPP Cookie管理器和在前置處理器Bean Shell PreProcessor寫好腳本后,再次運行登錄接口和DataSearchAjax接口:?

?

?

?

?

?

?

可以看到,后面的請求攜帶了我們在Bean Shell PreProcessor腳本中保存的cookie值,并且成功返回了要查詢的數據。

(三)利用正則匹配提取上一個接口的返回數據作為下個請求的輸入?

用JMeter進行接口調試時,經常會遇到上一接口的返回值中的某個字段,要作為下一接口的輸入,這種情況下,我們需要利用正則匹配來提取我們需要的值。?

?

例如,若要提取相應數據中的goodpraise字段作為下個接口的輸入的話,可以在該接口請求后面添加正則表達式提取器:?

?

我們給正則表達式提取器命名為get_goodpraise,并填寫引用名稱、正則表達式、模板、匹配數值、缺省值,填寫后的如如下:?

?

填寫完成后,在添加新的HTTP請求,來測試提取到的goodpraise_name字段:?

?

這里要注意,${}里面填寫的一樣要是引用名稱的變量,保存后執行:?

?

若返回的請求goodpraise_name字段為-1,-1是我們設定的默認字段。那說明我們的正則表達式寫錯了,要仔細檢查下改成正確的正則表達式,再執行:?

?

可以看到,我們提取到的goodpraise_name字段成功傳遞給新的http請求。?

至此,JMeter中3種參數值的傳遞已全部講解完,小伙伴們學會了嗎~*(^_^)*~

本文由騰訊WeTest團隊提供,更多資訊可直接戳鏈接查看:http://wetest.qq.com/lab/?

轉載于:https://www.cnblogs.com/ceshi2016/p/6029407.html

總結

以上是生活随笔為你收集整理的JMeter中3种参数值的传递的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。