jemter簡單測試方式
Jmeter是一款優秀的開源測試工具, 是每個資深測試工程師,必須掌握的測試工具,熟練使用Jmeter能大大提高工作效率。
**開源,他是一款開源的免費軟體,使用它你不需要支付任何費用,
**小巧,相比LR的龐大(最新LR11將近4GB),它非常小巧,不需要安裝,但需要JDK環境,因為它是使用java開發的工具。
**功能強大,jmeter設計之初只是一個簡單的web效能測試工具,但經過不段的更新擴充套件,現在可以完成資料庫、FTP、LDAP、WebService等方面的測試。因為它的開源性,當然你也可以根據自己的需求擴充套件它的功能。
環境搭建:
jemter安裝地址:http://jmeter.apache.org/
jemter官方學習地址:http://jmeter.apache.org/index.html
二.使用jemter做介面測試:這裡我們要注意有兩種介面方式是很常用的:get和post,
下面來演示兩者的不同。為了更好的區分,我在這裡先簡單的演示下它的不同:
get請求:http://localhost:8080?username=anqi&password=123456
post請求:http://localhost:8080
這樣看是不是清楚多了
1.找到你安裝的資料夾,找到bin資料夾,執行jemter.bat.開啟jemter
2.新建一個執行緒組:
執行緒數:虛擬使用者數。一個虛擬使用者佔用一個程序或執行緒。設定多少虛擬使用者數在這裡也就是設定多少個執行緒數。
準備時長:設定的虛擬使用者數需要多長時間全部啟動。如果執行緒數為20,準備時長為10,那麼需要10秒鐘啟動20個執行緒。也就是每秒鐘啟動2個執行緒。
迴圈次數:每個執行緒傳送請求的次數。如果執行緒數為20,迴圈次數為100,那麼每個執行緒傳送100次請求。總請求數為20*100=2000。如果勾選了“永遠”,那麼所有執行緒會一直髮送請求,一到選擇停止執行指令碼。
(這裡要做介面測試,所以各個引數為均1。)
3.新增一個http請求:
4.例子:我要傳送一個get方法的http
(這裡順路說一下用post請求跟get請求有什麼區別,同樣是圖片來說明)
我要傳送一個post方法的http
(這裡對比一下就很容易看出區別了,get請求直接填就好了,post請求需要新增值)
get請求和post請求的區別:
1.get請求的字尾在位址列裡提交,post請求在webfroms中顯示,以表單形式提交
2.get請求資料比較小,post請求資料比較大。
3.post請求相對比較安全
名稱:本屬性用於標識一個取樣器,建議使用一個有意義的名稱。
註釋:對於測試沒有任何作用,僅使用者記錄使用者可讀的註釋資訊。
伺服器名稱或IP:HTTP請求傳送的目標伺服器名稱或IP地址。
埠號:目標伺服器的埠號,預設值為80。
協議:向目標伺服器傳送HTTP請求時的協議,可以是http或者是https,預設值為http
方法:傳送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。(一般使用get和post)
Contentencoding:內容的編碼方式,預設值為iso8859
路徑:目標URL路徑(不包括伺服器地址和埠)
自動重定向:如果選中該選項,當傳送HTTP請求後得到的響應是302/301時,JMeter自動重定向到新的頁面。
UsekeepAlive:當該選項被選中時,jmeter和目標伺服器之間使用Keep-Alive方式進行HTTP通訊,預設選中。
Usemultipart/from-dataforHTTPPOST:當傳送HTTPPOST請求時,使用Usemultipart/from-data方法傳送,預設不選中。
同請求一起傳送引數:在請求中傳送URL引數,對於帶引數的URL,jmeter提供了一個簡單的對引數化的方法。使用者可以將URL中所有引數設定在本表中,表中的每一行是一個引數值對(對應RUL中的名稱1=值1)。
5.點選執行按鈕,檢視其結果。
除了使用檢視結果樹,我們常用的檢視資料的方法還有新增聚合報告檢視結果。
得到以下結果頁面。
Label:每個JMeter的element(例如HTTP Request)都有一個Name屬性,這裡顯示的就是Name屬性的值
Samples:表示你這次測試中一共發出了多少個請求,如果模擬10個使用者,每個使用者迭代10次,那麼這裡顯示100
Average:平均響應時間——預設情況下是單個Request的平均響應時間,當使用了Transaction Controller時,也可以以Transaction為單位顯示平均響應時間
Median:中位數,也就是50%使用者的響應時間
90% Line:90%使用者的響應時間
Note:關於50%和90%併發使用者數的含義,請參考下文
http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html
Min:最小響應時間
Max:最大響應時間
Error%:本次測試中出現錯誤的請求的數量/請求的總數
Throughput:吞吐量——預設情況下表示每秒完成的請求數(Request per Second),當使用了Transaction Controller時,也可以表示類似LoadRunner的Transaction per Second數
KB/Sec:每秒從伺服器端接收到的資料量,相當於LoadRunner中的Throughput/Sec
6.新增斷言:右鍵點選HTTP請求“新增”-->“斷言”-->“響應斷言”。
對於自動化測試來說,斷言必須要有的,如果沒有斷言我們只能人眼對比對介面返回的資料,有了斷言功能,就會簡化這個過程。Jmeter提供了豐富的斷言方法來幫助我們完成這個工作。
要測試的響應欄位:響應文字、Document(text)、URL樣本、響應資訊、Response Headers、Lgnore Staus等選項。雖然介面返回的是Json格式的資料,但對於Jmeter來說返回資料為文字,所以,這裡可以勾選“響應文字”
模式匹配規則:包括、匹配、Equals、Substring。這裡只需要驗證返回資料中是否包含主要的關鍵字,所以,這裡勾選“包括”。
要測試的模式:其實就是斷言的資料。點選“新增”按鈕,輸入要斷言的資料。
執行測試:
再次清除測試資料,點選啟動測試,檢視結果樹,如下圖。