Slide 1

Slide 1 text

Mar 08, 2019 | @ariaki4dev | #techdo 砲をぶっ放せ Let Measure Performance with Gatling

Slide 2

Slide 2 text

Mar 08, 2019 | @ariaki4dev | #techdo 2 About Me ariaki ( ありあき ) @ariaki4dev #engineers_lt , #techdo MEDIA DO Co.,Ltd. Tokyo, Japan https://press.forkwell.com/entry/2019/01/30/engineer_component https://shiganai.org/ep/sp52-ariaki4dev https://note.mu/ariakira

Slide 3

Slide 3 text

Mar 08, 2019 | @ariaki4dev | #techdo 3 What’s Gatling ● Webアプリケーションの負荷テストツール ● オープンソース(※製品版あり) ● 製品の開発言語はScala ● シナリオファイルはScala DSLで書ける ● ハイパフォーマンス ● レポートHTMLが綺麗 ● https://gatling.io/

Slide 4

Slide 4 text

Mar 08, 2019 | @ariaki4dev | #techdo https://gatling.io/ https://jmeter.apache.org/ http://grinder.sourceforge.net/ http://tsung.erlang-projects.org/ https://www.microfocus.com/produc ts/loadrunner-load-testing/ 4 Trends 主要なロードテストツール

Slide 5

Slide 5 text

Mar 08, 2019 | @ariaki4dev | #techdo 5 Trends

Slide 6

Slide 6 text

Mar 08, 2019 | @ariaki4dev | #techdo Demonstration

Slide 7

Slide 7 text

Mar 08, 2019 | @ariaki4dev | #techdo 7 How to Install 直接インストール パッケージマネージャを利用 1. 以下よりダウンロード 2. 適当な場所に解凍 3. 以下のファイルを実行 [macOS/Linux] bin/gatling.sh [Windows] bin/gatling.bat ● maven ● sbt

Slide 8

Slide 8 text

Mar 08, 2019 | @ariaki4dev | #techdo 8 How to Install 1. それぞれ最新版をインストールします ○ JDK 11 (current) ○ Scala sbt (current) 2. 環境変数を設定します ○ JAVA_HOME ○ SBT_HOME 3. 以下のコマンドでデモプロジェクトをダウンロードします $ git clone https://github.com/gatling/gatling-sbt-plugin-demo.git sbt使用時の詳細手順

Slide 9

Slide 9 text

Mar 08, 2019 | @ariaki4dev | #techdo 9 How to Install sbt使用時の詳細手順 4. リポジトリのディレクトリに移動し、 sbt を実行します ※初回実行時のみパッケージダウンロードが必要なため時間がかかります 5. sbt シェルが起動します ○ 全体テスト … > gatling:test ○ 特定テスト … > gatling:testOnly [クラス名]

Slide 10

Slide 10 text

Mar 08, 2019 | @ariaki4dev | #techdo 10 How to Install project build.properties plugins.sbt src build.sbt + resources scala … ビルド設定を記述する … プラグインを読込設定する … テスト時に読み込まれるリソースファイルを配置する … テスト時に読み込まれるシナリオファイルを配置する … ビルドオプションを設定する ディレクトリ構成

Slide 11

Slide 11 text

Mar 08, 2019 | @ariaki4dev | #techdo 11 Test Code src/test/scala/mediado/TestSimulation.scala ①クライアント設定 ②シナリオ作成 ③テスト実行設定

Slide 12

Slide 12 text

Mar 08, 2019 | @ariaki4dev | #techdo 12 Test Code シナリオ設定 シナリオ名 リクエスト名 リクエストパス レスポンス検証 ● HTTP/1.x 200を返却している ●

HOME

タグが存在する 複数手続きを1シナリオで実行

Slide 13

Slide 13 text

Mar 08, 2019 | @ariaki4dev | #techdo 13 Test Code シナリオ設定例

Slide 14

Slide 14 text

Mar 08, 2019 | @ariaki4dev | #techdo 14 Test Code シナリオ設定例

Slide 15

Slide 15 text

Mar 08, 2019 | @ariaki4dev | #techdo 15 Test Code テスト実行設定 設定項目 解説 nothingFor(10 seconds) 10秒間何もしない atOnceUsers(10) 10クライアントから同時に1回接続 rampUsers(10) over (5 seconds) 5秒かけて10クライアントまで線形に増加 constantUsersPerSec(10) during (5 seconds) 5秒間、1秒あたり10クライアントが接続 rampUsersPerSec(10) to 20 during (5 minutes) 5分間かけて、1秒あたり10→20クライアントに増加 heavisideUsers(100) over(5 minutes) ヘヴィサイドの段階関数を元にクライアント数を増加 https://gatling.io/docs/3.0/general/simulation_setup/

Slide 16

Slide 16 text

Mar 08, 2019 | @ariaki4dev | #techdo 16 Conclude ● Scala DSLでシナリオを柔軟に作成できる ○ コード書くの楽しい ○ ソース管理しやすい(コードなので) ○ 複雑なシナリオ作成もでき、GUIより辛くない ● Enterpriseレベルサポートがある ● JMeterと比べて機能が少なく残念な部分もある

Slide 17

Slide 17 text

Build Something Amazing written by ariaki4dev