国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

云智慧壓測實戰分享之JMeter工具使用初探

venmos / 3575人閱讀

摘要:有了測試腳本,通過線程組來模擬真實用戶對服務器的訪問壓力。不同的是,這些類型的線程執行測試結束后執行定期的線程組。線程組中包含的線程數量在測試執行過程中是不會發生改變的。邏輯控制器元件只對其子節點中的取樣器和邏輯控制器作用。

工欲善其事必先利其器,要保證移動應用產品在上線之后能穩定運行于各種復雜環境,僅僅進行功能測試是遠遠不夠的,壓力測試越來越被應用開發商所重視。而壓力測試從傳統的內部壓力到基于云計算的壓力測試,再到用戶視角的外部壓測,也在不斷發展變化。JMeter作為一款廣為流傳的開源壓測產品,最初被設計用于Web應用測試,并不斷擴展到其他測試領域。
如今,JMeter可以用于測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫、FTP 服務器等等,還能對服務器、網絡或對象模擬巨大的負載,通過不同壓力類別測試它們的強度和分析整體性能。另外,JMeter能夠對應用程序做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。
JMeter的特點包括對HTTP、FTP服務器、數據庫進行壓力/性能測試;完全的可移植性;完全 Swing和輕量組件支持包;完全多線程;緩存和離線分析/回放測試結果;可鏈接的取樣器;具有提供動態輸入到測試的功能;支持腳本編程的取樣器等。不僅如此,在設計階段JMeter能夠充當HTTP PROXY(代理)來記錄瀏覽器的HTTP請求,也可以記錄Apache等WebServer的log文件來重現HTTP流量,并在測試運行時以此為依據設置重復次數和并發度(線程數)來進行壓測。

JMeter的壓力發生原理

JMeter可以作為Web服務器與瀏覽器之間的代理網關,捕獲瀏覽器請求和Web服務器響應,這樣就能快速生成性能測試腳本。有了測試腳本,JMeter通過線程組來模擬真實用戶對Web服務器的訪問壓力。
原理圖如下:


JMeter的結構如下圖所示,通過各種元件的組織配合,滿足不同的測試需要:

JMeter的常見元件

1、Test?Plan?(測試計劃):用來描述一個性能測試,包含與本次性能測試所有相關的功能,也就說性能測試的所有內容都是于基于一個計劃的,右鍵單擊“測試計劃”彈出菜單:


注意:“函數測試模式”復選框如果被選擇,會記錄來自服務器返回的每個取樣的數據,在測試監聽器中選擇一個文件,這些數據將被寫入文件。如果嘗試一個較小的測試來保證JMeter配置正確并且服務器正在返回期望的結果,這是很有用的,但后果是這個文件會快速增大并對JMeter效率產生影響。

2、Threads(Users)線程(用戶)


1)?setup?thread?group?
一種特殊類型的ThreadGroup的,可用于執行預測試操作。這些線程的行為完全像一個正常的線程組元件。不同的是這些類型的線程執行測試前進行定期線程組的執行。setUp Thread Group類似于lr的init.可用于執行預測試操作。
2)?teardown?thread?group
一種特殊類型的ThreadGroup的,可用于執行測試后動作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試結束后執行定期的線程組。tearDown Thread Group類似于lr的end.可用于執行測試后動作。
3)?thread?group(線程組)
這個就是我們通常添加運行的線程,可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。線程組中包含的線程數量在測試執行過程中是不會發生改變的。


在設置線程組參數的時候注意:
  Ramp-Up Period:指定了啟動所有線程所花費的時間,單位是秒,默認時間是1秒。比如,當前的設定表示“在5秒內啟動5個線程,每個線程的間隔時間為1秒”。如果需要JMeter立即啟動所有線程,將此設定為0即可.
  循環次數:表示每個線程執行多少次請求。

3、測試片段(Test?Fragment)
測試片段元素是控制器上的一個種特殊線程組,在測試樹上與線程組處于一個層級。它與線程組的差異在于,只有被一個模塊控制器或者是被控制器所引用時才會執行。

4、取樣器(Sampler)
取樣器(Sampler)是性能測試中向服務器發送請求,記錄響應信息和響應時間的最小單元,JMeter?原生支持多種不同的Sampler,如HTTP Request?Sampler、FTP??Request?Sampler、TCP Request?Sampler、JDBC?Request?Sampler?等,每一種不同類型的Sampler可以根據設置的參數向服務器發出不同類型的請求。在JMeter的所有Sampler中,Java Request Sampler與BeanShell Requst Sampler是兩種特殊的可定制的Sampler。

5、邏輯控制器(Logic?Controller)
邏輯控制器包括兩類元件,一類是用于控制test?plan?中?Sampler節點發送請求的邏輯順序的控制器,常用的有?如果(If)控制器?、 switch?Controller?、Runtime?Controller、循環控制器等。另一類是用來組織和控制?Sampler節點的,如事務控制器、吞吐量控制器。

6、配置元件(Config?Element)
配置元件(config?element)用于提供對靜態數據配置的支持。CSV?Data?Set?config?可以將本地數據文件形成數據池 (Data?Pool),而對應于HTTP?Request?Sampler和?TCP?Request?Sampler等類型的配置元件則可以修改 Sampler的默認數據。例如,HTTP?Cookie?Manager?可以用于對?HTTP?Request?Sampler?的 cookie?進行管理。HTTP 請求默認值不會觸發JMeter發送http請求,而只是定義HTTP請求的默認屬性。

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

8、前置處理器(Per?Processors)
前置處理器用于在實際的請求發出之前對即將發出的請求進行特殊處理。例如,HTTP?URL重寫修復符則可以實現URL重寫,當URL中有sessionID?一類的session信息時,可以通過該處理器填充發出請求的實際的sessionID?。

9、后置處理器(Post?Processors)
后置處理器是用于對Sampler?發出請求后得到的服務器響應進行處理,一般用來提取響應中的特定數據(類似LoadRunner測試工具中的關聯概念)。例如,XPath? Extractor?可以提取響應數據中通過給定XPath?值獲得的數據,正則表達式提取器則可以提取響應數據中通過正則表達式獲得的數據。

?10、斷言(Assertions)
斷言用于檢查測試中得到的相應數據等是否符合預期,斷言一般用來設置檢查點,用以保證性能測試過程中的數據交互是否與預期一致。


?
11、監聽器(Listener)
監聽器不是用來監聽系統資源的元件,而是對測試結果數據進行處理和可視化展示的一系列元件,包括圖形結果、查看結果樹、聚合報告、用表格察看結果都是我們經常用到的元件。

12、工作臺

在測試中我們可能需要暫時更改一些組件,可以把一些需要更改的組件保存在工作臺中,測試完成后再恢復。但是切記不能退出jmeter,一旦退出jmeter工作臺中的內容就會消失。

13、Property Display
此元件相當于是jmeter.properties的GUI。

JMeter元件的作用域和執行順序

在JMeter中,元件的作用域是靠測試計劃的樹型結構中元件的父子關系來確定的,作用域的原則是:
1.取樣器(sampler)元件不和其它元件相互作用,因此不存在作用域的問題。
2.邏輯控制器(Logic Controller)元件只對其子節點中的取樣器和邏輯控制器作用。
3.除取樣器和邏輯控制器元件外,其他6類元件,如果是某個sampler的子節點,則該元件公對其父子節點起作用。
4.除取樣器和邏輯控制器元件外的其他6類元件,如果其父節點不是sampler,則其作用域是該元件父節點下的其他所有后代節點(包括子節點,子節點的子節點等)。
了解了元件有作用域之后,再來看看元件的執行順序規則,在同一作用域名范圍內,測試計劃中的元件按照如下順序執行:
1)配置元件(config elements )
2)前置處理程序(Per-processors)
3)定時器(timers )
4)取樣器(Sampler)
5)后置處理程序(Post-processors) (除非Sampler 得到的返回結果為空)。
6)斷言(Assertions)(除非Sampler 得到的返回結果為空)。
7)監聽器(Listeners)(除非Sampler 得到的返回結果為空)。
關于執行順序,有三點需要注意:

前置處理器、后置處理器和斷言等元件只能對 取樣器作用,因此,如果在它們的作用域內沒有任何取樣器,則不會被執行。

如果在同一作用域范圍內有多個同一類型的元件,則這些元件按照它們在測試計劃中的上下順序一次執行。

一個斷言在測試樹中是分等級的。如果它的父元件是請求,它就被應用于那個請求。如果它的父元件是控制器,它就影響所有那個控制器下的所有請求。
以上是JMeter使用之前必須了解的一些基本信息,接下來我們將為您帶來JMeter腳本錄制實例,敬請期待。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/8764.html

相關文章

  • 智慧微課堂:移動創業公司的IT性能優化實例講解

    摘要:大家好,我叫湯金城,今天和大家分享一下我在公司業務方面故障排查遇到的一些坑,以及進行性能調優的解決方法。性能的優化在我看來,性能優化和監控是分不開的,現在關于優化的配置非常多,適合自己的才是最好的。 本期主講:湯金城,多年從事移動互聯網相關運維工作,帶領團隊維護數百臺服務器,擁有豐富的故障排查和性能優化實戰經驗,擅長業務拆分,高可用架構設計。 大家好,我叫湯金城,今天和大家分享一下我在...

    xzavier 評論0 收藏0
  • jmeter web性能測試實例

    jmeter web性能測試實例 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ma...

    IT那活兒 評論0 收藏1191

發表評論

0條評論

venmos

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<