便利すぎる負荷試験テストツールGatlingの使い方~ブラウザ操作記憶編~

More than 3 years have passed since last update.

前回の便利すぎる負荷試験テストツールGatlingの使い方~自力ソース編~に続き、今回はブラウザで操作した内容をそのままソースに落としてテストする方法です。

これを使えば自分でソース書かないでも、ブラウザ操作がそのままソースになるのでテスト作る時にも楽ですね!!

まずはRecoderと呼ばれるGUIを呼び出しましょう

#Gatlingのインスールされたディレクトリに移動

sh bin/recorder.sh

上記のコマンド叩くとこんな画面が立ち上がります。

スクリーンショット 2015-12-07 20.02.38.png

ブラウザ操作を記憶するにはプロキシ設定が必要なので、macのプロキシ設定画面を開きます。

wifiアイコンのとこから "ネットワーク"環境設定を開く>詳細>プロキシタブ

ここで、Webプロキシ(HTTP)にチェックを入れてWebプロキシサーバに

localhost:8000

を入力しましょう

スクリーンショット 2015-12-07 20.08.42.png

これで準備はOKです!

この後は

Recoder GUIのStart!ボタン押した後の操作が記憶されるので、まずは余計なタブとか全部閉じましょう。

その上でブラウザのシークレットモードでやったほうが確実です。

今回は以下のgatlingのテスト用に用意されているサイトを使ってみたいと思います。

http://computer-database.gatling.io/computers

まずStartボタン押してから上記のサイトにアクセス

スクリーンショット 2015-12-07 20.22.30.png

次は「ASUS」とFilterのテキストボックスに入れてFilter by nameボタンをクリックしましょう。

今回はここでrecoderGUIのSTOPボタンを押すと今までのコードがソース化されます。

ソースは以下の場所に出来てるはず。

GATLING_HOME/user-files/simulations/RecordedSimulation.scala

中身ができてますね

import scala.concurrent.duration._

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.jdbc.Predef._

class RecordedSimulation extends Simulation {

val httpProtocol = http
.baseURL("http://computer-database.gatling.io")
.inferHtmlResources()

val headers_0 = Map("Upgrade-Insecure-Requests" -> "1")

val uri1 = "http://computer-database.gatling.io"

val scn = scenario("RecordedSimulation")
.exec(http("request_0")
.get("/")
.headers(headers_0))
.pause(8)
.exec(http("request_1")
.get("/computers?f=ASUS")
.headers(headers_0))
.pause(2)
.exec(http("request_2")
.get("/computers/20607")
.headers(headers_0))

setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
}

実行方法は

sh bin/gatling.sh

とすると、先ほど記録したRecodedSimulationが選択肢に出てきます

Choose a simulation number:

[0] RecordedSimulation
[1] computerdatabase.BasicSimulation
[2] computerdatabase.advanced.AdvancedSimulationStep01
[3] computerdatabase.advanced.AdvancedSimulationStep02
[4] computerdatabase.advanced.AdvancedSimulationStep03
[5] computerdatabase.advanced.AdvancedSimulationStep04
[6] computerdatabase.advanced.AdvancedSimulationStep05

なので、0を選択して実行すると先ほど記憶した操作が実行されました!!

APIのテストや、WEB画面のテストもこれ使えばすぐテスト行えますね!!

次回は戻り値のチェックなど行ってみたいと思います。


続き

便利すぎる負荷試験テストツールGatlingの使い方~戻り値チェック編~