1. 程式人生 > >Jmeter接口測試項目實戰

Jmeter接口測試項目實戰

開始 步驟 保存 訪問 需要 int 例如 ace 百度搜

百度搜索:小強測試品牌

QQ群:522720170

測試需求描述


1、 本次測試的接口為http服務端接口

2、 接口的主要分成兩類,一類提供給查詢功能接口,一類提供保存數據功能接口,這裏我們舉例2個保存數據的接口,因為這兩個接口有關聯

性,比較有代表性;

保存信用卡賬戶信息接口:

傳入參數:

args={

"clientNo":"434343556",

"alias": "**信用卡2",

"cardName": "長城*****卡2",

"cardNo": "25622356788251",

}

傳出參數:

保存成功:{"returnCode":"0","returnMsg":"保存成功"}

保存失敗:{"returnCode":"1","returnMsg":"保存失敗"}

保存邏輯:數據傳入進來,驗證通過,保存到信用卡賬戶表中

保存信用卡賬單接口:

傳入參數:

args={

"clientNo":"434343556",

"accountName": "測試",

"billDate": "08",

"billMonth": "201509",

"cardNo": "25622356788251",

"currentPayment": "欠款459.80",

"paymentDate": "2015-09-25 09:00:00",

}

傳出參數:

保存成功:{"returnCode":"0","returnMsg":"保存成功"}

保存失敗:{"returnCode":"1","returnMsg":"保存失敗"}

保存邏輯:保存時先去信用卡信息表查看clientNo對應的表是否存在,如存在則數據校驗通過,將數據保存進入信用卡賬單表

測試分析


1 、 邏輯分析

1) 、從保存邏輯上來看,這兩個接口明顯是有依賴關系的,所以我們先測試信用卡賬戶信息接口,再測試保存信用卡賬單接口

2) 、接口傳入的數據,最終是保存到數據庫中,所以當接口返回保存成功的時候,我們也要去對應的數據庫表中核對相應的數據

3) 、當出現保存失敗的情況時,我們需要查看系統的日誌,所以我們也要準備好查看日誌的權限和地址

2 、測試工具的準備

1) 、單個接口測試,我們使用火狐的插件 poster

2)、多個接口測試,我們使用Jmeter進行測試

使用工具測試


1、Poster工具

2、使用Jmeter對接口測試

首先我們說一下為什麽用Poster測試後我們還要用Jmeter做接口測試,在用poster測試時候會發現的是一個接口一個接口的測試,我們每次

測試成功後的數據,在工具中是無法保存的,再次測試的時候我們還要重新輸入測試的數據,當我們測試一個接口的時候可能感覺不明顯,但是當你

測試幾十個接口的時候,你就會發現使用Jmeter的好處,如果測試階段來說冒煙測試我們用poster,集成測試我們用Jmeter

具體步驟


1、首先郵件添加一個線程組,這裏我們重命名InterfaceTest

技術分享

2、在線程組上添加一個Http默認請求,並配置服務器的IP地址和傳輸編碼

技術分享

3、在線程組中添加一個HTTP請求,這裏我們重命名“增加 信用卡賬戶信息接口 ”

技術分享

4、配置接口請求信息,這配置示例如下:

技術分享

5,在 保存信用卡賬單接口請求,示例如下:

技術分享

註:由於Jmeter請求線程組內的請求時從第一個開始執行,所以我們將需要最先執行的請求放在前面

6、在 線程組上添加監聽器,察看結果樹和聚合報告

技術分享

7、點擊啟動,運行結束後查看,結果樹和聚合報告

技術分享

8、去數據庫中核對數據

大批量數據制造


思路:

1、可參數化的參數, 保存信用卡賬戶信息接口( clientNo,cardNo ),保存信用卡賬單接口( clientNo,cardNo, billMonth,paymentDate)

2、兩個接口的依賴關系,保存信用卡賬單接口( clientNo,cardNo)要和 信用卡賬戶信息接口( clientNo,cardNo )的兩個相同,也就是說這兩個

要用一個參數,且還不能重復

根據上面兩個接口的特點,( clientNo,cardNo) 我們 選取使用計數器,每循環一次計數器加1,那麽我們將線程組設置循環執行1萬

次; billMonth,paymentDate,這兩個日期我們是使用隨機函數${__Random(1,9,)},將月份參數化;

3、在線程組上創建計數器,配置如下:

技術分享

技術分享

4、引用計數器和隨機函數

信用卡賬戶接口傳入參數

args={

"clientNo":"${add}434343556",

"alias": "**信用卡2",

"cardName": "長城*****卡2",

"cardNo": "${add}25622356788251",

}

賬單接口傳入參數

args={

"clientNo":"${add}434343556",

"accountName": "測試",

"billDate": "08",

"billMonth": "20150${__Random(1,9,)}",

"cardNo": "${add}25622356788251",

"currentPayment": "欠款459.80",

"paymentDate": "2015-0${__Random(1,9,)}-25 09:00:00",

}

5、設置線程組循環測試,點擊運行

技術分享

簡單的性能測試


當前測試環境下,TPS峰值為317.6次/秒。根據業務預期的客戶日常訪問量50次每分鐘,按照每客戶訪問一次調用全部13個接口計算,則業務預期為50*13=650次/分=10.83次/秒。測試結果表明系統的業務處理能力符合業務預期。

由響應時間來看,保存XXXX這個接口的響應時間明顯較慢,在50線程並發的時候,90%響應時間為7.7秒,而75線程並發的時候則達到了24秒,建議進行優化。

由點擊率,響應時間,TPS統計圖可知,整個穩定性測試期間,系統反應很穩定。

詳細測試結果:

1. 負載測試

場景運行測試時間:10分鐘

技術分享

2. 穩定性測試

場景運行時間:1小時

技術分享

Jmeter接口測試項目實戰