您好,登錄后才能下訂單哦!
之前公眾號推文一上手就分享如何測接口, 其實忽略了一些概念性的東西, 今天來給大家拾遺補缺, 做個回顧吧.
一. JMeter介紹
jmeter能做什么,來自官網的解釋:
Ability to load and performance test many different applications/server/protocol types:
Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET …)
SOAP / REST Webservices
FTP
Database via JDBC
LDAP
Message-oriented middleware (MOM) via JMS
Mail - SMTP(S), POP3(S) and IMAP(S)
Native commands or shell scripts
TCP
Java Objects
Jmeter可以模擬大量負載測試網絡或者對象, JMeter是用java語言開發的application,比較消耗memory和CPU, 當模擬大并發用戶時候, 單臺模擬就有些力不從心. 同時jmeter可以幫助我們進行回歸測試, 通過測試腳本和斷言來驗證程序返回的預期值.
JMeter與 LR 比較:
Jmeter是apache 組織下的開源測試工具(長得不太英俊),? 與LR比較有很多不足, 但是它具備很多優點, 讓無數測試工程師對它欲罷不能, 而放棄了LR的華而不實(雖然很帥, 但功能太多,上手困難).
開源, 就意味著免費
小巧, 相比LR的龐大(好幾個G的安裝包),jmeter非常小巧, 無需安裝, 僅java環境
功能強大, 一個簡單的web性能測試工具, 不斷更新擴展, 可以完成DB, FTP, LDAP, webservice, TCP 等測試, 還可以自由擴展豐富插件.
跨平臺, 可以在任意系統上運行, Linux, Unix, Mac os, Ubuntu, centos, windows等.
LR運行環境無法脫離windows, 且是商業收費軟件.
缺點:
Jmeter不支持IP欺騙, LR支持.
結果分析能力相對LR不夠詳細.
二 .Jmeter 下載安裝
1)安裝
官網提供jmeter 版本下載: http://jmeter.apache.org/
jmeter 3.2以后版本都需要jdk1.8 環境
2)插件安裝
下載插件后到%jmeter_home%/lib/ext目錄下, 重啟jmeter即可生效
3)運行jmeter
1. 進入bin目錄運行jmeter
windows環境, 進入jmeter/bin 目錄, jmeter.bat即可運行jmeter
Mac os, Ubuntu等環境, 進入jmeter/bin 目錄, 點擊jmeter 即可運行jmeter
2.語言選擇
菜單: 選項->選擇語言->選擇個人喜好的語言
3. classPath
如果是自己開發的jar包在jmeter中使用, 那方法和插件是一樣的, 放在lib/ext目錄下
三.Jmeter測試計劃
1)test plan
打開jmeter默認已經創建了測試計劃
來自官網的說明, 可以創建多種test plan
2) Threads
setup Thread Group
是所有真正開始線程并發之前的準備工作,必須是在線程組開始之前完成并且擁有自己獨立的線程設置;setUp Thread Group類似于lr的init.可用于執行預測試操作。
teardown?thread?group
是所有線程執行測試結束后執行定期的線程組. 擁有自己獨立的線程設置;
tearDown Thread Group類似于lr的end.可用于執行測試后動作。
thread?group
我們通常添加運行的線程。可以看做是一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。線程組中包含的線程數量在測試執行過程中是不會發生變化的.
Ramp-Up Period(in seconds)表示在這個時間內創建完所有的線程。如有3個線程,Ramp-Up=10秒,那么線程的啟動時間間隔為10/3=3.33秒. 這樣的好處是:一開始不會對服務器有太大的負載,線程組是為模擬并發負載而設計。
循環次數:表示每個線程執行多少次請求
3)模板
模板是一個非常好用功能
點擊模板, jmeter GUI已經為你預定好了各種test plan,選擇一個自己需要的類型, 所見即所得的創建線程組里的內容, 你只要做的就是修修改改
這種方式為我們節省了很多時間
4)Sampler
這個我們非常熟悉了, HTTP?Request?Sampler?、?FTP??Request?Sampler 、TCP??Request?Sampler 、 JDBC?Request?Sampler?等,每一種不同類型的?sampler?可以根據設置的參數向服務器發出不同類型的請求,其中還有兩種比較特殊的sampler, java sampler和Beanshell sampler
5)Timer
定時器用于設置等待時間. 等待時間是性能測試中常用的控制客戶端QPS/TPS的手段。類似于LoadRunner里面的“thinktime”。 JMeter?定義了Bean?Shell?Timer、Constant?Throughput?Timer、固定定時器等不同類型的Timer。
6) Pre-Processor Elements
意為前置處理器,用于對于取樣器進行處理,且是在sampler啟動之前執行,此處和后置處理器是有所區別的, 如用戶參數 beanshell PreProcess 等
7) Post-Processor Elements
在測試過程中,經常需要從響應數據中找到某些參數,作為下一個請求的參數,這時候需要用到后置處理器 如正則表達式, json取樣器, beanshell PostProcess,就屬于這一類
8) ?Assertions
斷言就不用多介紹了, 我們經常在使用, 同時jmeter提供豐富的斷言, 還可以組合著一起用.
9) Listeners
監聽器提供了很多豐富的結果信息, 包含圖形的和數字的, 是用來對測試結果數據進行處理和可視化展示的一系列元件, 圖形結果、查看結果樹、聚合報告、用表格察看結果都是我們經常用到的元件
10) Configuration Elements
配置元件, 類似的有csv?數據元件, http信息管理頭, http cookie管理器, 用戶定義變量, 計數器, 隨機變量等 都屬于配置元件.
配置元件在我們的線程組里經常出現, 比如接收到的cookie可以存儲為JMeter線程變量。要將cookie保存為變量,需定義屬性“cookiemanager .save.cookie =true”
11) Execution order
執行順序, 來自官網的解釋
Configuration elements
Pre-Processors
Timers
Sampler
Post-Processors (unless SampleResult is?null)
Assertions (unless SampleResult is?null)
Listeners (unless SampleResult is?null)
12) Properties and Variables
屬性和變量, jmeter的屬性都定義在jmeter.properties,這個屬性作用域是global的, 用戶也可以自定義變量
13) jmeter命令行
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
?? Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
今日精選推薦
JMeter接口測試-if控制器
JMeter數據庫操作
Jmeter接口測試-正則表達式
JMeter中文返回亂碼
Jmeter接口測試-參數化
JMeter接口測試-基礎
測試-感想
咨詢工作加微信
掃描二維碼
歡迎自薦和推薦, 需要的微信推送簡歷!
請猛戳下面二維碼了解更多
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。