1. 程式人生 > 實用技巧 >介面測試基礎06

介面測試基礎06

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控制器引數配置圖
1. 輸入字首變數:輸入要遍歷變數字首
2. Start index for loop(exclusive):遍歷變數開始的索引(從0開始)
3. End index for loop(inclusive):遍歷變數結束的索引(不包括結束索引)
4. 輸出變數名稱:定義要被引用的變數名稱
ForEach控制器-總結
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 文件內容冗餘,測試需要從中提取,測試需要的關鍵資訊