一.什麼是壓力測試php
壓力測試:測試系統在不一樣壓力狀況下的效率情況以及系統能夠承受的壓力情況。html
舉例說明:5000人同時到窗簾系統下單購買窗簾時,系統運行速度或者處理效率是否變慢或者系統是否會崩潰。java
1. LoadRunnerlinux
LoadRunner,是一種預測系統行爲和性能的負載測試工具。經過以模擬上千萬用戶實施併發負載及實時性能監測的方式來確認和查找問題,LoadRunner可以對整個企業架構進行測試。經過使用 LoadRunner,企業能最大限度地縮短測試時間,優化性能和加速應用系統的發佈週期。 LoadRunner是一種適用於各類體系架構的自動負載測試工具,它能預測系統行爲並優化系統性能。web
軟件學習使用地址:http://www.ltesting.net/ceshi/zhuanti/2012/0208/204053.html數據庫
2. JMete r壓力測試工具apache
Apache JMeter是Apache組織開發的基於Java的桌面應用程序。能夠完成web 服務器壓力測試 數據庫服務器的壓力測試以及Jms 服務服務器測試。編程
官方地址: http://jmeter.apache.org/download_jmeter.cgi服務器
jmeter 的架構跟loadrunner原理同樣,都是經過中間代理,監控&收集併發客戶端發現的指令,把他們生成腳本,再發送到應用服務器,再監控服務器反饋的結果的一個過程。架構
Jmeter 是一個很是流行的性能測試工具,雖然與LoadRunner相比有不少不足,好比:它結果分析能力沒有LoadRunner詳細;很它的優勢也有不少:
開源,他是一款開源的免費軟件,使用它你不須要支付任何費用,
小巧,相比LR的龐大(最新LR11將近4GB),它很是小巧,不須要安裝,但須要JDK環境,由於它是使用java開發的工具。
功能強大,jmeter設計之初只是一個簡單的web性能測試工具,但通過不段的更新擴展,如今能夠完成數據庫、FTP、LDAP、WebService等方面的、試。由於它的開源性,固然你也能夠根據本身的需求擴展它的功能。
1.Jmeter 基本界面和組件的概念
如今看到了Jmeter的主界面。下面介紹Jmeter中主要組件的功能和做用, 首先咱們看看Jmeter在概念上的組件分類如圖
1.Threads:這個組件主要用來控制Jmeter併發時產生線程的數量,在它的下一級菜單下只有一個組件(線程組),能夠這麼理解每一個線程就是一個虛擬的用戶。全部的其餘類型組件必須是(線程組)節點的子節點。
2.配置單元:和Sample組件一塊兒工做,主要用來配置Sample如何來發起請求訪問服務器,這個東西的主要特色是能夠把一些Sample的共同配置放在一個元素裏面方便管理,配置單元是有做用域的。做用域和樹的那個關係同樣越是上級節點的做用域越大,越是接近葉子節點的
做用域就越小,能夠複寫上級做用域的配置。
3.定時器 : 這個主要是用來調節(線程組),控制線程每次運行測試邏輯(好比說:發出請求)的時間間隔。固然這個下面還有不少類型的定時器,他們主要功能就是調節時間間隔,但個個組件之間的策略有很大不一樣。
4.前置處理器 和 後置處理器相似一個HOOK,在測試執行以前和執行以後執行一些腳本的邏輯。該組件我尚未具體使用過,但大體功能就是這樣,非重點組件。
5.Sample : 可能上圖中沒有出現Sample,須要在(ThreadGroup)上添加才能夠,見圖
Sample表示客戶端發送某種格式或者規範的請求到服務端,因此你們看到了各類各樣的Sample,其中有兩個Http 相關的。通常用HttpClient功能和效率將更強。
6.斷言: 意思是指對於Sample完成了請求發送以後,判斷一下返回的結果是否知足指望。
7.監聽器 : 這個組件不一樣於平時在Web編程的那種監聽器,他是伴隨着Jemeter測試的運行而從中抓取運行期間的數據的一個組件,常用的是聚合報告組件,從裏面能夠統計到測試的TPS,響應時間等關鍵測試數據。