性能測試-Gatling(一)


背景說明轉自 : http://www.infoq.com/cn/articles/new-generation-server-testing-tool-gatling/

以前Jmeter用的多,如文檔中所說,實際使用后發現Jmeter多用戶時很容易並發並發不均勻,導致一些數據統計不准確。

Jmeter & Gatling的QPS統計

 

因此我們選用gatling來進行http的壓測

實踐步驟:

http://gatling.io/docs/current/quickstart/

一  下載

wget  https://repo1.maven.org/maven2/io/gatling/highcharts/gatling-charts-highcharts-bundle/2.2.5/gatling-charts-highcharts-bundle-2.2.5-bundle.zip unzip gatling-charts-highcharts-bundle-2.2.5-bundle.zip

1 注意盡量不要放在工程目錄下,預防出現權限問題

2 注意java版本的匹配  java -version

3 gatling的默認編碼方式為utf-8,若需更改,編譯conf/gatling.conf文件

二 檢查環境 

cd bin && sudo sh gatling.sh

正確情況如下:

選取一個要跑的腳本需要,兩次enter:

將提示的result目錄下內容打開如下:

galing需要java環境,若無則需要配置;注意使用權限

三  應用

環境調通了,就開始寫自己的scala腳本進行壓測了,不熟悉scala的同學也沒有關系,記住幾個地方,抄一下就可以了~

 1  單場景測試 

     較為簡單的單場景demo:get請求百度,不同的參數    

復制代碼
package computerdatabase

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

class MyTestSimulation extends Simulation { val httpConf = http .baseURL("http://www.baidu.com") //① .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") .acceptLanguageHeader("en-US;q=0.5") .acceptEncodingHeader("gzip, deflate") .userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0") val feeder = csv("baidu_search.csv").random //② val scn = scenario("MyTestSimulation") .feed(feeder) //③ .exec(http("request_1") //④ .get("/s?${params}") //⑤ .check(status.is(200))) setUp(scn.inject(constantUsersPerSec(150) during (30 seconds) ).protocols(httpConf)) //⑥
復制代碼

准備csv數據在data目錄下,文件名為baidu_search.csv,內容如下:

params ie=utf-8&wd=1 ie=utf-8&wd=2 ie=utf-8&wd=3

注釋:

class后面的名字會出現執行gatling后的可選列表里

① baseurl即域名

② 定義要讀取的參數文件

③ 把指定讀取參數文件定義的變量寫進來

④ 這個名字會用在生成的報告里

⑤ 讀取參數文件中的列

⑥設置每秒請求數qps和持續時間duringTime

 

 啦啦啦,找到一個小抄,各種參數的含義解釋,簡直開掛,嚇哭我了:

http://gatling.io/docs/current/cheat-sheet/

 

 

 

四  問題&解決

我第一次使用dev權限,該權限下java  javac命令均可正確使用,但是執行失敗,更改為root可行,覺得可能是gatling要求的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM