一.?性能測(cè)試工具選擇
*考慮以下幾點(diǎn)
成本(Loadrunner license成本高)
a.?工具成本b.?學(xué)習(xí)成本
通信協(xié)議(往往通過協(xié)議來模擬壓力)
a.?標(biāo)準(zhǔn)協(xié)議(HTTP,FTP,...)b.?自有協(xié)議(公司開發(fā)的對(duì)內(nèi)協(xié)議)
生命力
Jmeter版本更新快,生命力強(qiáng)
跨平臺(tái)
Loadrunner不跨平臺(tái),Jmeter跨平臺(tái)
二. Jmeter語言更改
*bin目錄下的jmeter.properties存儲(chǔ)所有配置將文件內(nèi)language改為en英文涮较,然后重啟
三. Jmeter工具目錄
Bin:其中放置了各項(xiàng)配置文件(比如日志設(shè)置碌嘀、JVM設(shè)置等)酒繁、啟動(dòng)文件(JMeter啟動(dòng)快捷方式劝堪,報(bào)告生成快捷方式纱兑,Heap Dump快捷方式等),jmeter.sh的linux的啟動(dòng)文件拇惋,啟動(dòng)jar包周偎,示例腳本等
Dos:放置了JMeter API離線幫助文檔,WEB方式撑帖。
Extras:JMeter 輔助功能蓉坎,提供與Ant Jenkins集成的可能性,我們可以利用Ant 與Jenkins來構(gòu)建性能測(cè)試自動(dòng)化構(gòu)架胡嘿。Ant可以利用xsl腳本把XML格式的測(cè)試結(jié)果以HTML方式展示蛉艾。
Lib:JMeter組件以jar包的形式放置在lib/ext目錄下,如果我們要擴(kuò)展JMeter組件衷敌,擴(kuò)展后的jar包即放在此目錄勿侯,Jmeter啟動(dòng)時(shí)會(huì)加載此目錄下的jar包。
printable_docs:JMeter的離線幫助文件放置目錄缴罗。
licenses:相關(guān)聲明信息都放在此文件夾中助琐,全部是文本文件。對(duì)測(cè)試沒有實(shí)際作用瞒爬,可以忽略弓柱。
LICENSE:LIcense說明文件。
NOTICE:License說明文件侧但。
Readme:JMeter簡(jiǎn)明介紹矢空。
四.?八大可執(zhí)行元件
1.Threads線程
1.1Setup thread group
一種特殊類型的ThreadGroup的,用于執(zhí)行預(yù)測(cè)試操作禀横。這下線程的行為完全像一個(gè)正常的線程組元件屁药。不同的是,這些類型的線程執(zhí)行測(cè)試前進(jìn)行?????定期線程組的執(zhí)行柏锄。類似LR的init().
1.2Teardown thread group
一種特殊類型的ThreadGroup的酿箭,用于執(zhí)行預(yù)測(cè)試操作。這下線程的行為完全像一個(gè)正常的線程組元件趾娃。不同的是缭嫡,這些類型的線程執(zhí)行測(cè)試結(jié)束后執(zhí)行定期的線程組。類似LR的end().
1.3Thread group(線程組)?
這個(gè)是我們通常添加的線程抬闷「局可以看作是一個(gè)虛擬用戶組,線程組里的每一個(gè)線程都可以理解為一個(gè)虛擬用戶笤成。線程組的線程數(shù)量在測(cè)試執(zhí)行過程中不會(huì)改變评架,類似LR的action().主要為設(shè)置場(chǎng)景的起始點(diǎn)和用戶并發(fā)數(shù),代碼的開始運(yùn)行時(shí)間和要運(yùn)行的時(shí)間炕泳。
1.4Stepping Thread Group(需要下載jar包)
主要用于性能測(cè)試纵诞。
2.?測(cè)試片段(Test? Fragment)?
測(cè)試片段是控制器上的一種特殊的線程組,它在測(cè)試樹上與線程組處于一個(gè)層級(jí)。但它不能被執(zhí)行培遵,必須通過邏輯控制器中的Include_Controller 或者模塊控制器來調(diào)用浙芙。
3.配置元件(config Element)?
對(duì)sample進(jìn)行配置登刺,避免重復(fù)內(nèi)容。用來初始化默認(rèn)值和變量茁裙,以便后續(xù)采樣器使用塘砸,將其在作用域的初始化階段使用,如:csv data set config可以將本機(jī)靜態(tài)數(shù)據(jù)形成數(shù)據(jù)池晤锥。
4.定時(shí)器(Timer)?
用于操作之間設(shè)置等待時(shí)間
4.1 定時(shí)器是在每個(gè)sampler(采樣器)之前執(zhí)行的掉蔬,而不是之后。
4.2 定時(shí)器是有作用域的矾瘾;當(dāng)執(zhí)行一個(gè)sampler之前時(shí)女轿,所有當(dāng)前作用域內(nèi)的定時(shí)器都會(huì)被執(zhí)行;
4.3 如果希望定時(shí)器僅應(yīng)用于其中一個(gè)sampler壕翩,則把該定時(shí)器作為子節(jié)點(diǎn)加入
4.4 如果希望在sampler執(zhí)行完之后再等待蛉迹,則可使用Test Action;
5.前置處理器(per processors)?
實(shí)際的請(qǐng)求發(fā)送之前對(duì)即將發(fā)出的請(qǐng)求進(jìn)行特殊的處理放妈,以及更新從上一個(gè)響應(yīng)獲得的變量值北救。eg:http url 重寫修飾符可以實(shí)現(xiàn)url重寫,當(dāng)url有session id一類的session信息時(shí)芜抒,可通過該處理器填充實(shí)際發(fā)送的session id珍策。
6.后置處理器(post processors)?
對(duì)于sampler發(fā)出請(qǐng)求后得到的服務(wù)器響應(yīng)進(jìn)行處理,一般用于提取響應(yīng)中的特定數(shù)據(jù)
7.斷言?
用于檢查測(cè)試中得到的數(shù)據(jù)與預(yù)期是否相等宅倒,斷言用來設(shè)置檢查點(diǎn)攘宙,用于保證性能測(cè)試過程中數(shù)據(jù)交互與預(yù)期一致。
8.監(jiān)聽器?
是用來對(duì)測(cè)試結(jié)果數(shù)據(jù)進(jìn)行處理和可視化展示的一系列元件拐迁,一般常用圖形結(jié)果蹭劈,查看結(jié)果樹,聚合報(bào)告线召,收集運(yùn)行信息铺韧,如:響應(yīng)時(shí)間,請(qǐng)求和響應(yīng)的詳細(xì)信息等缓淹。