溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JMeter 簡單回顧

發(fā)布時間:2020-07-31 17:38:44 來源:網(wǎng)絡 閱讀:247 作者:louiezhou001 欄目:軟件技術

之前公眾號推文一上手就分享如何測接口, 其實忽略了一些概念性的東西, 今天來給大家拾遺補缺, 做個回顧吧.


一. JMeter介紹

jmeter能做什么,來自官網(wǎng)的解釋:

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可以模擬大量負載測試網(wǎng)絡或者對象, JMeter是用java語言開發(fā)的application,比較消耗memory和CPU, 當模擬大并發(fā)用戶時候, 單臺模擬就有些力不從心. 同時jmeter可以幫助我們進行回歸測試, 通過測試腳本和斷言來驗證程序返回的預期值.


JMeter與 LR 比較:

Jmeter是apache 組織下的開源測試工具(長得不太英俊),? 與LR比較有很多不足, 但是它具備很多優(yōu)點, 讓無數(shù)測試工程師對它欲罷不能, 而放棄了LR的華而不實(雖然很帥, 但功能太多,上手困難).

  1. 開源, 就意味著免費

  2. 小巧, 相比LR的龐大(好幾個G的安裝包),jmeter非常小巧, 無需安裝, 僅java環(huán)境

  3. 功能強大, 一個簡單的web性能測試工具, 不斷更新擴展, 可以完成DB, FTP, LDAP, webservice, TCP 等測試, 還可以自由擴展豐富插件.

  4. 跨平臺, 可以在任意系統(tǒng)上運行, Linux, Unix, Mac os, Ubuntu, centos, windows等.

LR運行環(huán)境無法脫離windows, 且是商業(yè)收費軟件.

缺點:

Jmeter不支持IP欺騙, LR支持.

結果分析能力相對LR不夠詳細.


二 .Jmeter 下載安裝

1)安裝

官網(wǎng)提供jmeter 版本下載: http://jmeter.apache.org/

jmeter 3.2以后版本都需要jdk1.8 環(huán)境

2)插件安裝

下載插件后到%jmeter_home%/lib/ext目錄下, 重啟jmeter即可生效

3)運行jmeter

1. 進入bin目錄運行jmeter

windows環(huán)境, 進入jmeter/bin 目錄, jmeter.bat即可運行jmeter

Mac os, Ubuntu等環(huán)境, 進入jmeter/bin 目錄, 點擊jmeter 即可運行jmeter

2.語言選擇

菜單: 選項->選擇語言->選擇個人喜好的語言

3. classPath

如果是自己開發(fā)的jar包在jmeter中使用, 那方法和插件是一樣的, 放在lib/ext目錄下

三.Jmeter測試計劃

1)test plan

打開jmeter默認已經(jīng)創(chuàng)建了測試計劃

來自官網(wǎng)的說明, 可以創(chuàng)建多種test plan

JMeter 簡單回顧

2) Threads

JMeter 簡單回顧

  • setup Thread Group

是所有真正開始線程并發(fā)之前的準備工作,必須是在線程組開始之前完成并且擁有自己獨立的線程設置;setUp Thread Group類似于lr的init.可用于執(zhí)行預測試操作。

  • teardown?thread?group

是所有線程執(zhí)行測試結束后執(zhí)行定期的線程組. 擁有自己獨立的線程設置;

tearDown Thread Group類似于lr的end.可用于執(zhí)行測試后動作。

  • thread?group

我們通常添加運行的線程??梢钥醋鍪且粋€虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。線程組中包含的線程數(shù)量在測試執(zhí)行過程中是不會發(fā)生變化的.

JMeter 簡單回顧

Ramp-Up Period(in seconds)表示在這個時間內(nèi)創(chuàng)建完所有的線程。如有3個線程,Ramp-Up=10秒,那么線程的啟動時間間隔為10/3=3.33秒. 這樣的好處是:一開始不會對服務器有太大的負載,線程組是為模擬并發(fā)負載而設計。

循環(huán)次數(shù):表示每個線程執(zhí)行多少次請求

3)模板

模板是一個非常好用功能

JMeter 簡單回顧

點擊模板, jmeter GUI已經(jīng)為你預定好了各種test plan,選擇一個自己需要的類型, 所見即所得的創(chuàng)建線程組里的內(nèi)容, 你只要做的就是修修改改

JMeter 簡單回顧

JMeter 簡單回顧

這種方式為我們節(jié)省了很多時間


4)Sampler

這個我們非常熟悉了, HTTP?Request?Sampler?、?FTP??Request?Sampler 、TCP??Request?Sampler 、 JDBC?Request?Sampler?等,每一種不同類型的?sampler?可以根據(jù)設置的參數(shù)向服務器發(fā)出不同類型的請求,其中還有兩種比較特殊的sampler, java sampler和Beanshell sampler

JMeter 簡單回顧

5)Timer

定時器用于設置等待時間. 等待時間是性能測試中常用的控制客戶端QPS/TPS的手段。類似于LoadRunner里面的“thinktime”。 JMeter?定義了Bean?Shell?Timer、Constant?Throughput?Timer、固定定時器等不同類型的Timer。

6) Pre-Processor Elements

意為前置處理器,用于對于取樣器進行處理,且是在sampler啟動之前執(zhí)行,此處和后置處理器是有所區(qū)別的, 如用戶參數(shù) beanshell PreProcess 等

JMeter 簡單回顧

7) Post-Processor Elements

在測試過程中,經(jīng)常需要從響應數(shù)據(jù)中找到某些參數(shù),作為下一個請求的參數(shù),這時候需要用到后置處理器 如正則表達式, json取樣器, beanshell PostProcess,就屬于這一類

JMeter 簡單回顧

8) ?Assertions

斷言就不用多介紹了, 我們經(jīng)常在使用, 同時jmeter提供豐富的斷言, 還可以組合著一起用.

9) Listeners

監(jiān)聽器提供了很多豐富的結果信息, 包含圖形的和數(shù)字的, 是用來對測試結果數(shù)據(jù)進行處理和可視化展示的一系列元件, 圖形結果、查看結果樹、聚合報告、用表格察看結果都是我們經(jīng)常用到的元件

10) Configuration Elements

配置元件, 類似的有csv?數(shù)據(jù)元件, http信息管理頭, http cookie管理器, 用戶定義變量, 計數(shù)器, 隨機變量等 都屬于配置元件.

JMeter 簡單回顧

配置元件在我們的線程組里經(jīng)常出現(xiàn), 比如接收到的cookie可以存儲為JMeter線程變量。要將cookie保存為變量,需定義屬性“cookiemanager .save.cookie =true”


11) Execution order

執(zhí)行順序, 來自官網(wǎng)的解釋

  1. Configuration elements

  2. Pre-Processors

  3. Timers

  4. Sampler

  5. Post-Processors (unless SampleResult is?null)

  6. Assertions (unless SampleResult is?null)

  7. 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 簡單回顧


今日精選推薦

JMeter接口測試-if控制器

JMeter數(shù)據(jù)庫操作

Jmeter接口測試-正則表達式

JMeter中文返回亂碼

Jmeter接口測試-參數(shù)化

JMeter接口測試-基礎

測試-感想



咨詢工作加微信

JMeter 簡單回顧

掃描二維碼


歡迎自薦和推薦, 需要的微信推送簡歷!

請猛戳下面二維碼了解更多

JMeter 簡單回顧


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI