您好,登錄后才能下訂單哦!
今天,這章節我們主要來學習JMeter參數化__CSVRead().
概念:
Apache JMeter是Apache組織開發的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設計用于Web應用測試,但后來擴展到其他測試領域。 它可以用于測試靜態和動態資源,例如靜態文件、Java小服務程序、CGI 腳本、Java 對象、數據庫、FTP 服務器, 等等。JMeter 可以用于對服務器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。另外,JMeter能夠對應用程序做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。
JMeter的作用
1.能夠對HTTP和FTP服務器進行壓力和性能測試, 也可以對任何數據庫進行同樣的測試(通過JDBC)。
2.完全的可移植性和100% 純java。
3.完全 Swing 和輕量組件支持(預編譯的JAR使用 javax.swing.*)包。
4.完全多線程 框架允許通過多個線程并發取樣和 通過單獨的線程組對不同的功能同時取樣。
5.精心的GUI設計允許快速操作和更精確的計時。
6.緩存和離線分析/回放測試結果。
配置項:
使用文件別名:
若文件路徑較長,可以考慮使用文件別名來簡化書寫。使用方法為:
首先,在第一次使用參數前定義文件別名;以后,在調用函數獲取數據
時都可以使用別名代替文件名,下面是使用別名的例子:
從不同數據文件讀取數據:
可以設置不同的線程讀取不同的數據文件。
假設有n個線程,準備對應好的n個csv文件: testdata1.csv,
testdata2.csv,... ,testdatan.csv
線程1讀取testdata1.csv中的數據,線程2讀取testdata2.csv中
的數據,...
使用${threadNum}獲取線程編號,再與文件名前后綴拼接形成動態
的文件路徑作為CSVRead函數的第一個參數:
${CSVRead(./testdata${__threadNum}.csv,0)}
這里以前面介紹過的查詢被購買的商品總金額接口為例。
參數化步驟:
1、確定接口參數中哪些請求參數需要進行參數化在設計測試用例時,我們針對商品編號,商品規格,商品數量來準備數據,故對id,attr,number參數化
2、將測試數據放在外部一個文檔保存,文件類型為csv或txt -->
.csv or .txt
新建一個testdata.csv,一行寫一個用例,多個參數值默認用,分隔(注意不要寫列標題):
case1,9,226,3
case2,,226,1
case3,9,,1
case4,9,226,
3、調用__CSVRead()函數獲取外部數據文件中的數據
Tools-->Function Helper Dialog,打開“Function
Helper”,在“Choose a function”中選擇“__CSVRead”。
填入參數值后,點擊“Generate & Copy to Clipboard”,生成函數調用語句:
取列值:
id:
${__CSVRead(C:\Users\Foreknew\Desktop\testdata.csv,1
)}
attr:
${__CSVRead(C:\Users\Foreknew\Desktop\testdata.csv,2
)}
number:
${__CSVRead(C:\Users\Foreknew\Desktop\testdata.csv,3
)}
換行:
${__CSVRead(C:\Users\Foreknew\Desktop\testdata.csv,n
ext)}
4、在請求中將寫死的數據用第3步中定義的變量進行替換
data --> ${varName}
比如 ${attr}
5、配置參數化
5.1 將線程數設置為用例的個數
5.2 循環控制請求的次數
添加一個循環控制器,設置其循環次數為測試用例個數。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。