qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          Jmeter基礎(chǔ)之——jmeter基礎(chǔ)概念

           JMeter 介紹:一個(gè)非常優(yōu)秀的開(kāi)源的性能測(cè)試工具。

            優(yōu)點(diǎn):你用著用著就會(huì)發(fā)現(xiàn)它的重多優(yōu)點(diǎn),當(dāng)然不足點(diǎn)也會(huì)呈現(xiàn)出來(lái)。

            從性能工具的原理劃分:

            Jmeter工具和其他性能工具在原理上完全一致,工具包含4個(gè)部分:

            (1)負(fù)載發(fā)生器:用于產(chǎn)生負(fù)載,通常以多線程或是多進(jìn)程的方式模擬用戶(hù)行為。

            (2)用戶(hù)運(yùn)行器:通常是一個(gè)腳本運(yùn)行引擎,用戶(hù)運(yùn)行器附加在線程或進(jìn)程上,根據(jù)腳本要求模擬指定的用戶(hù)行為。

            (3)資源生成器:用于生成測(cè)試過(guò)程中服務(wù)器、負(fù)載機(jī)的資源數(shù)據(jù)。

            (4)報(bào)表生成器:根據(jù)測(cè)試中霍地的數(shù)據(jù)生成報(bào)表,提供可視化的數(shù)據(jù)顯示方式。

            測(cè)試計(jì)劃元件

            --------------------------------------------------------------------------------

            Test Plan (測(cè)試計(jì)劃):用來(lái)描述一個(gè)性能測(cè)試,包含與本次性能測(cè)試所有相關(guān)的功能。也就說(shuō)本的性能測(cè)試的所有內(nèi)容是于基于一個(gè)計(jì)劃的。

            下面看一下一個(gè)計(jì)劃下面都有哪些主要的功能模塊(右鍵單擊“測(cè)試計(jì)劃”彈出菜單)。

            Threads (Users)線程 用戶(hù)

            雖然有三個(gè)添加線程組的選項(xiàng),名字不一樣, 創(chuàng)建之后,其界面是完全一樣的。之前的版本只有一個(gè)線程組的名字。現(xiàn)在多一個(gè)setUp theread Group 與terDown Thread Group

            1)setup thread group

            一種特殊類(lèi)型的ThreadGroup的,可用于執(zhí)行預(yù)測(cè)試操作。這些線程的行為完全像一個(gè)正常的線程組元件。不同的是,這些類(lèi)型的線程執(zhí)行測(cè)試前進(jìn)行定期線程組的執(zhí)行。

            2)teardown thread group

            一種特殊類(lèi)型的ThreadGroup的,可用于執(zhí)行測(cè)試后動(dòng)作。這些線程的行為完全像一個(gè)正常的線程組元件。不同的是,這些類(lèi)型的線程執(zhí)行測(cè)試結(jié)束后執(zhí)行定期的線程組。

            可能你還是不太理他們與普通的線程組有什么不同。 如果您用過(guò)junit,想必你不會(huì)對(duì)setup ,teardown這2個(gè)字眼陌生。 即時(shí)每用過(guò),也沒(méi)關(guān)系。 熟悉loadrunner的應(yīng)該知道,loadrunner的腳本除了action里是真正的腳本核心內(nèi)容,還有初始化“環(huán)境”的初始化腳本和測(cè)試完畢后對(duì)應(yīng)的清除信息的腳本塊。 那么這里 setup thread group 和 teardown thread group 就是分別指這兩部分。  其實(shí)從本質(zhì)上來(lái)看,他們并沒(méi)有什么不同。

            3)thread group(線程組)

            這個(gè)就是我們通常添加運(yùn)行的線程。通俗的講一個(gè)線程組,可以看做一個(gè)虛擬用戶(hù)組,線程組中的每個(gè)線程都可以理解為一個(gè)虛擬用戶(hù)。線程組中包含的線程數(shù)量在測(cè)試執(zhí)行過(guò)程中是不會(huì)發(fā)生改變的。

           測(cè)試片段(Test Fragment)

            測(cè)試片段是在2.5版本之后新加的一個(gè)選項(xiàng)。

            測(cè)試片段元素是控制器上的一個(gè)種特殊的線程組,它在測(cè)試樹(shù)上與線程組處于一個(gè)層級(jí)。它與線程組有所不同,因?yàn)樗槐粓?zhí)行,除非它是一個(gè)模塊控制器或者是被控制器所引用時(shí)才會(huì)被執(zhí)行。

            控制器

            JMeter有兩種類(lèi)型的控制器:取樣器(sample)和邏輯控制器(Logic Controller),用這些原件來(lái)驅(qū)動(dòng)處理一個(gè)測(cè)試。

            取樣器(Sampler)

            取樣器(Sample)是性能測(cè)試中向服務(wù)器發(fā)送請(qǐng)求,記錄響應(yīng)信息,記錄響應(yīng)時(shí)間的最小單元,JMeter 原生支持多種不同的sampler,如 HTTP Request Sampler、FTP  Request Sample、TCP  Request Sample、JDBC Request Sampler 等,每一種不同類(lèi)型的 sampler 可以根據(jù)設(shè)置的參數(shù)向服務(wù)器發(fā)出不同類(lèi)型的請(qǐng)求。(在jmeter 的所有sampler 中,Java Request Sampler 和 Beanshell Request Sampler 是兩種特殊的可定制的 Sampler,后面會(huì)深入討論。)

            邏輯控制器(Logic Controller)

            邏輯控制器,包括兩類(lèi)無(wú)件,一類(lèi)是用于控制test plan 中 sampler 節(jié)點(diǎn)發(fā)送請(qǐng)求的邏輯順序的控制器,常用的有 如果(If)控制器、switch Controller 、Runtime Controller、循環(huán)控制器等。另一類(lèi)是用來(lái)組織可控制 sampler 來(lái)節(jié)點(diǎn)的,如 事務(wù)控制器、吞吐量控制器。

           配置元件(Config Element)

            配置元件(config element)用于提供對(duì)靜態(tài)數(shù)據(jù)配置的支持。CSV Data Set config 可以將本地?cái)?shù)據(jù)文件形成數(shù)據(jù)池(Data Pool),而對(duì)應(yīng)于HTTP Request Sampler和 TCP Request Sampler等類(lèi)型的配制無(wú)件則可以修改Sampler的默認(rèn)數(shù)據(jù)。(例如,HTTP Cookie Manager 可以用于對(duì) HTTP Request Sampler 的cookie 進(jìn)行管理)

            定時(shí)器(Timer)

            定時(shí)器(Timer)用于操作之間設(shè)置等待時(shí)間,等待時(shí)間是性能測(cè)試中常用的控制客戶(hù)端QPS的手端。類(lèi)似于LoadRunner里面的“思考時(shí)間”。JMeter 定義了Bean Shell Timer、Constant Throughput Timer、固定定時(shí)器等不同類(lèi)型的Timer。

            前置處理器(Per Processors)

            用于在實(shí)際的請(qǐng)求發(fā)出之前對(duì)即將發(fā)出的請(qǐng)求進(jìn)行特殊處理。例如,HTTP URL重寫(xiě)修復(fù)符則可以實(shí)現(xiàn)URL重寫(xiě),當(dāng)RUL中有sessionID 一類(lèi)的session信息時(shí),可以通過(guò)該處理器填充發(fā)出請(qǐng)求的實(shí)際的sessionID 。

            后置處理器(Post Processors)

            用于對(duì)Sampler 發(fā)出請(qǐng)求后得到的服務(wù)器響應(yīng)進(jìn)行處理。一般用來(lái)提取響應(yīng)中的特定數(shù)據(jù)(類(lèi)似LoadRunner測(cè)試工具中的關(guān)聯(lián)概念)。例如,XPath  Extractor 則可以用于提取響應(yīng)數(shù)據(jù)中通過(guò)給定XPath 值獲得的數(shù)據(jù)。

          斷言(Assertions)

            斷言用于檢查測(cè)試中得到的相應(yīng)數(shù)據(jù)等是否符合預(yù)期,斷言一般用來(lái)設(shè)置檢查點(diǎn),用以保證性能測(cè)試過(guò)程中的數(shù)據(jù)交互是否與預(yù)期一致。

            監(jiān)聽(tīng)器(Listener)

            這個(gè)監(jiān)聽(tīng)器可不是用來(lái)監(jiān)聽(tīng)系統(tǒng)資源的元件。它是用來(lái)對(duì)測(cè)試結(jié)果數(shù)據(jù)進(jìn)行處理和可視化展示的一系列元件。 圖行結(jié)果、查看結(jié)果樹(shù)、聚合報(bào)告。都是我們經(jīng)常用到的元件。

            到此,我們已經(jīng)簡(jiǎn)單了解了jmeter的基本組成原件,我們后序的性能測(cè)試工作也就是使用這些元件來(lái)完成測(cè)試任務(wù)。

          相關(guān)鏈接:

          posted on 2012-12-31 12:52 順其自然EVO 閱讀(2028) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): jmeter and badboy性能測(cè)試

          <2012年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 兰考县| 吴川市| 龙川县| 精河县| 景泰县| 曲麻莱县| 富顺县| 平昌县| 左贡县| 辉县市| 青神县| 二连浩特市| 朝阳区| 杭锦后旗| 中方县| 博爱县| 黎川县| 西峡县| 方正县| 双城市| 句容市| 繁峙县| 孙吴县| 岐山县| 吉首市| 怀仁县| 沙田区| 项城市| 景泰县| 霞浦县| 禄丰县| 凤阳县| 罗甸县| 诸暨市| 浠水县| 色达县| 富平县| 芷江| 仙居县| 都昌县| 富锦市|