性能測試之gatling詳解

大家接觸過形形色色的壓力測試工具,例如lr,jmeter各有各的優點,那麼最近在做介面測試中涉及到壓力測試,小弟就看到一個好用的工具俗稱「加特林」英文Gatling,就簡單研究一番,今天為大家分享一下。

Gatling是一款基於Scala 開發的高性能伺服器性能測試工具,它主要用於對伺服器進行負載等測試,並分析和測量伺服器的各種性能指標。目前僅支持http協議,可以用來測試web應用程序和RESTful服務

官網:gatling.io/

優點:

1. gatling和其他壓力工具相比有個好處是放在同一內網環境下linux伺服器上,這樣避免其他壓力使用辦公機使用共有網路,網路情況對壓力測試的影響。

2 生成比較詳細的壓力測試報告。

3 能夠更靈活的編寫壓力腳本。

4 可以jenkins集合,將壓力測試整合自動化持續集成中

上面都是乾貨,下面為大家直接實戰,我是通過java+maven+scala搭建的一個環境以及Demo.

1. 創建一個Maven項目

2、 安裝Scala插件

3、pom添加核心依賴包

<dependency> <groupId>io.gatling</groupId> <artifactId>gatling-app</artifactId> <version>${gatling.version}</version> </dependency> <dependency> <groupId>io.gatling</groupId> <artifactId>gatling-recorder</artifactId> <version>${gatling.version}</version> </dependency> <dependency> <groupId>io.gatling.highcharts</groupId> <artifactId>gatling-charts-highcharts</artifactId> <version>${gatling.version}</version> </dependency>-----太多我就不一一貼出,有興趣微信公眾號或者qq群聯繫我。

4. 下面就是Demo/** * Created by Administrator on 2017/12/10. */import io.gatling.core.Predef._import io.gatling.http.Predef._class ABTest extends Simulation { //1.主要實現模擬不同用戶重複100次執行結果 object Search { //val feeder = csv("D:\gatling-2.2.5\gatling-charts-highcharts-bundle-2.2.5\user-files\data\appdata.csv") val search =repeat(100) {//重複次數100次 //讀取csv數據 val feeder = csv("D:\gatling-2.2.5\gatling-charts-highcharts-bundle-2.2.5\user-files\data\appdata.csv").random feed(feeder) .exec(http("ABTest") .get("/abTest?appkey=${appkey}&deviceid=${deviceid}")) .pause(1) //exec()里的參數就是我們的執行動作,http("本次請求的名稱").get("本次http get請求的地址") } } val httpConf = http .baseURL("http://10.168.99.209:8080/abapi") ////設置請求的根路徑 val users = scenario("Users").exec(Search.search) // 聲明Scenario,指定我們的請求動作 setUp( users.inject(atOnceUsers(400)).protocols(httpConf)) //atOnceUsers立馬啟動的用戶數,可以理解為並發數}讀取Excl數據500個用戶D:\gatling-2.2.5\gatling-charts-highcharts-bundle-2.2.5\user-files\data\appdata.csv

5、自動生成的測試報告:

概覽800ms下響應的請求次數10,右邊的餅狀圖顯示成功請求10個,失敗0個。注意在Global頁面里的圖都是整體的統計(一個測試計劃可包含多個http請求),如果需要看某個請求的情況可點擊到Details頁面,並選取對應的請求

推薦閱讀:

回家前,我告訴我媽我一個月13000多了...
這樣考慮測試點,做個合格的測試工程師
高級測試工程師必備的測試方法

TAG:自動化測試 | 性能測試 | 測試工程師 |