介面測試基礎06
阿新 • • 發佈:2020-10-09
Jmeter元件:邏輯控制器(重點)
A、是什麼
邏輯控制器:可以控制取樣器的實現順序(分支+迴圈)的一種元件類似於計算機語言的流程控制語句,流程控制就是控制程式碼的執行順序(分支+迴圈)B、為什麼
需求:1. name=['百度','京東','淘寶']
2. name=百度,執行緒組執行請求百度;name=京東,執行緒組執行請求京東;name=淘寶,執行緒組執行請求淘寶;
問題:1. Jmeter目前學習的知識無法使用判斷語句去控制HTTP取樣器
什麼是邏輯控制器?概念:Jmeter邏輯控制器是可以控制取樣器(Sampler)的執行順序,它由多個邏輯控制語句封裝成不同功能的元件組成
邏輯控制器作用域常用邏輯控制器作用域:只對其子節點的sampler有效。
1. 如果(If)控制器
2. ForEach控制器
3. 迴圈控制器
如果(If)控制器
作用:條件成真,則執行控制器下所有取樣器
解決方案分析1. 測試計劃->執行緒組
2. 測試計劃->使用者自定義變數
3. 執行緒組->如果(If)控制器
4. 如果(If)控制器->HTTP請求
5. 測試計劃-察看結果樹
技術難點分析如果(If)控制器 引數設定
如果(If)控制器引數配置圖1. 條件:"${name}"=="百度"
2. 注意:
1) 引用變數格式${name}需要被雙引號括起來
2) 兩個等號
3) 值需要被雙引號括起來
如果(If)控制器-總結1. 作用
2. 作用域
3. 條件格式
ForEach控制器
作用:ForEach控制器一般和使用者定義的變數一起使用,在使用者自定義變數中讀取一系列相關的變數。
案例1使用ForEach元件讀取自定義變數,作為請求(查詢學院-所有)的user變數值使用
操作分析1. 測試計劃->執行緒組
2. 執行緒組->使用者定義的變數
3. 執行緒組->ForEach控制器
4. ForEach控制器->HTTP請求
5. 測試計劃->察看結果樹
技術難點分析1. ForEach控制器引數設定
2. 使用者定義的變數書寫格式(字首+_+數字)
ForEach控制器引數配置圖ForEach控制器-總結1. 輸入字首變數:輸入要遍歷變數字首 2. Start index for loop(exclusive):遍歷變數開始的索引(從0開始) 3. End index for loop(inclusive):遍歷變數結束的索引(不包括結束索引) 4. 輸出變數名稱:定義要被引用的變數名稱
1. 作用
2. 使用ForEach讀取使用者定義的變數時,變數格式
3. ForEach引數設定
迴圈控制器
作用:指定迴圈控制器內取樣器的執行次數
案例3使用迴圈控制器執行(查詢學院-所有)介面10次
操作步驟分析1. 測試計劃->執行緒組
2. 執行緒組->迴圈控制器
3. 迴圈控制器->HTTP請求(查詢學院-所有)
4. 測試計劃->察看結果樹
迴圈控制器配置圖1. 迴圈次數:要執行的次數
迴圈控制器-總結迴圈控制器更靈活,執行緒組迴圈是組內所有請求都迴圈執行,迴圈控制器可以只是讓組內指定的請求迴圈執行
Jmeter元件:QPS
A、是什麼?
QPS: Query Per Second ---- 每秒查詢率,每秒訪問伺服器資源多少次
20QPS == 每秒訪問20次
B、為什麼?
一個使用者以 20QPS 的頻率訪問伺服器,持續10秒,檢視伺服器的平均響應時間?
(等價)
一個使用者每秒訪問20次伺服器,持續10秒,檢視伺服器的平均響應時間?
C、怎麼用?
使用新的元件實現:常量吞吐定時器 Timer ----> Constant Throughput Timer實現流程:1)、搭框架(測試計劃,執行緒組,http請求,聚合報告)1)、搭框架(測試計劃,執行緒組,http請求,聚合報告)
迴圈次數設定: 頻率*持續時間
2)、新增常量吞吐定時器將 QPS(每秒查詢數) 換算成每分鐘查詢數
3)、檢視聚合報告throughput 顯示的是每秒查詢數,參考步驟2設定的值,實際執行一般圍繞步驟2的值上下波動
Jmeter元件綜合:作用域(記住)
A、是什麼
Jmeter 元件的作用範圍(可以影響到哪些元件)
B、分類
第一類:以聚合報告為例,只對樹形結構上自己的直接父級以及兄弟級以及子級...有效 基本所有元件都屬於第一類第二類:邏輯控制器,只對子級有效第三類:取樣器可以不依賴任何元件存在,可以不對其他元件產生任何影響, 取樣器無作用域概念Jmeter元件綜合:執行順序(記住)
A、是什麼?
元件: Jmeter的內建功能,每一個功能都是一個元件
元件:元件中儲存的都是性質相似的元件(就是對元件的分類管理)
B、排序
1.各元件之間的執行順
1) 配置元件(config elements) : 儲存了一些程式的全域性性資料
2) 前置處理程式(Per-processors) :取樣器執行之前執行的元件,可以儲存批量執行的資料
3) 定時器(timers) :在請求執行之前集合使用者
4) 取樣器(Sampler) :訪問伺服器
5) 後置處理程式(Post-processors) :處理響應的結果
6) 斷言(Assertions) :斷言結果
7) 監聽器(Listeners) :最後執行
理解記憶:核心思想就是以取樣器為中心劃分的。Jmeter擴充套件元件:圖形監視器
A、是什麼?
擴充套件元件:不是Jmeter 官方提供的,而是自己開發的元件,就是擴充套件元件
圖形監視器:是監視伺服器的如,記憶體、CPU、磁碟、網路等執行狀態的元件實現
B、為什麼?
模擬生產環境下,伺服器執行狀態的測試
C、怎麼用?
C-1、實現思想
1)、明確應用場景:
學習期間:伺服器和測試程式在個人 PC 機,工作時,測試程式可能需要遠端訪問伺服器
我們要測試的是伺服器的執行狀態
2)、圖解流程C-2、實現流程1)、Jmeter本身不具備該功能,下載安裝第三方實現
2)、在伺服器端安裝竊聽程式,在測試機端安裝(整合進 Jmeter )接收程式
竊聽程式: Server_Agent,啟動:雙擊 serverAgent.bat 使用埠號 4444
接收程式: 複製Jmeter_Plugins_Starndat 目錄下的 jar包,到Jmeter\lib\ext
3)、編寫測試指令碼啟動並執行
a)、指令碼迴圈 次數設定為無限,如果次數設定比較少,可能執行時間短,等不到監聽
b)、新增接收元件: 監聽器 ----> jp@gc permon Metrics Collector
Jmeter元件:FTP(瞭解)
A、是什麼
FTP:檔案上傳和下載上傳:將檔案從本地上傳到伺服器下載:將伺服器資源下載到本地
B、為什麼?
程式中常見操作
C、怎麼用?
C-1、保證伺服器程式具備檔案上傳和下載的功能,安裝一個檔案上傳下載伺服器(FTP伺服器)
C-2、Jmeter內建了 FTP請求,可以通過此請求實現檔案傳輸測試
Jmeter專案準備:介面清單提取與整理
A、介面清單組成
介面清單組成:
功能模組,每個功能又有三要素: URL + 提交的資料 + 響應的資料
B、API文件
Application Programming Interface 應用程式程式設計介面,此文件中聲明瞭
程式的功能,以及該功能描述以及訪問的資源路徑和提交響應的資料
是開發和測試共同遵守的文件說明
C、介面清單就是從 API 文件提取整理的
因為 API 文件內容冗餘,測試需要從中提取,測試需要的關鍵資訊