軟件測試工具介紹
目錄:java
前言git
JMeter 介紹web
JMeter與LoadRunner比較
JMetet基本使用正則表達式
前言
在第十四周的課堂上,王文娟老師發佈了經過搜索資料和自學,在我的博客上介紹軟件測試工具的任務,所以,這是我爲軟件工程綜合實踐專題課程第四次我的做業所寫的博客。數據庫
編寫此博客的心得:服務器
本次介紹的軟件測試工具爲JMeter,JMeter 是一個100%純Java桌面應用,用於壓力測試和性能測量。在使用過程當中我發現,JMeter的一個很大的亮點在於,它可以經過讓咱們用斷言創造測試腳原本驗證咱們的應用程序是否返回了咱們指望的結果,從而幫助咱們迴歸測試咱們的程序。爲了最大的靈活性,JMeter 容許咱們使用正則表達式建立斷言。網絡
在這個實驗中,我遇到最大的困難在於Apache JMeter內Remote File與Local File的路徑填寫。解決方案是我翻閱了十幾篇文章,最後在一篇博客上找到了解決方案。從前幾回的原型設計,到學習githhub,從git上傳下載代碼的學習,到此次的軟件測試的我的做業,我都感覺到了這門課程貫穿了整個開發的需求過程,從需求的找尋到最終成品的測試和展現都有跡可循,明白了真正成功的一款軟件在真正發佈以前所須要作出的全部測試和努力。這是十分有利於我學習的。併發
JMeter 介紹工具
Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟件作壓力測試,它最初被設計用於Web應用測試,但後來擴展到其餘測試領域。 它能夠用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫、FTP 服務器, 等等。JMeter 能夠用於對服務器、網絡或對象模擬巨大的負載,來自不一樣壓力類別下測試它們的強度和分析總體性能。另外,JMeter可以對應用程序作功能/迴歸測試,經過建立帶有斷言的腳原本驗證你的程序返回了你指望的結果。性能
Apache jmeter 能夠用於對靜態的和動態的資源(文件,Servlet,Perl腳本,java 對象,數據庫和查詢,FTP服務器等等)的性能進行測試。它能夠用於對服務器、網絡或對象模擬繁重的負載來測試它們的強度或分析不一樣壓力類型下的總體性能。你可使用它作性能的圖形分析或在大併發負載測試你的服務器/腳本/對象。
JMeter與LoadRunner比較
JMeter 是一款開源(有着典型開源工具特色:界面不美觀)測試工具,雖然與LoadRunner相比有不少不足,好比:它結果分析能力沒有LoadRunner詳細;很它的優勢也有不少:
- 開源,他是一款開源的免費軟件,使用它你不須要支付任何費用,
- 小巧,相比LR的龐大(最新LR11將近4GB),它很是小巧,不須要安裝,但須要JDK環境,由於它是使用java開發的工具。
- 功能強大,jmeter設計之初只是一個簡單的web性能測試工具,但通過不段的更新擴展,如今能夠完成數據庫、FTP、LDAP、WebService等方面的測試。由於它的開源性,固然你也能夠根據本身的需求擴展它的功能。
二者最大的區別:jmeter不支持IP欺騙,而LR支持。
JMeter基本使用
測試配置:
Windows7 i5-4590CPU @ 3.30GHz;RAM:8GB;64位操做系統
JDK 1.8
測試軟件 :Apache JMeter 3.0
一、FTP服務器創建過程
用戶名和密碼創建
二、1秒1線程訪問額
配置FTP請求缺省值
配置兩個FTP請求,分別爲get和put。
get請求,即從服務器上下載軟件。Remote File的內容test1.txt默認存儲在ftp服務器設置的根目錄下,該文件必須是已經存在的文件,且該文件中最好是有數據的,不然會報錯。Local File是本地的文件存儲地址。
put請求,即從本地上傳文件到服務器。Remote File的內容test2.txt是一個服務器中沒有的文件。Local File是本地已存在的文檔。
建立監聽器:聚合報告,用表格查看結果,圖形結果。
三、1秒30線程訪問額
其餘配置過程相同
四、1秒50線程訪問額
其餘配置過程相同
五、1秒100線程訪問額
其餘配置過程相同
6.、性能測試結果分析
1秒1線程訪問額
get:完成了1個sample,平均響應時間爲57ms,響應時間的中值爲57ms,全部sample中90%的sample的響應時間都小於57ms,最小響應時間爲57ms,最大響應時間爲57ms,錯誤率爲0%。
put:完成了1個sample,平均響應時間爲9ms,響應時間的中值爲9ms,全部sample中90%的sample的響應時間都小於9ms,最小響應時間爲9ms,最大響應時間爲9ms,錯誤率爲0%。
1秒30線程訪問額
get:完成了30個sample,平均響應時間爲28ms,響應時間的中值爲17ms,全部sample中90%的sample的響應時間都小於62ms,最小響應時間爲7ms,最大響應時間爲97ms,錯誤率爲0%。
put:完成了30個sample,平均響應時間爲31ms,響應時間的中值爲20ms,全部sample中90%的sample的響應時間都小於64ms,最小響應時間爲12ms,最大響應時間爲92ms,錯誤率爲3.33%。
1秒50線程訪問額
get:完成了48個sample,平均響應時間爲48ms,響應時間的中值爲32ms,全部sample中90%的sample的響應時間都小於103ms,最小響應時間爲7ms,最大響應時間爲120ms,錯誤率爲35.42%。
put:完成了48個sample,平均響應時間爲45ms,響應時間的中值爲28ms,全部sample中90%的sample的響應時間都小於111ms,最小響應時間爲10ms,最大響應時間爲128ms,錯誤率爲47.92%。
1秒100線程訪問額
get:完成了97個sample,平均響應時間爲38ms,響應時間的中值爲26ms,全部sample中90%的sample的響應時間都小於83ms,最小響應時間爲9ms,最大響應時間爲103ms,錯誤率爲69.07%。
put:完成了97個sample,平均響應時間爲31ms,響應時間的中值爲24ms,全部sample中90%的sample的響應時間都小於79ms,最小響應時間爲6ms,最大響應時間爲98ms,錯誤率爲88.66%。
七、圖表一覽
注:Label1表明1秒1線程訪問額;Label2表明1秒30線程訪問額;Label3表明1秒50線程訪問額;Label4表明1秒100線程訪問額。