目錄
__CSVRead() :和 CSV Data Set Config 類似可以讀取 CSV 文件數據
函數:可以被認爲是某種特殊的變量,它們可以被採樣器或者其他測試元件所引用。
1. __CSVRead
2. __counter
3. __Random
4. __time
5. __setProperty
6. __property
數字類
__counter() : 計數器
__random(): 隨機數函數
包含左右臨界值(左閉右閉)
__time() : 獲取時間的函數
時間格式: yyyy/MM/dd HH:mm:ss ==》 年/月/日 時:分:秒
__CSVRead類
__CSVRead() :和 CSV Data Set Config 類似可以讀取 CSV 文件數據
作用:csvRead函數是從外部讀取參數,csvRead函數可以從一個文件中讀取多個參數
需求:使用 CSVRead 函數實現學院信息的批量插入(比如: 3條)
思想:
1)、搭建框架(線程組的線程數設置循環次數),JSON 格式數據只是模板,具體數據動態獲取
注意:執行次數設置與信息頭設置
CSV Data Set Config 執行多次是使用的循環次數,而 CSVRead 執行多次使用的是線程數
2)、將數據存儲在外部的文本文檔(CSV 格式)
3)、使用 CSVRead 函數逐行獲取並解析 CSV 文件,插入到提交的 JSON 數據中
CSVRead 函數設置 CSV文件路徑時,必須得使用絕對路徑,不可以使用相對路徑
第1個用戶讀取第一行,第2個用戶讀取第二行......
都是讀取第一行,執行三次。這個跟csv data seting設置循環次數的區別。
1. 選擇一個功能:選擇__CSVRead
2. CSV file to get values from | *alias:要讀取的文件路徑-(絕對路徑)
3. CSV文件列號| next| *alias:從第幾列開始讀取,注意第一列是0
4. 點擊生成函數引用格式
5. 全選複製
屬性類
需求:http 請求1 訪問百度,將請求1響應的 title 值傳遞給請求2,但是兩個請求不屬於同一個線程組
http 請求2 訪問 google /?wd=百度一下你就知道
實現思想 :
將線程組內部的數據導出去,存儲在共享空間中,其他線程組要使用數據,就從共享空間獲取。
實現流程:
1)、將數據從當前線程組導出 __setProperty
變量名
變量值 ${變量名}
<u>使用 BeanShell Sampler 調用函數</u>
2)、另外一個線程組將導出到共享空間的數據引入 __property
根據變量名獲取
注意:查看共享數據,工作臺 ----> 添加 -----> 非測試元件 ----> property display
通過在同一個線程組兩個請求結合xpath提取器進行關聯的方式可以實現。但是跨越兩個線程組的話,參數就無法傳遞了,如上圖,說明作用域只限在同一線程組。(測試計劃已勾選 獨立運行線程組選)
__setProperty() : 屬性設置
用於把指定數據設定成Jmeter屬性,可以理解爲是把指定數據設置成全局變量.
1. 屬性名稱:要設置的屬性名稱也就是全局變量名
2. Value of property:屬性的值(全局變量的值)
BeanShell Sampler 組件
可執行JavaScript的一種容器。設置屬性的函數,真正生效需要BeanShell Sampler 的協助。
Property Display
查看共享全局變量信息。(鍵值對的形式)
位置:測試計劃--非測試元件--Property Display
__property() : 屬性獲取
獲取Jmeter中屬性值
另一個線程組的請求需要引用全局變量的屬性,如上圖設置。
但是,不建議共享數據擴大作用域。使用場景不多。