Jmeter

一. 性能測(cè)試

1.0 為什么要進(jìn)行性能測(cè)試?

評(píng)估當(dāng)前系統(tǒng)的能力

尋找性能瓶頸,優(yōu)化系統(tǒng)性能

評(píng)估軟件是否滿(mǎn)足未來(lái)的需要

招聘需要

1.1 什么是性能

時(shí)間:系統(tǒng)處理用戶(hù)請(qǐng)求的響應(yīng)時(shí)間資源:系統(tǒng)運(yùn)行過(guò)程中,系統(tǒng)資源的消耗情況

1.2. 性能測(cè)試是什么

1.2.1 廣義定義

基于協(xié)議模擬用戶(hù)發(fā)出請(qǐng)求蝗罗,對(duì)服務(wù)器形成一定負(fù)載,來(lái)測(cè)試服務(wù)器的性能指標(biāo)是否滿(mǎn)足要求性能指標(biāo)關(guān)注點(diǎn):時(shí)間性能、空間性能性能測(cè)試與頁(yè)面無(wú)關(guān)

1.2.1 狹義定義

指通過(guò)自動(dòng)化的測(cè)試工具模擬多種正常裁蚁、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。

1.3 功能和性能測(cè)試

不同功能測(cè)試驗(yàn)證系統(tǒng)的功能需求規(guī)格继准,聚焦功能枉证。性能測(cè)試驗(yàn)證系統(tǒng)的業(yè)務(wù)性需求場(chǎng)景,聚焦時(shí)間和資源移必。

關(guān)系一般項(xiàng)目中室谚,先功能測(cè)試通過(guò)后,后進(jìn)行性能測(cè)試避凝。

1.4 性能測(cè)試的分類(lèi)

1.4.1 基準(zhǔn)測(cè)試

狹義:?jiǎn)斡脩?hù)測(cè)試廣義:建立基準(zhǔn)線(xiàn)舞萄,當(dāng)系統(tǒng)軟硬件環(huán)境發(fā)生變化之后再進(jìn)行一次基準(zhǔn)測(cè)試以確定變化對(duì)性能的影響。

1.4.2 負(fù)載測(cè)試

概念通過(guò)逐步增加系統(tǒng)負(fù)載管削,確定在滿(mǎn)足性能指標(biāo)的情況下倒脓,找出系統(tǒng)所能承受最大負(fù)載量的測(cè)試。

作用系統(tǒng)最大負(fù)載量達(dá)到用戶(hù)要求時(shí)含思,系統(tǒng)才能正式上線(xiàn)使用崎弃。

案例

電梯行業(yè)規(guī)范:電梯從1樓到5樓的運(yùn)行時(shí)間不超過(guò)24s

1人 ?? 20s

7人 ?? 20s

13人 ? 20s ?? 達(dá)到最大負(fù)載

16人 ? 25s

19人 ? 28s

21人 ? 斷繩子

注意通過(guò)負(fù)載測(cè)試,可以確定系統(tǒng)的最大負(fù)載量和極限負(fù)載量系統(tǒng)對(duì)外宣稱(chēng)的最大負(fù)載量負(fù)載測(cè)試的時(shí)間一般為1-2小時(shí)

1.4.3 穩(wěn)定性測(cè)試

概念:在服務(wù)器穩(wěn)定運(yùn)行(用戶(hù)正常業(yè)務(wù)負(fù)載下)的情況進(jìn)行長(zhǎng)時(shí)間測(cè)試(1天-一周等)含潘,并最終保證服務(wù)器能滿(mǎn)足線(xiàn)上業(yè)務(wù)需求饲做。

系統(tǒng)在用戶(hù)需求的業(yè)務(wù)負(fù)載下運(yùn)行達(dá)到規(guī)定的時(shí)間時(shí),系統(tǒng)才能正式上線(xiàn)使用遏弱。

1.4.4 壓力測(cè)試

概念:在強(qiáng)負(fù)載下的測(cè)試盆均,查看系統(tǒng)在峰值下是否功能隱患、系統(tǒng)是否具有良好的容錯(cuò)能力和可恢復(fù)的能力漱逸。

測(cè)試場(chǎng)景高負(fù)載下的長(zhǎng)時(shí)間穩(wěn)定性壓力測(cè)試 (如:B-C區(qū)間內(nèi)進(jìn)行24/3*24小時(shí)長(zhǎng)時(shí)間測(cè)試)極限負(fù)載下的破壞性壓力測(cè)試(如:C-D區(qū)間內(nèi)進(jìn)行測(cè)試)

1.4.5 并發(fā)測(cè)試

概念:在極短時(shí)間內(nèi)泪姨,發(fā)送多個(gè)請(qǐng)求游沿,來(lái)驗(yàn)證服務(wù)器對(duì)并發(fā)的處理能力。

應(yīng)用場(chǎng)景特定的活動(dòng)場(chǎng)景:搶紅包肮砾、秒殺诀黍、搶購(gòu)等。

與負(fù)載測(cè)試對(duì)比:負(fù)載測(cè)試:主要目的是測(cè)試高負(fù)載情況下仗处,對(duì)系統(tǒng)資源的消耗眯勾,是否會(huì)耗盡的問(wèn)題(雙11活動(dòng))并發(fā)測(cè)試:主要目的是測(cè)試極短時(shí)間內(nèi),并發(fā)請(qǐng)求時(shí),系統(tǒng)資源爭(zhēng)搶的問(wèn)題(搶紅包、秒殺)

1.5 性能測(cè)試的指標(biāo)

1.5.1 響應(yīng)時(shí)間

指從客戶(hù)端發(fā)起請(qǐng)求開(kāi)始抢腐,到客戶(hù)端接收到結(jié)果的總時(shí)間

包括:服務(wù)器處理時(shí)間 + 網(wǎng)絡(luò)傳輸時(shí)間

1.5.2 并發(fā)用戶(hù)數(shù)

某一時(shí)刻同時(shí)向服務(wù)器發(fā)送請(qǐng)求的用戶(hù)數(shù)

1.5.3 吞吐量(Throughout)

1.概念:?jiǎn)挝粫r(shí)間內(nèi)處理客戶(hù)端的請(qǐng)求數(shù)量,直接體現(xiàn)軟件系統(tǒng)能能承載能力模叙。

吞吐量單位分類(lèi)

1.5.4 QPS

QPS(Query Per Second)每秒查詢(xún)數(shù),即控制服務(wù)器每秒處理的指定請(qǐng)求的數(shù)量鞋屈。

1.5.5 TPS

TPS(Transaction Per Second)每秒事務(wù)數(shù)范咨,即控制服務(wù)器每秒處理事務(wù)請(qǐng)求的數(shù)量。如:支付請(qǐng)求事務(wù)=查詢(xún)用戶(hù)余額請(qǐng)求+校驗(yàn)支付安全請(qǐng)求+發(fā)送支付請(qǐng)求每秒處理查詢(xún)用戶(hù)余額15請(qǐng)求厂庇,每秒處理校驗(yàn)支付安全15個(gè)請(qǐng)求渠啊,每秒處理發(fā)送支付15個(gè)請(qǐng)求支付tsp為15

1.5.6 點(diǎn)擊數(shù)

所有的頁(yè)面元素(如:圖片、鏈接权旷、框架等)的請(qǐng)求總數(shù)

注意:

點(diǎn)擊數(shù)是請(qǐng)求數(shù)替蛉,不是頁(yè)面上的一次點(diǎn)擊

1.5.7 錯(cuò)誤率

指系統(tǒng)在負(fù)載情況下,失敗業(yè)務(wù)的概率

注意:

錯(cuò)誤率是性能指標(biāo)拄氯,是高負(fù)載下的失敗業(yè)務(wù)的概率-隨機(jī)bug是功能bug躲查,先解決隨機(jī)bug才能進(jìn)行性能測(cè)試

1.5.8 資源利用率

概念:系統(tǒng)各種資源的使用情況,率=資源使用量/總資源可用量x100%

常見(jiàn)資源指標(biāo)CPU使用率:不高于75%-85%內(nèi)存大小使用率:不高于80%磁盤(pán)IO(速率):不高于90%網(wǎng)路(速率):不高于80%

1.6 性能測(cè)試工具

二. Jmeter簡(jiǎn)介

2.1. 我們?yōu)槭裁词褂肑meter

開(kāi)源译柏,免費(fèi)镣煮,基于Java編寫(xiě),可集成到其他系統(tǒng)可拓展各個(gè)功能插件支持接口測(cè)試鄙麦,壓力(負(fù)載和壓力)測(cè)試等多種功能典唇,支持錄制回放,入門(mén)簡(jiǎn)單相較于自己編寫(xiě)框架活其他開(kāi)源工具胯府,有較為完善的UI界面介衔,便于接口調(diào)試多平臺(tái)支持,可在Linux骂因,Windows炎咖,Mac上運(yùn)行,支持多協(xié)議

2.2. Jmeter的作用

接口測(cè)試 面試說(shuō)postman,因?yàn)榉奖愫糜谩?/p>

性能測(cè)試 jmeter塘装,也可以用postman(runner)急迂,但是沒(méi)有性能指標(biāo)

數(shù)據(jù)庫(kù)測(cè)試

2.3. Jmeter怎么用

Windows下Jmeter下載安裝,登錄 http://jmeter.apache.org/download_jmeter.cgi 蹦肴,根據(jù)自己平臺(tái),下載對(duì)應(yīng)文件

2.4. 安裝JAVA環(huán)境

安裝JDK猴娩,配置環(huán)境變量(具體步驟不做介紹)

將下載Jmeter文件解壓阴幌,打開(kāi)/bin/jmeter.bat

2.5. Jmeter的目錄結(jié)構(gòu)

/bin 目錄常用文件介紹:

examples:目錄下包含Jmeter使用實(shí)例

ApacheJMeter.jar:JMeter源碼包

jmeter.bat:windows下啟動(dòng)文件

jmeter.sh:Linux下啟動(dòng)文件

jmeter.log:Jmeter運(yùn)行日志文件

jmeter.properties:Jmeter配置文件

jmeter-server.bat:windows下啟動(dòng)負(fù)載生成器服務(wù)文件

jmeter-server:Linux下啟動(dòng)負(fù)載生成器文件

/docs目錄——Jmeter幫助文檔

/extras目錄——提供了對(duì)Ant的支持文件,可也用于持續(xù)集成

/lib目錄——存放Jmeter依賴(lài)的jar包卷中,同時(shí)安裝插件也放于此目錄

/licenses目錄——軟件許可文件矛双,不用管

/printable_docs目錄——Jmeter用戶(hù)手冊(cè)

三. 使用Jmeter測(cè)試快速入門(mén)

3.1. 線(xiàn)程組是什么

進(jìn)程: 一個(gè)正在執(zhí)行的程序?qū)?yīng)一個(gè)進(jìn)程

線(xiàn)程: 一個(gè)進(jìn)程有多個(gè)執(zhí)行線(xiàn)程

線(xiàn)程組: ? 按照線(xiàn)程性質(zhì)對(duì)線(xiàn)程分組。查看任務(wù)管理器(愛(ài)奇藝有多個(gè))

三者關(guān)系: 一個(gè)進(jìn)程有多個(gè)線(xiàn)程組蟆豫,一個(gè)線(xiàn)程組有多個(gè)線(xiàn)程

測(cè)試計(jì)劃—線(xiàn)程組—線(xiàn)程組屬性中的線(xiàn)程數(shù)并發(fā)執(zhí)行:多個(gè)線(xiàn)程同時(shí)執(zhí)行议忽,特點(diǎn):執(zhí)行結(jié)束的順序與開(kāi)始的順序不一致順序執(zhí)行:按照線(xiàn)程的啟動(dòng)順序挨個(gè)執(zhí)行默認(rèn)情況下,線(xiàn)程組中的線(xiàn)程是并發(fā)執(zhí)行每一個(gè)線(xiàn)程都要執(zhí)行組內(nèi)的http請(qǐng)求設(shè)置線(xiàn)程組順序執(zhí)行:勾選測(cè)試計(jì)劃中的(獨(dú)立運(yùn)行每個(gè)線(xiàn)程組)線(xiàn)程組用來(lái)模擬用戶(hù)的并發(fā)訪(fǎng)問(wèn)

3.1.1. 創(chuàng)建線(xiàn)程組

3.1.2. 線(xiàn)程組主要包含三個(gè)參數(shù):

線(xiàn)程數(shù)十减、準(zhǔn)備時(shí)長(zhǎng)(Ramp-Up Period(in seconds))栈幸、循環(huán)次數(shù)。

3.1.3. 線(xiàn)程數(shù):

虛擬用戶(hù)數(shù)帮辟。一個(gè)虛擬用戶(hù)占用一個(gè)線(xiàn)程速址。設(shè)置多少虛擬用戶(hù)數(shù)在這里也就是設(shè)置多少個(gè)線(xiàn)程數(shù)。

3.1.4. 準(zhǔn)備時(shí)長(zhǎng)(秒):

設(shè)置的虛擬用戶(hù)數(shù)需要多長(zhǎng)時(shí)間全部啟動(dòng)由驹。如果線(xiàn)程數(shù)為20 芍锚,準(zhǔn)備時(shí)長(zhǎng)為10 ,那么需要10秒鐘啟動(dòng)20個(gè)線(xiàn)程蔓榄。也就是每秒鐘啟動(dòng)2個(gè)線(xiàn)程并炮。

3.1.5. 循環(huán)次數(shù):

每個(gè)線(xiàn)程發(fā)送請(qǐng)求的次數(shù)。如果線(xiàn)程數(shù)為20 甥郑,循環(huán)次數(shù)為100 逃魄,那么每個(gè)線(xiàn)程發(fā)送100次請(qǐng)求∫既簦總請(qǐng)求數(shù)為20*100=2000 嗅钻。如果勾選了“永遠(yuǎn)”,那么所有線(xiàn)程會(huì)一直發(fā)送請(qǐng)求店展,一直到選擇停止運(yùn)行腳本养篓。

3.1.6. 調(diào)度器

設(shè)置線(xiàn)程組啟動(dòng)的開(kāi)始時(shí)間和結(jié)束時(shí)間(配置調(diào)度器時(shí),需要勾選循環(huán)次數(shù)為永遠(yuǎn))

3.1.7. 持續(xù)時(shí)間(秒)

測(cè)試持續(xù)時(shí)間赂蕴,會(huì)覆蓋結(jié)束時(shí)間

3.1.8. 啟動(dòng)延遲(秒)

測(cè)試延遲啟動(dòng)時(shí)間柳弄,會(huì)覆蓋啟動(dòng)時(shí)間

3.1.9. 啟動(dòng)時(shí)間

測(cè)試啟動(dòng)時(shí)間,啟動(dòng)延遲會(huì)覆蓋它。當(dāng)啟動(dòng)時(shí)間已過(guò)碧注,手動(dòng)只需測(cè)試時(shí)當(dāng)前時(shí)間也會(huì)覆蓋它嚣伐。

3.1.10. 結(jié)束時(shí)間

測(cè)試結(jié)束時(shí)間,持續(xù)時(shí)間會(huì)覆蓋它萍丐。

3.2. 創(chuàng)建http請(qǐng)求

見(jiàn)得最多轩端,所以我們著重講解:

3.3. 指定請(qǐng)求域名,請(qǐng)求路徑

接口文檔講解

一個(gè)HTTP請(qǐng)求有著許多的配置參數(shù)逝变,下面將詳細(xì)介紹:

名稱(chēng):本屬性用于標(biāo)識(shí)一個(gè)取樣器基茵,建議使用一個(gè)有意義的名稱(chēng)。

注釋?zhuān)簩?duì)于測(cè)試沒(méi)有任何作用壳影,僅用戶(hù)記錄用戶(hù)可讀的注釋信息拱层。

服務(wù)器名稱(chēng)或IP :HTTP請(qǐng)求發(fā)送的目標(biāo)服務(wù)器名稱(chēng)或IP地址。

端口號(hào):目標(biāo)服務(wù)器的端口號(hào)宴咧。

方法:發(fā)送HTTP請(qǐng)求的方法根灯,可用方法包括GET、POST掺栅、HEAD烙肺、PUT、OPTIONS柿冲、TRACE茬高、DELETE等。

Content encoding :內(nèi)容的編碼方式假抄,默認(rèn)值為iso8859

路徑:目標(biāo)URL路徑(不包括服務(wù)器地址和端口)

點(diǎn)擊run測(cè)試怎栽,很麻煩,我們使用postman測(cè)試更簡(jiǎn)單宿饱,使用postman操作熏瞄。可以使用剛才的接口文檔中的谬以,聚合接口中演示一個(gè)强饮。

3.4. 設(shè)置對(duì)應(yīng)的查看內(nèi)容

注意:如果監(jiān)聽(tīng)器中有jp@gc開(kāi)頭的,都是第三方插件

3.5. 查看表格信息

Sample:每個(gè)請(qǐng)求的序號(hào)

Start Time:每個(gè)請(qǐng)求開(kāi)始時(shí)間

Thread Name:每個(gè)線(xiàn)程的名稱(chēng)

Label:Http請(qǐng)求名稱(chēng)

Sample Time:每個(gè)請(qǐng)求所花時(shí)間为黎,單位毫秒

Status:請(qǐng)求狀態(tài)邮丰,如果為勾則表示成功,如果為叉表示失敗铭乾。

Bytes:請(qǐng)求的字節(jié)數(shù)

樣本數(shù)目:也就是上面所說(shuō)的請(qǐng)求個(gè)數(shù)剪廉,成功的情況下等于你設(shè)定的并發(fā)數(shù)目乘以循環(huán)次數(shù)

平均:每個(gè)線(xiàn)程請(qǐng)求的平均時(shí)間

最新樣本:表示服務(wù)器響應(yīng)最后一個(gè)請(qǐng)求的時(shí)間

偏離:服務(wù)器響應(yīng)時(shí)間變化、離散程度測(cè)量值的大小炕檩,或者斗蒋,換句話(huà)說(shuō),就是數(shù)據(jù)的分布。

3.6. 查看結(jié)果樹(shù)

請(qǐng)求的數(shù)據(jù)展示(請(qǐng)求頭信息泉沾,請(qǐng)求參數(shù),,)

響應(yīng)的數(shù)據(jù)展示(響應(yīng)碼捞蚂,響應(yīng)頭,,)

通過(guò)察看結(jié)果樹(shù),我們可以看到每個(gè)請(qǐng)求的結(jié)果跷究,其中紅色的是出錯(cuò)的請(qǐng)求姓迅,綠色的為通過(guò)。

ThreadName:線(xiàn)程組名稱(chēng)

SampleStart:啟動(dòng)開(kāi)始時(shí)間

Loadtime:加載時(shí)長(zhǎng)

Latency:等待時(shí)長(zhǎng)

Sizeinbytes:發(fā)送的數(shù)據(jù)總大小

Headerssizeinbytes:發(fā)送數(shù)據(jù)的其余部分大小

SampleCount:發(fā)送統(tǒng)計(jì)

ErrorCount:交互錯(cuò)誤統(tǒng)計(jì)

Responsecode:返回碼

Responsemessage:返回信息

Responseheaders:返回的頭部信息

3.7. 聚合報(bào)告參數(shù)說(shuō)明

lable:對(duì)應(yīng)每一個(gè)http請(qǐng)求揭朝,顯示的是http請(qǐng)求的Name队贱,如百度http請(qǐng)求name為baidu

#Samples:表示這一次的測(cè)試中一共發(fā)出了多少請(qǐng)求,如上圖所示潭袱,sougou和baidu的http請(qǐng)求每個(gè)都發(fā)出30個(gè)請(qǐng)求

Average:平均響應(yīng)時(shí)間,指的是所有的請(qǐng)求的平均響應(yīng)時(shí)間锋恬,如上圖的30個(gè)請(qǐng)求的總的響應(yīng)時(shí)間除以30得出的平均響應(yīng)時(shí)間屯换,默認(rèn)的情況下是單個(gè)請(qǐng)求的平均響應(yīng)時(shí)間,但當(dāng)使用了“事務(wù)控制器”時(shí)与学,則以事物為單位顯示平均響應(yīng)時(shí)間

Median:中位數(shù)彤悔,也就是50%用戶(hù)的響應(yīng)時(shí)間

90%Line:90%用戶(hù)的響應(yīng)時(shí)間

Min:最小響應(yīng)時(shí)間

Max:最大的響應(yīng)時(shí)間

Error%:本次測(cè)試中出現(xiàn)錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù),如上圖所示索守,本次的測(cè)試中晕窑,sougou的http請(qǐng)求66.6%的請(qǐng)求出錯(cuò),而baidu的請(qǐng)求則沒(méi)有出錯(cuò)的請(qǐng)求

Throughput:吞吐量卵佛,默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù)杨赤,如上圖所示,每秒完成的請(qǐng)求數(shù)分別為6.6個(gè)每秒截汪,6.2個(gè)每秒

Recived KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量疾牲,以kb為計(jì)算的單位

掌握:平均時(shí)間、錯(cuò)誤率衙解、吞吐量阳柔。

3.8. 圖形結(jié)果

作用:通過(guò)圖形展示出本次性能測(cè)試數(shù)據(jù)的分布。 圖形結(jié)果一般作為聚合報(bào)告的分析輔佐

樣本數(shù)目:總共發(fā)送到服務(wù)器的請(qǐng)求數(shù)蚓峦。

最新樣本:代表時(shí)間的數(shù)字舌剂,是服務(wù)器響應(yīng)最后一個(gè)請(qǐng)求的時(shí)間。

吞吐量:服務(wù)器每分鐘處理的請(qǐng)求數(shù)暑椰。

平均值:總運(yùn)行時(shí)間除以發(fā)送到服務(wù)器的請(qǐng)求數(shù)霍转。

中間值:有一半的服務(wù)器響應(yīng)時(shí)間低于該值而另一半高于該值。

偏離:表示服務(wù)器響應(yīng)時(shí)間變化干茉、離散程度測(cè)量值的大小谴忧。

四. Jmeter主要組件介紹

測(cè)試計(jì)劃:使用 JMeter 進(jìn)行測(cè)試的起點(diǎn),它是其它 JMeter 測(cè)試元件的容器。

線(xiàn)程組:代表一定數(shù)量的并發(fā)用戶(hù)沾谓,它可以用來(lái)模擬并發(fā)用戶(hù)發(fā)送請(qǐng)求委造。實(shí)際的請(qǐng)求內(nèi)容在Sampler中定義,它被線(xiàn)程組包含均驶』枵祝可以在“測(cè)試計(jì)劃->添加->線(xiàn)程組”來(lái)建立它,然后在線(xiàn)程組面板里有幾個(gè)輸入欄:線(xiàn)程數(shù)妇穴、Ramp-Up Period(in seconds)爬虱、循環(huán)次數(shù),其中Ramp-Up Period(in seconds)表示在這時(shí)間內(nèi)創(chuàng)建完所有的線(xiàn)程腾它。如有8個(gè)線(xiàn)程跑筝,Ramp-Up = 200秒,那么線(xiàn)程的啟動(dòng)時(shí)間間隔為200/8=25秒瞒滴,這樣的好處是:一開(kāi)始不會(huì)對(duì)服務(wù)器有太大的負(fù)載曲梗。線(xiàn)程組是為模擬并發(fā)負(fù)載而設(shè)計(jì)。

取樣器(Sampler):模擬各種請(qǐng)求妓忍。所有實(shí)際的測(cè)試任務(wù)都由取樣器承擔(dān)虏两,存在很多種請(qǐng)求。如:HTTP 世剖、ftp請(qǐng)求等等定罢。

監(jiān)聽(tīng)器:負(fù)責(zé)收集測(cè)試結(jié)果,同時(shí)也被告知了結(jié)果顯示的方式旁瘫。功能是對(duì)取樣器的請(qǐng)求結(jié)果顯示祖凫、統(tǒng)計(jì)一些數(shù)據(jù)(吞吐量、KB/S……)等境蜕。

斷言:用于來(lái)判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶(hù)所期望蝙场,是否正確。它可以用來(lái)隔離問(wèn)題域粱年,即在確保功能正確的前提下執(zhí)行壓力測(cè)試售滤。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的。

邏輯控制器:允許自定義JMeter發(fā)送請(qǐng)求的行為邏輯台诗,它與Sampler結(jié)合使用可以模擬復(fù)雜的請(qǐng)求序列完箩。

定時(shí)器:負(fù)責(zé)定義請(qǐng)求(線(xiàn)程)之間的延遲間隔,模擬對(duì)服務(wù)器的連續(xù)請(qǐng)求拉队。

配置元件維護(hù)Sampler需要的配置信息弊知,并根據(jù)實(shí)際的需要會(huì)修改請(qǐng)求的內(nèi)容。

前置處理器和后置處理器負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作粱快。前置處理器常常用來(lái)修改請(qǐng)求的設(shè)置秩彤,后置處理器則常常用來(lái)處理響應(yīng)的數(shù)據(jù)叔扼。

4.1. 測(cè)試計(jì)劃

1.測(cè)試計(jì)劃就是一個(gè)完整的場(chǎng)景

2.“獨(dú)立運(yùn)行每個(gè)線(xiàn)程組” :勾選以后所有的線(xiàn)程組都是順序執(zhí)行的了。一般不勾選漫雷,讓所有 的線(xiàn)程組并發(fā)啟動(dòng)瓜富。

3.“函數(shù)測(cè)試模式” :勾選后會(huì)有詳細(xì)的請(qǐng)求記錄,消耗資源降盹,影響客戶(hù)端性能与柑。一般不勾選。

4.用戶(hù)定義的變量:全局變量蓄坏,測(cè)試計(jì)劃上可以添加用戶(hù)定義的變量价捧。一般添加一些系統(tǒng)常用的配置。如果測(cè)試過(guò)程中想切換環(huán)境涡戳,切換配置结蟋,一般不建議在測(cè)試計(jì)劃上添加變量

4.2. 線(xiàn)程組

(1)thread group(線(xiàn)程組)

這個(gè)就是我們通常添加運(yùn)行的線(xiàn)程。通俗的講一個(gè)線(xiàn)程組渔彰,可以看做一個(gè)虛擬用戶(hù)組椎眯,線(xiàn)程組中的每個(gè)線(xiàn)程都可以理解為一個(gè)虛擬用戶(hù)。

(2)setup thread group

一種特殊類(lèi)型的ThreadGroup的胳岂,可用于執(zhí)行預(yù)測(cè)試操作。這些線(xiàn)程的行為完全像一個(gè)正常的線(xiàn)程組元件舔稀。不同的是乳丰,這些類(lèi)型的線(xiàn)程執(zhí)行測(cè)試前進(jìn)行定期線(xiàn)程組的執(zhí)行;類(lèi)似LoadRunner的init内贮,測(cè)試開(kāi)始時(shí)進(jìn)行初始化的工作产园。

(3)teardown thread group

一種特殊類(lèi)型的ThreadGroup的,可用于執(zhí)行測(cè)試后動(dòng)作夜郁。這些線(xiàn)程的行為完全像一個(gè)正常的線(xiàn)程組元件什燕。不同的是,這些類(lèi)型的線(xiàn)程執(zhí)行測(cè)試結(jié)束后執(zhí)行定期的線(xiàn)程組竞端;類(lèi)似LoadRunnner的end屎即,測(cè)試結(jié)束時(shí)進(jìn)行回收工作。

4.3. 取樣器(Http請(qǐng)求)

關(guān)于http請(qǐng)求的的屬性參數(shù)說(shuō)明:

1)名稱(chēng):用于標(biāo)識(shí)一個(gè)sample事富。建議使用一個(gè)有意義的名稱(chēng)

2)注釋?zhuān)簩?duì)于測(cè)試沒(méi)任何影響技俐,僅用來(lái)記錄用戶(hù)可讀的注釋信息

3)服務(wù)器名稱(chēng)或IP:http請(qǐng)求發(fā)送的目標(biāo)服務(wù)器名稱(chēng)或者IP地址,比如http://www.baidu.com

4)端口號(hào):目標(biāo)服務(wù)器的端口號(hào)统台,默認(rèn)值為80雕擂,可不填

5)協(xié)議:向目標(biāo)服務(wù)器發(fā)送http請(qǐng)求時(shí)的協(xié)議,http/https贱勃,大小寫(xiě)不敏感井赌,默認(rèn)http

6)方法:發(fā)送http請(qǐng)求的方法(鏈接:http://www.cnblogs.com/imyalost/p/5630940.html)

7)Contentencoding:內(nèi)容的編碼方式(Content-Type=application/json;charset=utf-8)

8)路徑:目標(biāo)的URL路徑(不包括服務(wù)器地址和端口)

9)自動(dòng)重定向:如果選中該項(xiàng)谤逼,發(fā)出的http請(qǐng)求得到響應(yīng)是301/302,jmeter會(huì)重定向到新的界面

10)UsekeepAlive:jmeter和目標(biāo)服務(wù)器之間使用Keep-Alive方式進(jìn)行HTTP通信(默認(rèn)選中)

11)Usemultipart/from-dataforHTTPPOST:當(dāng)發(fā)送HTTPPOST請(qǐng)求時(shí)仇穗,使用

12)Parameters流部、BodyData以及FilesUpload的區(qū)別:

1.parameter是指函數(shù)定義中參數(shù),而argument指的是函數(shù)調(diào)用時(shí)的實(shí)際參數(shù)

2.簡(jiǎn)略描述為:parameter=形參(formalparameter)仪缸,argument=實(shí)參(actualparameter)

3.在不很?chē)?yán)格的情況下贵涵,現(xiàn)在二者可以混用,一般用argument恰画,而parameter則比較少用

Whiledefiningmethod,variablespassedinthemethodarecalledparameters.

當(dāng)定義方法時(shí)宾茂,傳遞到方法中的變量稱(chēng)為參數(shù).

Whileusingthosemethods,valuespassedtothosevariablesarecalledarguments.

當(dāng)調(diào)用方法時(shí),傳給變量的值稱(chēng)為引數(shù).(有時(shí)argument被翻譯為“引數(shù)“)

4拴还、BodyData指的是實(shí)體數(shù)據(jù)跨晴,就是請(qǐng)求報(bào)文里面主體實(shí)體的內(nèi)容,一般我們向服務(wù)器發(fā)送請(qǐng)求片林,攜帶的實(shí)體主體參數(shù)端盆,可以寫(xiě)入這里

5、FilesUpload指的是:從HTML文件獲取所有有內(nèi)含的資源:被選中時(shí)费封,發(fā)出HTTP請(qǐng)求并獲得響應(yīng)的HTML文件內(nèi)容后還對(duì)該HTML

進(jìn)行Parse并獲取HTML中包含的所有資源(圖片焕妙、flash等):(默認(rèn)不選中)

如果用戶(hù)只希望獲取特定資源,可以在下方的EmbeddedURLsmustmatch文本框中填入需要下載的特定資源表達(dá)式弓摘,只有能匹配指定正則表達(dá)式的URL指向資源會(huì)被下載

4.4. 監(jiān)聽(tīng)器

監(jiān)聽(tīng)器(Listener)負(fù)責(zé)收集測(cè)試結(jié)果焚鹊,同時(shí)也被告知了結(jié)果顯示的方式。我們常用的包括:聚合報(bào)告韧献、查看結(jié)果樹(shù)末患、用表格查看結(jié)果,都支持將結(jié)果數(shù)據(jù)寫(xiě)入文件锤窑。其他的添加上去看看就行璧针。聚合報(bào)告前面我們介紹過(guò),后面是查看結(jié)果樹(shù)和用表格查看結(jié)果的截圖渊啰。

4.5. 循環(huán)控制器

4.6. 事務(wù)控制器

作用: 事務(wù)控制器會(huì)生產(chǎn)一個(gè)額外的采樣器探橱,用來(lái)統(tǒng)計(jì)該控制器子結(jié)點(diǎn)的所有時(shí)間。在線(xiàn)程組下創(chuàng)建事務(wù)控制器參數(shù):· Generate parent sample:(選中這個(gè)參數(shù)結(jié)果展示如下圖紅框虽抄,否則顯示為下圖藍(lán)框)· Include duration of timer and pre-post processors in generated sample:選中這一項(xiàng)會(huì)統(tǒng)計(jì)定時(shí)器(timer)的時(shí)間走搁,否則只統(tǒng)計(jì)采樣器(sample)的時(shí)間

創(chuàng)建sample 訪(fǎng)問(wèn)首頁(yè)和注冊(cè)頁(yè)面

生成聚合報(bào)告

勾選

聚合報(bào)告中只有一項(xiàng)事務(wù)報(bào)告

4.7. 斷言---檢查點(diǎn)

斷言(Assertions)可以用來(lái)判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶(hù)所期望的。它可以用來(lái)隔離問(wèn)題域迈窟,即在確保功能正確的前提下執(zhí)行壓力測(cè)試私植。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的。兩個(gè)重要斷言:響應(yīng)斷言和JSONAssertion響應(yīng)斷言:

JSON斷言:

4.8. 前置處理器和后置處理器

前置處理器(Pre Processors)和后置處理器(Post Processors)負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作车酣。前置處理器常常用來(lái)修改請(qǐng)求的設(shè)置曲稼,后置處理器則常常用來(lái)處理響應(yīng)的數(shù)據(jù)索绪。我們主要在動(dòng)態(tài)關(guān)聯(lián)中用到后置處理器的正則表達(dá)式提取器。https://www.cnblogs.com/fengpingfan/p/4755411.html

4.9. 定時(shí)器

定時(shí)器(Timer)負(fù)責(zé)定義請(qǐng)求之間的延遲間隔

五. Jmeter組件參數(shù)化

5.1. 參數(shù)化是什么

動(dòng)態(tài)的獲取并設(shè)置數(shù)據(jù)

5.2. 為什么使用參數(shù)化

執(zhí)行批量操作贫悄,批量添加批量刪除瑞驱,人工效率太低

運(yùn)用程序代替人工獲取并設(shè)置數(shù)據(jù),安全高效

比如:對(duì)被測(cè)系統(tǒng)的用戶(hù)名和密碼進(jìn)行參數(shù)化窄坦,來(lái)模擬多個(gè)用戶(hù)同時(shí)登錄系統(tǒng)

5.3. 參數(shù)化實(shí)現(xiàn)之用戶(hù)自定義變量

通過(guò)這個(gè)功能唤反,能實(shí)現(xiàn)多接口共享數(shù)據(jù),修改一條即可修改全部

Filename:所需數(shù)據(jù)文件的路徑鸭津。如和腳本同一路徑彤侍,可直接填寫(xiě)文件名File encoding:編碼和文件保持一致即可,默認(rèn)為ANSI逆趋。如有中文盏阶,建議為UTF-8Variable Names:引用變量時(shí)的變量名,對(duì)應(yīng)數(shù)據(jù)文件中的每一列闻书,以逗號(hào)分隔名斟。如不填寫(xiě),文件的第一行數(shù)據(jù)將被讀取為變量名Delimiter:在.txt魄眉、.dat文件中砰盐,可以用逗號(hào)(,)或者Tab鍵(\t)來(lái)區(qū)分列與列Allow quote data:選項(xiàng)選為“true”的時(shí)候?qū)θ亲址奶幚沓霈F(xiàn)亂碼Recycle on EOF:到數(shù)據(jù)文件結(jié)尾時(shí)是否循環(huán)讀取。設(shè)置為T(mén)rue時(shí)坑律,線(xiàn)程數(shù)過(guò)多楞卡,數(shù)據(jù)文件讀取到最后一行時(shí),會(huì)再次從第一行開(kāi)始讀取脾歇。設(shè)置為False,到達(dá)文件結(jié)尾時(shí)如繼續(xù)讀取淘捡,則值會(huì)默認(rèn)為<EOF>藕各,可通過(guò)設(shè)置jmeter屬性csvdataset.eofstring來(lái)改變?cè)撝怠top thread on EOF:Recycle on EOF設(shè)置為False焦除,Stop thread on EOF設(shè)置為T(mén)rue激况,則讀取數(shù)據(jù)文件最后一行后,停止測(cè)試膘魄,不管還有多少線(xiàn)程組未執(zhí)行乌逐。Sharing mode:共享模式。默認(rèn)在所有線(xiàn)程組中使用创葡,可選擇每個(gè)線(xiàn)程組單獨(dú)打開(kāi)相同的部分使用用戶(hù)自定義變量只需要修改一次接口效果展示

5.4. 參數(shù)化實(shí)現(xiàn)之CSV Data Set Config

添加CSV Data Set Config:

添加界面:

通過(guò)這個(gè)組件可以動(dòng)態(tài)獲取并設(shè)置數(shù)據(jù)浙踢,實(shí)現(xiàn)批量添加操作名詞解釋?zhuān)?/b>

Filename:所需數(shù)據(jù)文件的路徑。如和腳本同一路徑灿渴,可直接填寫(xiě)文件名

File encoding:編碼和文件保持一致即可洛波,默認(rèn)為ANSI胰舆。如有中文,建議為UTF-8

Variable Names:引用變量時(shí)的變量名蹬挤,對(duì)應(yīng)數(shù)據(jù)文件中的每一列缚窿,以逗號(hào)分隔。Delimiter:在.txt焰扳、.dat文件中倦零,可以用逗號(hào)(,)或者Tab鍵(\t)來(lái)區(qū)分列與列

Allow quote data:選項(xiàng)選為“true”的時(shí)候?qū)θ亲址奶幚沓霈F(xiàn)亂碼

Recycle on EOF:到數(shù)據(jù)文件結(jié)尾時(shí)是否循環(huán)讀取。設(shè)置為T(mén)rue時(shí)吨悍,線(xiàn)程數(shù)過(guò)多扫茅,數(shù)據(jù)文件讀取到最后一行時(shí),會(huì)再次從第一行開(kāi)始讀取畜份。設(shè)置為False诞帐,到達(dá)文件結(jié)尾時(shí)如繼續(xù)讀取,則值會(huì)默認(rèn)為<EOF>爆雹,可通過(guò)設(shè)置jmeter屬性csvdataset.eofstring來(lái)改變?cè)撝怠?/p>

Stop thread on EOF:Recycle on EOF設(shè)置為False停蕉,Stop thread on EOF設(shè)置為T(mén)rue,則讀取數(shù)據(jù)文件最后一行后钙态,停止測(cè)試慧起,不管還有多少線(xiàn)程組未執(zhí)行。

Sharing mode:共享模式册倒。默認(rèn)在所有線(xiàn)程組中使用蚓挤,可選擇每個(gè)線(xiàn)程組單獨(dú)打開(kāi)

添加引用文件:

引用:在jmeter中添加

線(xiàn)程數(shù)改為某個(gè)值查看結(jié)果樹(shù):

其他:

線(xiàn)程組線(xiàn)程數(shù)改為大于文件中數(shù)據(jù)的處理:遇到結(jié)束符在循環(huán)遇到結(jié)束符停止線(xiàn)程

如果數(shù)據(jù)來(lái)自數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)導(dǎo)出txt文件

5.5. 使用Jmeter函數(shù)助手(文件中不要出現(xiàn)中文):

1、點(diǎn)擊 選項(xiàng)-->函數(shù)助手 調(diào)出函數(shù)助手對(duì)話(huà)框

2驻子、選擇 _CSVRead 函數(shù)(下圖第一個(gè)框)

3灿意、函數(shù)參數(shù):

 1)第一個(gè)參數(shù):填寫(xiě)文件路徑。

 2)第二個(gè)參數(shù):文件列號(hào)是從0開(kāi)始的崇呵,第一列0缤剧、第二列1、第三列2域慷、依次類(lèi)推,然后點(diǎn)擊【生成】按鈕荒辕,則會(huì)自動(dòng)生成我們需要的參數(shù)化函數(shù)。

? 3) 復(fù)制生成的參數(shù)化函數(shù)犹褒, copy過(guò)程需要使用的地方即可抵窒。

? 4) _Random函數(shù)是從某數(shù)據(jù)段隨機(jī)讀取數(shù)據(jù)替換參數(shù),當(dāng)需要添加多條數(shù)據(jù)記錄且某些字段需要唯一性時(shí)使用叠骑。

六. Jmeter正則表達(dá)式提取

6.1. 使用正則提取

運(yùn)用Jmeter正則提取器李皇,可以從請(qǐng)求的響應(yīng)結(jié)果中取到需要的內(nèi)容,從而實(shí)現(xiàn)關(guān)聯(lián)宙枷。關(guān)聯(lián)是請(qǐng)求與請(qǐng)求之間存在數(shù)據(jù)依賴(lài)關(guān)系疙赠,需要從上一個(gè)請(qǐng)求獲取下一個(gè)請(qǐng)求需要回傳回去的數(shù)據(jù)正則表達(dá)式(regular expression)描述了一種字符串匹配的模式(pattern)付材,可以用來(lái)檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等圃阳。

字符描述

*匹配前面的子表達(dá)式零次或多次厌衔。例如,zo* 能匹配 "z" 以及 "zoo"捍岳。* 等價(jià)于{0,}富寿。

+匹配前面的子表達(dá)式一次或多次。例如锣夹,'zo+' 能匹配 "zo" 以及 "zoo"页徐,但不能匹配 "z"。+ 等價(jià)于 {1,}银萍。

?匹配前面的子表達(dá)式零次或一次变勇。例如,"do(es)?" 可以匹配 "do" 贴唇、 "does" 中的 "does" 搀绣、 "doxy" 中的 "do" 。? 等價(jià)于 {0,1}戳气。

( )標(biāo)記一個(gè)子表達(dá)式的開(kāi)始和結(jié)束位置链患。子表達(dá)式可以獲取供以后使用。

.匹配除換行符 \n 之外的任何單字符瓶您。要匹配 . 麻捻,請(qǐng)使用 . 。

構(gòu)造正則表達(dá)式的方法和創(chuàng)建數(shù)學(xué)表達(dá)式的方法一樣呀袱。也就是用多種元字符與運(yùn)算符可以將小的表達(dá)式結(jié)合在一起來(lái)創(chuàng)建更大的表達(dá)式贸毕。正則表達(dá)式的組件可以是單個(gè)的字符、字符集合夜赵、字符范圍崖咨、字符間的選擇或者所有這些組件的任意組合。正則表達(dá)式提取的相關(guān)設(shè)置

說(shuō)明:

(1)引用名稱(chēng):下一個(gè)請(qǐng)求要引用的參數(shù)名稱(chēng)油吭,如填寫(xiě)title,則可用${title}引用它署拟。

(2)正則表達(dá)式:

? ? ():括起來(lái)的部分就是要提取的婉宰。

? ? .:匹配任何字符串。

? ? +:一次或多次推穷。

? ? ?:不要太貪婪心包,在找到第一個(gè)匹配項(xiàng)后停止。

(3)模板:用$$引用起來(lái)馒铃,如果在正則表達(dá)式中有多個(gè)正則表達(dá)式蟹腾,則可以是$2$$3$等等痕惋,表示解析到的第幾個(gè)值給title。如:$1$表示解析到的第1個(gè)值

(4)匹配數(shù)字:0代表隨機(jī)取值娃殖,1代表全部取值值戳,通常情況下填0

(5)缺省值:如果參數(shù)沒(méi)有取得到值,那默認(rèn)給一個(gè)值讓它取炉爆。

案例:api接口

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末堕虹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子芬首,更是在濱河造成了極大的恐慌赴捞,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件郁稍,死亡現(xiàn)場(chǎng)離奇詭異赦政,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)耀怜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)恢着,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人封寞,你說(shuō)我怎么就攤上這事然评。” “怎么了狈究?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵碗淌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我抖锥,道長(zhǎng)亿眠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任磅废,我火速辦了婚禮纳像,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拯勉。我一直安慰自己竟趾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布宫峦。 她就那樣靜靜地躺著岔帽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天副女,我揣著相機(jī)與錄音个粱,去河邊找鬼贾费。 笑死钦购,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的褂萧。 我是一名探鬼主播押桃,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼箱玷!你這毒婦竟也來(lái)了怨规?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锡足,失蹤者是張志新(化名)和其女友劉穎波丰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體舶得,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掰烟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沐批。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纫骑。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖九孩,靈堂內(nèi)的尸體忽然破棺而出先馆,到底是詐尸還是另有隱情,我是刑警寧澤躺彬,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布煤墙,位于F島的核電站,受9級(jí)特大地震影響宪拥,放射性物質(zhì)發(fā)生泄漏仿野。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一她君、第九天 我趴在偏房一處隱蔽的房頂上張望脚作。 院中可真熱鬧,春花似錦缔刹、人聲如沸球涛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)亿扁。三九已至,卻和暖如春灭翔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工肝箱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哄褒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓煌张,卻偏偏與公主長(zhǎng)得像呐赡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子骏融,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 上一篇文章链嘀,我們介紹了JMeter的安裝。 在使用JMeter這款工具之前档玻,首先要了解JMeter是如何工作的怀泊,也...
    _stefan__閱讀 6,919評(píng)論 0 19
  • 一. 性能測(cè)試 1.0 為什么要進(jìn)行性能測(cè)試? 評(píng)估當(dāng)前系統(tǒng)的能力 尋找性能瓶頸误趴,優(yōu)化系統(tǒng)性能 評(píng)估軟件是否滿(mǎn)足...
    745aacb67869閱讀 228評(píng)論 0 0
  • 一. 性能測(cè)試 1.0 為什么要進(jìn)行性能測(cè)試霹琼? 評(píng)估當(dāng)前系統(tǒng)的能力 尋找性能瓶頸,優(yōu)化系統(tǒng)性能 評(píng)估軟件是否滿(mǎn)足...
    5888eb1818d9閱讀 221評(píng)論 0 0
  • 一. 性能測(cè)試 1.0 為什么要進(jìn)行性能測(cè)試凉当? 評(píng)估當(dāng)前系統(tǒng)的能力 尋找性能瓶頸枣申,優(yōu)化系統(tǒng)性能 評(píng)估軟件是否滿(mǎn)足...
    boke閱讀 192評(píng)論 0 0
  • 一. 性能測(cè)試 1.0 為什么要進(jìn)行性能測(cè)試? 評(píng)估當(dāng)前系統(tǒng)的能力 尋找性能瓶頸看杭,優(yōu)化系統(tǒng)性能 評(píng)估軟件是否滿(mǎn)足...
    zflain閱讀 193評(píng)論 0 0