国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

JMeter常用測試元件

2019-11-09 17:37:03
字體:
供稿:網(wǎng)友
線程組

程組是任何測試計劃的起點,所有的邏輯控制器和采樣器都必須放在線程組之下。其他的測試元件(如監(jiān)聽器)可以被直接放在測試計劃之下,這些測試元件 對所有線程組都生效。線程組就像它的名字所描述的那樣,被用來管理執(zhí)行性能測試所需的JMeter線程。用戶通過線程組的控制面板可以:

設(shè)置線程數(shù)量。

設(shè)置線程啟動周期。

設(shè)置執(zhí)行測試腳本的循環(huán)次數(shù)。

每一個JMeter線程都會完整地執(zhí)行測試計劃,而且它們之間是完全獨立運行的。這種多線程機制被用來模擬服務(wù)器應(yīng)用的并發(fā)連接。參數(shù)Ramp- Up Period告訴JMeter達(dá)到最大線程數(shù)需要多長時間。假定共有10個線程,Ramp-Up Period為100秒,那么JMeter就會在100秒內(nèi)啟動所有10個線程,并讓它們運轉(zhuǎn)起來。每一個測試線程都會在上一個線程啟動10秒之后才開始 運行。假定共有30個線程,Ramp-Up Period為120秒,那么線程啟動的間隔就為4秒。

Ramp-Up參數(shù)不能設(shè)定得太短,否則在測試的初始階段會給予服務(wù)器過大的壓力。Ramp-Up參數(shù)也不能設(shè)定得太長,否則就會發(fā)生第一個線程已經(jīng)執(zhí)行完畢,而最后一個線程還沒有啟動的情況(除非測試人員期望這種特殊情況發(fā)生)。

如何找到一個合適的Ramp-Up參數(shù)值?作者建議初始值可以設(shè)定為Ramp-Up=總線程數(shù),后續(xù)再根據(jù)實際情況適當(dāng)增減。

調(diào)度器

在調(diào)度器控制面板中,可以設(shè)定測試運行的"啟動時間"和"結(jié)束時間"。測試啟動后會一直等待,直到用戶設(shè)定的啟動時間。測試運行期間,JMeter 會在每一次循環(huán)結(jié)束后,檢查是否已經(jīng)達(dá)到結(jié)束時間。如果已經(jīng)達(dá)到了結(jié)束時間,JMeter就會終止測試運行,否則JMeter會繼續(xù)下一個測試循環(huán)。

另外,用戶還可以設(shè)定"持續(xù)時間"和"啟動延遲"兩項參數(shù)。需要注意的是,"啟動延遲"會使"啟動時間"無效,而"持續(xù)時間"會使"結(jié)束時間"無效。

控制器

JMeter有兩種類型的控制器:采樣器和邏輯控制器,二者結(jié)合起來驅(qū)動了測試進(jìn)程。采樣器被JMeter用來向服務(wù)器發(fā)送請求。例如,當(dāng)測試人員想往服務(wù)器發(fā)送一個HTTP請求時,就加入一個HTTP請求采樣器。測試人員還可以通過為采樣器添加配置元件來定制化請求。

用戶可以使用邏輯控制器來控制JMeter的測試邏輯,比如何時發(fā)送請求。舉一個例子:測試人員可以插入交替控制器來輪流發(fā)送多個請求。

1)采樣器

采樣器告訴JMeter發(fā)送一個請求到指定服務(wù)器,并等待服務(wù)器的請求。采樣器會按照其在測試樹中的順序去執(zhí)行,還可以用邏輯控制器來改變采樣器運行的重復(fù)次數(shù)。

每一種采樣器都有多種參數(shù)可供設(shè)置。測試人員還可以通過在測試計劃中加入一個或者多個配置元件,來進(jìn)一步定制化采樣器。

如果測試人員打算向同一個服務(wù)器發(fā)送同一類請求,可以考慮使用默認(rèn)配置元件。每一類采樣器都有一個或多個對應(yīng)的默認(rèn)配置元件。一定記住應(yīng)為測試計劃添加一個監(jiān)聽器,以便查看和存儲(存儲到磁盤)請求的結(jié)果。

如果測試人員想檢查服務(wù)器響應(yīng)的內(nèi)容,可以為對應(yīng)采樣器添加斷言。例如,當(dāng)對Web應(yīng)用做壓力測試時,服務(wù)器雖然成功返回了"HTTP Response"代碼,但是頁面上可能會有錯誤,或者丟失了部分頁面片段。針對這種情況,測試人員可以添加斷言來檢查特定的HTML標(biāo)簽,或者常見的錯 誤信息等。JMeter允許在斷言中使用正則表達(dá)式。

2)邏輯控制器

邏輯控制器可以幫助用戶控制JMeter的測試邏輯,特別是何時發(fā)送請求。邏輯控制器可以改變其子測試元件的請求執(zhí)行順序。

3.監(jiān)聽器

監(jiān)聽器提供了對JMeter在測試期間收集到的信息的訪問方法。"圖形結(jié)果"監(jiān)聽器會將系統(tǒng)響應(yīng)時長繪制在一張圖片之中。"查看結(jié)果樹"監(jiān)聽器會展示采樣器請求和響應(yīng)的細(xì)節(jié),還能以HTML和xml格式展示系統(tǒng)響應(yīng)的基礎(chǔ)部分。其他監(jiān)聽器通過總結(jié)或者聚合方式展示信息。

另外,監(jiān)聽器可以將測試數(shù)據(jù)導(dǎo)入到文件之中,以供后續(xù)分析。所有監(jiān)聽器都會提供一個輸入域,以便于用戶指定存儲測試數(shù)據(jù)的文件。監(jiān)聽器還會提供一個 配置按鈕,用來配置存儲測試數(shù)據(jù)的哪些字段,以及選用的存儲格式(CSV或者XML)。讀者朋友需要注意的是,所有監(jiān)聽器都保存同樣的數(shù)據(jù),唯一的區(qū)別是 它們?nèi)绾握故緮?shù)據(jù)。

監(jiān)聽器可以在測試的任何地方添加,包括直接放在測試計劃之下。它們僅收集測試樹中相同或者更低級別測試元件的數(shù)據(jù)。

4.定時器

默認(rèn)情況下,JMeter線程在發(fā)送請求之間沒有間歇。建議為線程組添加某種定時器,以便設(shè)定請求之間應(yīng)該間隔多長時間。如果測試人員不設(shè)定這種延遲,JMeter可能會在短時間內(nèi)產(chǎn)生大量訪問請求,導(dǎo)致服務(wù)器被大量請求所淹沒。

定時器會讓作用域內(nèi)的每一個采樣器都在執(zhí)行前等待一個固定時長。如果測試人員為線程組添加了多個定時器,那么JMeter會將這些定時器的時長疊加起來,共同影響作用域范圍內(nèi)的采樣器。定時器可以作為采樣器或者邏輯控制器的子項,目的是只影響作用域內(nèi)的采樣器。

要在測試計劃中的某個位置添加暫停,測試人員可以使用"Test Action"采樣器。

5.?dāng)嘌?/strong>

用戶可以使用斷言來檢查從服務(wù)器獲得的響應(yīng)內(nèi)容。通過斷言可以測試服務(wù)器返回的響應(yīng)與測試人員的期望是否相符。

例如,測試人員可以斷言某個查詢的響應(yīng)中包含特定的文字信息。測試人員可以使用Perl格式的正則表達(dá)式來描述響應(yīng)中應(yīng)該包含的文字,或者它應(yīng)該與整個響應(yīng)相符。

測試人員可以為任何采樣器添加斷言。例如,測試人員可以為HTTP請求添加斷言,用于檢查文本""。接下來JMeter就會檢查該文本是否出現(xiàn)在HTTP響應(yīng)中。如果JMeter不能找到該文本,那么它就會將請求標(biāo)記為失敗。

需要注意的是,斷言會影響作用域內(nèi)的所有采樣器。如果要讓斷言只影響某個采樣器,需要將斷言作為該采樣器的子項。

如果要查看斷言結(jié)果,可以為線程組添加"斷言結(jié)果"監(jiān)聽器。失敗的斷言,也會在"查看結(jié)果樹"和"用表格查看結(jié)果"兩種監(jiān)聽器中顯示。另外,在"Summary Report"和"聚合報告"中還會以錯誤百分率的形式統(tǒng)計。

6.配置元件

配置元件與采樣器緊密關(guān)聯(lián)。雖然配置元件并不發(fā)送請求(除了HTTP代理服務(wù)器例外),但它可以添加或者修改請求。

配置元件僅對其所在的測試樹分支有效。例如,假設(shè)測試人員在一個簡單邏輯控制器中放置了一個HTTP Cookie管理器,那么該HTTP Cookie管理器只對放置在簡單邏輯控制器內(nèi)的其他邏輯控制器生效

另外,相比父分支的配置元件,子分支內(nèi)部的配置元件優(yōu)先級更高。配置元件 "用戶定義的參數(shù)"會在測試的初始階段執(zhí)行(無論它處于測試樹的哪個位置)。

7.前置處理器

前置處理器會在采樣器發(fā)出請求之前做一些特殊操作。如果前置處理器附著在某個采樣器之下,那么它只會在該采樣器運行之前執(zhí)行。前置處理器通常用于在采樣器發(fā)出請求前修改采樣器的某些設(shè)置,或者更新某些變量的值(這些變量不在服務(wù)器響應(yīng)中獲取值)。

8.后置處理器

后置處理器會在采樣器發(fā)出請求之后做一些特殊操作。如果后置處理器附著在某個采樣器之下,那么它只會在該采樣器運行之后執(zhí)行。后置處理器通常被用來處理服務(wù)器的響應(yīng)數(shù)據(jù),特別是服務(wù)器響應(yīng)中提取數(shù)據(jù)。

最后,對于這么多的部件,JMeter執(zhí)行順序規(guī)則如下:

配置元件

前置處理器

定時器

采樣器

后置處理器(除非服務(wù)器響應(yīng)為空)

斷言(除非服務(wù)器響應(yīng)為空)

監(jiān)聽器(除非服務(wù)器響應(yīng)為空)

只有當(dāng)作用域內(nèi)存在采樣器時,定時器、斷言、前置/后置處理器才會被執(zhí)行。邏輯控制器和采樣器按照在測試樹中出現(xiàn)的順序執(zhí)行。其他測試元件會依據(jù)自 身的作用域范圍來執(zhí)行,另外還與測試元件所屬的類型有關(guān)(歸屬于同一類型的測試元件,會按照它們在測試樹中出現(xiàn)的順序來執(zhí)行)。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 张掖市| 青阳县| 克拉玛依市| 洪湖市| 襄城县| 江北区| 饶河县| 新巴尔虎左旗| 普陀区| 万源市| 分宜县| 西贡区| 胶州市| 定襄县| 大埔县| 青田县| 开平市| 西盟| 罗江县| 汪清县| 靖宇县| 东安县| 祁连县| 井陉县| 芜湖县| 凤凰县| 温泉县| 和田市| 安阳市| 南平市| 桦南县| 民和| 资源县| 东城区| 桃江县| 玉屏| 兴隆县| 汾阳市| 科技| 龙江县| 涿鹿县|