<個人備忘錄>Gatling接口測試簡單使用

Gatling 的介紹和JMeter的性能對比請參看新一代服務器性能測試工具Gatlinghtml

這裏記錄本身簡單使用心得.數據庫

1.下載安裝瀏覽器

直接下載zip文件到本地目錄,解壓目錄便可。下載地址Gatling最新版2.17下載   服務器

文件目錄以下app

result:保存生成結果async

user-files:測試的scala 腳本文件工具

2.本次測試採用的是一個Play rest 工程。Play rest 工程----helloplay  其中有多個接口須要同步測試(刪除,更新操做類同)post

POST    /user                                      controllers.Application.insert     //插入數據接口
GET     /user/all                                   controllers.Application.findAll    // 查詢接口全部
GET    /user/:id                                    controllers.Application.findasync(id:Long)     //查詢接單條

編寫測試代碼,測試代碼放在$GATLING_HOME/user-files/simulations/computerdatabase 目錄下性能

本例簡單測試簡單代碼以下測試

package jiang

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class jiang_9_17 extends  Simulation {

    // 測試接口部分
    // 1. 查詢
    object Search {
        val search  = exec(http("Home").get("/")).pause(1)
                            .exec(http("GetAll").get("/user/all ")).pause(1)
                            .exec(http("Query").get("/user/10")).pause(1)        
    }
    // 2. 插入
    object Edit {
        val insert = exec(http("Insert").post("/user").body(StringBody("""{"name":"han"}""")).asJSON).pause(1)
    }

// 設置瀏覽器信息
    val httpConf = http
    .baseURL("http://localhost:9000")
    .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
    .doNotTrackHeader("1")
    .acceptLanguageHeader("zh-CN,zh;q=0.8,en;q=0.6")
    .acceptEncodingHeader("gzip, deflate")
    .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0")

// 設置權限    user只能查詢,admin能夠查詢和插入數據
  val users = scenario("Users").exec(Search.search) // regular users can't Insert
  val admins = scenario("Admins").exec(Search.search, Edit.insert)

  // 設置請求次數 以下爲在10s內 user 查詢執行1000次,admin 查詢和插入執行100次
  setUp(
    users.inject(rampUsers(1000) over (10 seconds)),
    admins.inject(rampUsers(100) over (10 seconds))
  ).protocols(httpConf)
}

執行gatling腳本 ./$GATLING_HOME/bin/gatling.sh

選擇本次須要執行的腳本文件[6]jiang.jiang_9_17     //  package 下的jiang_9_17 文件

下面兩步選擇默認就能夠了

 而後能夠看到執行完成結果

$GATLING_HOME/result  目錄下生成了本次測試的可視化結果

<如本例>用瀏覽器打開index.html 文件瀏覽詳細信息(圖一爲整體,二爲每一個接口對應信息)

因爲這次測試數據庫爲本地,查詢比較快.所以接口請求時間都比較短。

更多資料請參考官網Gatling.io

相關文章
相關標籤/搜索