使用jmeter進行APP介面測試經驗總結

來源:互聯網
上載者:User

標籤:water   使用者   虛擬使用者   失敗   rac   nbsp   option   輸入   delete   

使用工具:

Fiddler、Jmeter

測試步驟:1.    確認介面

從開發人員那裡擷取介面文檔,介面文檔應該包括完整的功能介面、介面請求方式、介面請求URL、介面請求參數、介面返回參數。

如果當前項目沒有介面文檔,則可以使用fiddler對APP進行抓包確認。

fiddler對手機進行抓包的方法可以參考:http://blog.csdn.NET/whorus1/article/details/50673740

在手機上對APP進行操作,然後在Fiddler中可以抓取對應的網路互動資訊(一個功能中可能設計多個介面的互動)。在抓取的資訊中可以看到介面請求方式、介面請求URL、介面請求參數、介面返回參數。

2.    在Jmeter中編寫測試指令碼

1.      在測試計劃中添加一個線程組(在測試計劃上右擊,添加-Threads-線程組)。

 

可以將線程組的名稱改成測試專案的名稱。

在效能測試時可以通過配置線程屬性中的參數來控制並發使用者數:

線程數:虛擬使用者數,即並發數,一個線程表示一個虛擬使用者;

Ramp-Up Period:所有線程啟動的時間,單位s。通過這個參數可以設定每個線程間的啟動間隔,防止給電腦造成太大效能壓力;

迴圈次數:測試迴圈的次數,如果勾選了“永遠”,那麼所有線程會一直發送請求,直到手動停止運行指令碼;

 

2.      線上程組中添加HTTP請求(線上程組上右擊,添加-Sampler-HTTP請求)。

可以將名稱改為待測介面的名稱;

在Web伺服器中填入請求伺服器的地址和連接埠號碼;

協議中填入HTTP請求的協議,可以是http或https,我們一般用的都是http;

在方法中選擇HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE;(我們項目中的介面方法使用的主要是GET和PUT,在目前易戶網的項目中由於APP不直接和伺服器互動,中間有一個統一介面平台,所以GET方法的介面請求也要使用POST進行互動。)

在路徑中填入介面請求的URL;

請求參數:如果是GET方法的請求,請求參數直接寫在URL後面即可;如果是POST的方法,則需要在Body Data中填入包含請求參數的資料(Body Data可以從Fiddler抓的包中擷取,將Fiddler抓取的到資料包中Inspectors-TextView中的資料複製到Body data中即可);

 

3.      線上程組中添加HTTP資訊頭管理器(線上程組上右擊,添加-配置元件-HTTP請求資訊頭管理器)。

配置如下:

 

4.      添加監聽器(線上程組上右擊,添加-監聽器-XXX)。

主要配置完成了,需要添加監聽器以查看測試結果。一般我們使用查看結果樹和彙總報告查看。

查看結果樹:在結果樹中會以樹形結構展示每個介面請求的測試結果,包括取樣器結果、請求、響應資料,在響應資料中可看到網路側返回的資料,可以以介面文檔中期望返回的參數做比較以判斷返回是否正確。在結果樹中通過顏色可以直觀的看到介面測試的結果,綠色為通過,紅色為失敗。

 

彙總報告:從彙總報告中我們可以擷取到比較多的資訊,包括介面的回應時間、輸送量、通過率等,在介面的效能測試中很有用。

 

表中參數的含義如下:

 

5.      添加響應斷言(添加-斷言-響應斷言)。

查看測試結果時我們會發現有時候網路側返回資料不符合要求時Jmeter給出的結果仍是通過的。這時候我們需要通過斷言來判斷網路的返回資料是否符合要求。

比如,我們可以添加一個斷言來檢查返回資訊中是否包含關鍵字“errMsg”來判斷錯誤資訊:

首先添加一個相應斷言,在要測試的響應欄位中選擇響應文本,在模式比對規則中選擇包括,勾選否,在要測試的模式中添加提一條,輸入關鍵字“errMsg”;

意思是檢查網路返回結果中不包含“errMsg”的才會判定為通過。

另外我們還可以從監聽器中添加一個斷言結果,在斷言結果中可以查看斷言的詳細返回資訊。

 

 

3.    其他補充

使用CSV Data Set Config定義變數。

舉個例子,我們想要測試多使用者登陸時要怎麼做?可以線上程屬性中配置多個線程,但是這樣只是同一個使用者多次登入,多個不同的使用者需要輸入不同的使用者名稱密碼。當然我們可以寫多個登入的HTTP請求,每個請求輸入不同的參數,但是這樣太傻了。

這個時候我們可以通過CSV DataSet Config來定義兩個變數代表使用者名稱和密碼,然後傳入不同的值即可實現多使用者的登入:

1、我們在登入的case中添加一個CSV DataSet Config(添加-配置元件-CSV Data Set Config)。

 

Filename:指定讀取使用者名稱和密碼的檔案,我們會將所有的使用者名稱密碼寫到該檔案中;

FileEncoding::寫入使用者名稱密碼的檔案編碼格式,不寫的時候預設為ANSI

VaribleNames:定義文字檔中的變數名使用者名稱=user和密碼=pwd,變數之間逗號分隔。

 

2、我們到上面Filename的路徑下建立該檔案並寫入使用者名稱密碼,使用者名稱和密碼之間用逗號分開,不同使用者名稱密碼之間換行。

 

3、到Jmeter的指令碼中將原本的使用者名稱密碼改為變數名,由於我們使用的是Post方法,所以到Body Data中修改:

使用jmeter進行APP介面測試經驗總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.