我們可以用jmeter進行性能測試和接口測試,本篇介紹jmeter基礎功能
一、jmeter能做什麼
1.能夠對HTTP和FTP服務器進行壓力和性能測試,也可以對任何數據庫進行同樣的測試
2.完全的可移植性和100%純Java
3.完全Swing的輕量級組件支持
4.完全多線程框架允許通過多個線程併發取樣和通過單獨的線程組對不同的功能同時取樣
5.精心的GUI設計允許快速操作和更精確的計時
6.緩存和離線分析/回放測試結果
7.高可擴展性:
可鏈接的取樣器允許無限制的測試能力
各種負載統計表和可鏈接的計時器可供選擇
數據分析和可視化插件提供了很好的可擴展性以及個性化
具有提供動態輸入到測試的功能
支持腳本變成的取樣器
二、jmeter頁面組件介紹
- 測試計劃
用來描述一個性能測試,包含與本次性能測試所有相關的功能。也就說本的性能測試的所有內容是於基於一個計劃的。
下面看一下一個計劃下面都有哪些主要的功能模塊(右鍵單擊“測試計劃”彈出菜單)。
- 線程和用戶
雖然有三個添加線程組的選項,名字不一樣, 創建之後,其界面是完全一樣的。之前的版本只有一個線程組的名字。現在多一個setUp theread Group 與terDown Thread Group
1) setup thread group
一種特殊類型的ThreadGroup的,可用於執行預測試操作。這些線程的行爲完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試前進行定期線程組的執行。
2) teardown thread group.
一種特殊類型的ThreadGroup的,可用於執行測試後動作。這些線程的行爲完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試結束後執行定期的線程組。
可能你還是不太理他們與普通的線程組有什麼不同。 如果您用過junit,想必你不會對setup ,teardown這2個字眼陌生。 即時每用過,也沒關係。 熟悉loadrunner的應該知道,loadrunner的腳本除了action裏是真正的腳本核心內容,還有初始化“環境”的初始化腳本和測試完畢後對應的清除信息的腳本塊。 那麼這裏 setup thread group 和 teardown thread group 就是分別指這兩部分。 其實從本質上來看,他們並沒有什麼不同。
3) thread group(線程組).
這個就是我們通常添加運行的線程。通俗的講一個線程組,,可以看做一個虛擬用戶組,線程組中的每個線程都可以理解爲一個虛擬用戶。線程組中包含的線程數量在測試執行過程中是不會發生改變的。
- 測試片段
測試片段是在2.5版本之後新加的一個選項。
測試片段元素是控制器上的一個種特殊的線程組,它在測試樹上與線程組處於一個層級。它與線程組有所不同,因爲它不被執行,除非它是一個模塊控制器或者是被控制器所引用時纔會被執行。
- 取樣器
取樣器(Sample)是性能測試中向服務器發送請求,記錄響應信息,記錄響應時間的最小單元,JMeter 原生支持多種不同的sampler ,如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等,每一種不同類型的 sampler 可以根據設置的參數向服務器發出不同類型的請求。
- 邏輯控制器
邏輯控制器,包括兩類無件,一類是用於控制test plan 中 sampler 節點發送請求的邏輯順序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循環控制器等。另一類是用來組織可控制 sampler 來節點的,如 事務控制器、吞吐量控制器。
- 配置元件
配置元件(config element)用於提供對靜態數據配置的支持。CSV Data Set config 可以將本地數據文件形成數據池(Data Pool),而對應於HTTP Request Sampler和 TCP Request Sampler等類型的配製無件則可以修改Sampler的默認數據。
- 定時器
定時器(Timer)用於操作之間設置等待時間,等待時間是性能測試中常用的控制客戶端QPS的手端。類似於LoadRunner裏面的“思考時間”。JMeter 定義了Bean Shell Timer、Constant Throughput Timer、固定定時器等不同類型的Timer。
- 前置、後置處理器
前置處理器
用於在實際的請求發出之前對即將發出的請求進行特殊處理。例如,HTTP URL重寫修復符則可以實現URL重寫,當RUL中有sessionID 一類的session信息時,可以通過該處理器填充發出請求的實際的sessionID 。
後置處理器
用於對Sampler 發出請求後得到的服務器響應進行處理。一般用來提取響應中的特定數據(類似LoadRunner測試工具中的關聯概念)。例如,XPath Extractor 則可以用於提取響應數據中通過給定XPath 值獲得的數據。
- 斷言
斷言用於檢查測試中得到的相應數據等是否符合預期,斷言一般用來設置檢查點,用以保證性能測試過程中的數據交互是否與預期一致。
- 監聽器
這個監聽器可不是用來監聽系統資源的元件。它是用來對測試結果數據進行處理和可視化展示的一系列元件。 圖行結果、查看結果樹、聚合報告。都是我們經常用到的元件。