效能測試之gatling詳解
大家接觸過形形色色的壓力測試工具,例如lr,jmeter各有各的優點,那麼最近在做介面測試中涉及到壓力測試,小弟就看到一個好用的工具俗稱“加特林”英文Gatling,就簡單研究一番,今天為大家分享一下。
Gatling是一款基於Scala 開發的高效能伺服器效能測試工具,它主要用於對伺服器進行負載等測試,並分析和測量伺服器的各種效能指標。目前僅支援http協議,可以用來測試web應用程式和RESTful服務
官網:https://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
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頁面,並選取對應的請求
大家如果有感興趣的方向文章,可以直接給我留言,我會去寫你們感興趣的文章。
想要了解,獲取更多和測試相關的知識請新增此群,本群提供App、Web等Ui自動化,App效能測試,介面功能,
介面自動化測試,jemeter、loadrunner工具介紹,靜態程式碼掃描實踐;測試理論,
測試流程。測試管理。
如果有問題可以聯絡QQ:2171029637
QQ郵箱:2171029637@qq.com
App自動化及Web自動化全棧測試:群號544126564(想要更多資料立即加入此群)