之前公眾號(hào)推文一上手就分享如何測(cè)接口, 其實(shí)忽略了一些概念性的東西, 今天來(lái)給大家拾遺補(bǔ)缺, 做個(gè)回顧吧.
一. JMeter介紹
jmeter能做什么,來(lái)自官網(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可以模擬大量負(fù)載測(cè)試網(wǎng)絡(luò)或者對(duì)象, JMeter是用java語(yǔ)言開(kāi)發(fā)的application,比較消耗memory和CPU, 當(dāng)模擬大并發(fā)用戶時(shí)候, 單臺(tái)模擬就有些力不從心. 同時(shí)jmeter可以幫助我們進(jìn)行回歸測(cè)試, 通過(guò)測(cè)試腳本和斷言來(lái)驗(yàn)證程序返回的預(yù)期值.
JMeter與 LR 比較:
Jmeter是apache 組織下的開(kāi)源測(cè)試工具(長(zhǎng)得不太英俊),? 與LR比較有很多不足, 但是它具備很多優(yōu)點(diǎn), 讓無(wú)數(shù)測(cè)試工程師對(duì)它欲罷不能, 而放棄了LR的華而不實(shí)(雖然很帥, 但功能太多,上手困難).
開(kāi)源, 就意味著免費(fèi)
小巧, 相比LR的龐大(好幾個(gè)G的安裝包),jmeter非常小巧, 無(wú)需安裝, 僅java環(huán)境
功能強(qiáng)大, 一個(gè)簡(jiǎn)單的web性能測(cè)試工具, 不斷更新擴(kuò)展, 可以完成DB, FTP, LDAP, webservice, TCP 等測(cè)試, 還可以自由擴(kuò)展豐富插件.
跨平臺(tái), 可以在任意系統(tǒng)上運(yùn)行, Linux, Unix, Mac os, Ubuntu, centos, windows等.
LR運(yùn)行環(huán)境無(wú)法脫離windows, 且是商業(yè)收費(fèi)軟件.
缺點(diǎn):
Jmeter不支持IP欺騙, LR支持.
結(jié)果分析能力相對(duì)LR不夠詳細(xì).
二 .Jmeter 下載安裝
1)安裝
官網(wǎng)提供jmeter 版本下載: http://jmeter.apache.org/
jmeter 3.2以后版本都需要jdk1.8 環(huán)境
2)插件安裝
下載插件后到%jmeter_home%/lib/ext目錄下, 重啟jmeter即可生效
3)運(yùn)行jmeter
1. 進(jìn)入bin目錄運(yùn)行jmeter
windows環(huán)境, 進(jìn)入jmeter/bin 目錄, jmeter.bat即可運(yùn)行jmeter
Mac os, Ubuntu等環(huán)境, 進(jìn)入jmeter/bin 目錄, 點(diǎn)擊jmeter 即可運(yùn)行jmeter
2.語(yǔ)言選擇
菜單: 選項(xiàng)->選擇語(yǔ)言->選擇個(gè)人喜好的語(yǔ)言
3. classPath
如果是自己開(kāi)發(fā)的jar包在jmeter中使用, 那方法和插件是一樣的, 放在lib/ext目錄下
三.Jmeter測(cè)試計(jì)劃
1)test plan
打開(kāi)jmeter默認(rèn)已經(jīng)創(chuàng)建了測(cè)試計(jì)劃
來(lái)自官網(wǎng)的說(shuō)明, 可以創(chuàng)建多種test plan
2) Threads
setup Thread Group
是所有真正開(kāi)始線程并發(fā)之前的準(zhǔn)備工作,必須是在線程組開(kāi)始之前完成并且擁有自己獨(dú)立的線程設(shè)置;setUp Thread Group類似于lr的init.可用于執(zhí)行預(yù)測(cè)試操作。
teardown?thread?group
是所有線程執(zhí)行測(cè)試結(jié)束后執(zhí)行定期的線程組. 擁有自己獨(dú)立的線程設(shè)置;
tearDown Thread Group類似于lr的end.可用于執(zhí)行測(cè)試后動(dòng)作。
thread?group
我們通常添加運(yùn)行的線程。可以看做是一個(gè)虛擬用戶組,線程組中的每個(gè)線程都可以理解為一個(gè)虛擬用戶。線程組中包含的線程數(shù)量在測(cè)試執(zhí)行過(guò)程中是不會(huì)發(fā)生變化的.
Ramp-Up Period(in seconds)表示在這個(gè)時(shí)間內(nèi)創(chuàng)建完所有的線程。如有3個(gè)線程,Ramp-Up=10秒,那么線程的啟動(dòng)時(shí)間間隔為10/3=3.33秒. 這樣的好處是:一開(kāi)始不會(huì)對(duì)服務(wù)器有太大的負(fù)載,線程組是為模擬并發(fā)負(fù)載而設(shè)計(jì)。
循環(huán)次數(shù):表示每個(gè)線程執(zhí)行多少次請(qǐng)求
3)模板
模板是一個(gè)非常好用功能
點(diǎn)擊模板, jmeter GUI已經(jīng)為你預(yù)定好了各種test plan,選擇一個(gè)自己需要的類型, 所見(jiàn)即所得的創(chuàng)建線程組里的內(nèi)容, 你只要做的就是修修改改
這種方式為我們節(jié)省了很多時(shí)間
4)Sampler
這個(gè)我們非常熟悉了, HTTP?Request?Sampler?、?FTP??Request?Sampler 、TCP??Request?Sampler 、 JDBC?Request?Sampler?等,每一種不同類型的?sampler?可以根據(jù)設(shè)置的參數(shù)向服務(wù)器發(fā)出不同類型的請(qǐng)求,其中還有兩種比較特殊的sampler, java sampler和Beanshell sampler
5)Timer
定時(shí)器用于設(shè)置等待時(shí)間. 等待時(shí)間是性能測(cè)試中常用的控制客戶端QPS/TPS的手段。類似于LoadRunner里面的“thinktime”。 JMeter?定義了Bean?Shell?Timer、Constant?Throughput?Timer、固定定時(shí)器等不同類型的Timer。
6) Pre-Processor Elements
意為前置處理器,用于對(duì)于取樣器進(jìn)行處理,且是在sampler啟動(dòng)之前執(zhí)行,此處和后置處理器是有所區(qū)別的, 如用戶參數(shù) beanshell PreProcess 等
7) Post-Processor Elements
在測(cè)試過(guò)程中,經(jīng)常需要從響應(yīng)數(shù)據(jù)中找到某些參數(shù),作為下一個(gè)請(qǐng)求的參數(shù),這時(shí)候需要用到后置處理器 如正則表達(dá)式, json取樣器, beanshell PostProcess,就屬于這一類
8) ?Assertions
斷言就不用多介紹了, 我們經(jīng)常在使用, 同時(shí)jmeter提供豐富的斷言, 還可以組合著一起用.
9) Listeners
監(jiān)聽(tīng)器提供了很多豐富的結(jié)果信息, 包含圖形的和數(shù)字的, 是用來(lái)對(duì)測(cè)試結(jié)果數(shù)據(jù)進(jìn)行處理和可視化展示的一系列元件, 圖形結(jié)果、查看結(jié)果樹(shù)、聚合報(bào)告、用表格察看結(jié)果都是我們經(jīng)常用到的元件
10) Configuration Elements
配置元件, 類似的有csv?數(shù)據(jù)元件, http信息管理頭, http cookie管理器, 用戶定義變量, 計(jì)數(shù)器, 隨機(jī)變量等 都屬于配置元件.
配置元件在我們的線程組里經(jīng)常出現(xiàn), 比如接收到的cookie可以存儲(chǔ)為JMeter線程變量。要將cookie保存為變量,需定義屬性“cookiemanager .save.cookie =true”
11) Execution order
執(zhí)行順序, 來(lái)自官網(wǎng)的解釋
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,這個(gè)屬性作用域是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接口測(cè)試-if控制器
JMeter數(shù)據(jù)庫(kù)操作
Jmeter接口測(cè)試-正則表達(dá)式
JMeter中文返回亂碼
Jmeter接口測(cè)試-參數(shù)化
JMeter接口測(cè)試-基礎(chǔ)
測(cè)試-感想
咨詢工作加微信
掃描二維碼
歡迎自薦和推薦, 需要的微信推送簡(jiǎn)歷!
請(qǐng)猛戳下面二維碼了解更多
新聞名稱:JMeter簡(jiǎn)單回顧-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://www.rwnh.cn/article16/pdsdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)、云服務(wù)器、App開(kāi)發(fā)、營(yíng)銷型網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容