JMeter是Java技術(shù)棧工具,,在軟件測試領(lǐng)域應(yīng)用非常廣泛,,無論是性能測試還是接口測試,技術(shù)都很成熟和穩(wěn)定,。它有一個(gè)突出特點(diǎn):開源,,適合做二次開發(fā),以阿里為代表的Java技術(shù)棧公司都對(duì)它青睞有加,。在JMeter之前,,我最早接觸的工具是LoadRunner,畢業(yè)后還買過一本《精通軟件性能測試與LoadRunner最佳實(shí)戰(zhàn)》的書,,但是它的時(shí)代已經(jīng)過去:
這是JMeter的時(shí)代,JMeter系列文章將根據(jù)《全棧性能測試修煉寶典JMeter實(shí)戰(zhàn)》這本書來編寫,。本文介紹JMeter的組成結(jié)構(gòu),,閱讀后對(duì)JMeter形成整體認(rèn)知和初步印象。為了便于后續(xù)講解,,先明確下2個(gè)術(shù)語:
大的叫組件,小的叫元件,,也沒那么嚴(yán)謹(jǐn),,你想叫控件都行!先以組件的維度,,看一下JMeter結(jié)構(gòu)圖: X,、Y、Z形成了一個(gè)三維立體空間,。 X1~X5表示的是:5個(gè)模擬過程,。 Y1表示的是:用戶請求。 Y2表示的是:結(jié)果驗(yàn)證,。 Z表示的是:結(jié)果收集,。 X1【取樣器】通過訪問 測試計(jì)劃|線程組|取樣器 添加 可以把它看做是一個(gè)沒有界面的瀏覽器,可以發(fā)送請求,,接收響應(yīng),。支持HTTP請求、WebService請求(SOAP/XML-RPC),、Java請求等,。涵蓋了協(xié)議包括HTTP、FTP,、JAVA,、LDAP、MAIL,、MongoDB,、SMTP、SOAP,、TCP,、Junit等。還能寫B(tài)eanShell腳本,,一種類似Java的腳本開發(fā)語言,。 X1【斷言】通過 測試計(jì)劃|斷言 添加 一般用響應(yīng)斷言(Response Assertion)比較多,??梢詫態(tài)eanShell實(shí)現(xiàn)自定義復(fù)雜斷言,。 X1【監(jiān)聽器】通過 測試計(jì)劃|監(jiān)聽器 添加 可以用于展示結(jié)果,。如察看結(jié)果樹(View Results True),查看每次請求和響應(yīng),。聚合報(bào)告(Aggregate Report),,類似測試報(bào)告。 另外,,也可以把測試結(jié)果數(shù)據(jù)保存到文件,,供再次分析使用。 X2【前置處理器】通過 測試計(jì)劃|前置處理器 添加 在發(fā)送請求前,需要做一些環(huán)境或數(shù)據(jù)準(zhǔn)備,,就需要用前置處理器,。比如對(duì)數(shù)據(jù)庫操作前,,需要先建立數(shù)據(jù)庫連接。 X2【配置元件】可以通過 測試計(jì)劃|配置元件 添加 它的作用是,為取樣器提供配置數(shù)據(jù),。比如使用 X2【后置處理器】可以通過 測試計(jì)劃|后置處理器 添加 它的作用是處理響應(yīng)數(shù)據(jù),。比如正則表達(dá)式提取器(Regular Expression Extractor),使用正則表達(dá)式來匹配響應(yīng)結(jié)果,,提取部分?jǐn)?shù)據(jù),。 X3【邏輯控制器】可以通過 測試計(jì)劃|線程組|邏輯控制器 添加 它用來對(duì)處理邏輯進(jìn)行控制,。比如只登陸一次,,可以用 Once Only Controller 來實(shí)現(xiàn)。 X4【定時(shí)器】可以通過 測試計(jì)劃|線程組|定時(shí)器 添加 它用來設(shè)定等待時(shí)間,。比如等待5秒后再發(fā)送請求。比如讓多個(gè)請求等待到同一時(shí)刻發(fā)送,。 不同定時(shí)器有不同功能,。 X5【線程組】可以通過 測試計(jì)劃|線程組 添加 Threads(Users),,既是Thread,,也是User。JMeter一個(gè)線程模擬一個(gè)用戶,。 Test Fragment可以通過 測試計(jì)劃|Test Fragment 添加,。線程組也可以添加。 可用于臨時(shí)備份元件,,Test Fragment下的元件不會(huì)被運(yùn)行,。封裝后可被模塊控制器調(diào)用,就像編程一樣,。 小結(jié)本文從JMeter結(jié)構(gòu)圖展開講解,,通過組件截圖描繪出了JMeter體系結(jié)構(gòu),。取樣器、斷言,、監(jiān)聽器組合在一起就可以完成發(fā)送請求,、驗(yàn)證結(jié)果和記錄結(jié)果。前置處理器,、配置元件,、后置處理器都是為取樣器提供數(shù)據(jù)支持的。邏輯控制器可以實(shí)現(xiàn)各種需求,。定時(shí)器可以設(shè)置集合點(diǎn)和等待時(shí)間等,。JMeter是用線程組來模擬的,一個(gè)線程就是一個(gè)用戶,。Test Fragment可以用來備份元件,,底下的元件不會(huì)被運(yùn)行。
|
|