性能测试-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.zip1 注意盡量不要放在工程目錄下,預防出現權限問題
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 computerdatabaseimport 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要求的。
總結
以上是生活随笔為你收集整理的性能测试-Gatling(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决Win10 Virtualbox5.
- 下一篇: GMQ集团推出全球创新型金融衍生品交易平