0
0

More than 3 years have passed since last update.

勉強メモ5_アップされてる記事を元にgatling構築

Last updated at Posted at 2020-09-27

gatlingを使うため、ApacheとPHP導入

以下↓↓の記事を参考
Apache導入
https://qiita.com/sango/items/b045a1da17606eda6f82
PHP導入
https://qiita.com/sango/items/a08c5b04df7125aaaad3
https://techacademy.jp/magazine/23054

---------------Apache導入↓↓-------------------------
#ルートに変更
su - root
#apacheインストール
yum -y install httpd
#apache起動
systemctl start httpd
#apacheが動いてるかブラウザで確認
http://127.0.0.1/
---------------PHP導入↓↓-------------------------
#PHPインストール
yum -y install php
#phpファイル作成するため、移動
cd /var/www/html/

/var/www/html/にPHPファイルを3つ作成

api1.php
<?php
// 連想配列用意
$array = [
    'tokyo' => [
        '品川',
        '五反田',
        '三軒茶屋',
        '四谷'
    ]
];

// Origin null is not allowed by Access-Control-Allow-Origin.とかのエラー回避の 為、ヘッダー付与
header("Access-Control-Allow-Origin: *");

#echo json_encode($array);
echo json_encode($array,JSON_UNESCAPED_UNICODE);
?>
api2.php
<?php
// 連想配列用意
$array = [
    'kanagawa' => [
        '横浜',
        '相模原',
        '湘南',
        '鎌倉'
    ]
];

// Origin null is not allowed by Access-Control-Allow-Origin.とかのエラー回避の 為、ヘッダー付与
header("Access-Control-Allow-Origin: *");

#echo json_encode($array);
echo json_encode($array,JSON_UNESCAPED_UNICODE);
?>
api3.php
?php
// 連想配列用意
$array = [
    'saitama' => [
        '所沢',
        '狭山',
        '川口',
        '浦和',
        '小手指',
        '飯能'
    ]
];

// Origin null is not allowed by Access-Control-Allow-Origin.とかのエラー回避の 為、ヘッダー付与
header("Access-Control-Allow-Origin: *");

#echo json_encode($array);
echo json_encode($array,JSON_UNESCAPED_UNICODE);
?>

PHP実行

#まずはApache再起動
systemctl restart httpd
#ブラウザでアクセス(JSON形式で市の名称がでればOK)
http://127.0.0.1/api1.php
http://127.0.0.1/api2.php
http://127.0.0.1/api3.php

gatling 構築

以下の記事を参考に構築
https://medium.com/eureka-engineering/gatring-stress-test-14ac5efdfcbc

#rootフォルダ移動
su - root
cd /root
#gatlingのライブラリーをダウンロード
curl -O https://repo1.maven.org/maven2/io/gatling/highcharts/gatling-charts-highcharts-bundle/3.3.1/gatling-charts-highcharts-bundle-3.3.1-bundle.zip
#gatlingのライブラリーを解凍
unzip gatling-charts-highcharts-bundle-3.3.1-bundle.zip
#javaがインストールされてるか確認(java8や11がないと動かないらしい)
java -version
#gatlingの実行ソース作成(BasicSimulation.scalaのベースの実行ファイルをコピー)
cd gatling-charts-highcharts-bundle-3.3.1/user-files/simulations/
mkdir api
cp -p computerdatabase/BasicSimulation.scala api/ApiSimulation.scala

上記でコピーした(ApiSimulation.scala)を作成

package api //パッケージ名指定

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration.
_
class ApiSimulation extends Simulation {

val httpProtocol = http
 .baseUrl("http://127.0.0.1")//ベースURL
 .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
 .doNotTrackHeader("1")
 .acceptLanguageHeader("en-US,en;q=0.5")
 .acceptEncodingHeader("gzip, deflate")
 .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0")

//7秒おきに /api1.php /api2.php /api3.phpにGETするだけの簡単なテスト
val scn = scenario("api")
 .exec(
 http("request_1")
 .get("/api1.php")//作成したPHPファイル指定
 )
 .pause(7)
 .exec(
 http("request_2")
 .get("/api2.php")//作成したPHPファイル指定
 )
 .pause(7)
 .exec(
 http("request_3")
 .get("/api3.php")//作成したPHPファイル指定
 )
setUp(scn.inject(atOnceUsers(1)).protocols(httpProtocol)) //1Userで並列実行
}

gatling実行

#gatling実行シェルファイルに移動
cd /root/gatling-charts-highcharts-bundle-3.3.1/bin/
#gatling実行
./gatling.sh
GATLING_HOME is set to /root/gatling-charts-highcharts-bundle-3.3.1
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
Choose a simulation number:
     [0] api.ApiSimulation
     [1] computerdatabase.BasicSimulation
     [2] computerdatabase.advanced.AdvancedSimulationStep01
     [3] computerdatabase.advanced.AdvancedSimulationStep02
     [4] computerdatabase.advanced.AdvancedSimulationStep03
     [5] computerdatabase.advanced.AdvancedSimulationStep04
     [6] computerdatabase.advanced.AdvancedSimulationStep05
0 0を選択する
Select run description (optional)
api: ←api:って入力する
Simulation api.ApiSimulation started...

================================================================================
2020-09-27 16:20:23                                           5s elapsed
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=1      KO=0     )
> request_1                                                (OK=1      KO=0     )

---- api -----------------------------------------------------------------------
[--------------------------------------------------------------------------]  0%
          waiting: 0      / active: 1      / done: 0
================================================================================


================================================================================
2020-09-27 16:20:28                                          10s elapsed
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=2      KO=0     )
> request_1                                                (OK=1      KO=0     )
> request_2                                                (OK=1      KO=0     )

---- api -----------------------------------------------------------------------
[--------------------------------------------------------------------------]  0%
          waiting: 0      / active: 1      / done: 0
================================================================================


================================================================================
2020-09-27 16:20:32                                          14s elapsed
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=3      KO=0     )
> request_1                                                (OK=1      KO=0     )
> request_2                                                (OK=1      KO=0     )
> request_3                                                (OK=1      KO=0     )

---- api -----------------------------------------------------------------------
[##########################################################################]100%
          waiting: 0      / active: 0      / done: 1
================================================================================

Simulation api.ApiSimulation completed in 14 seconds
Parsing log file(s)...
Parsing log file(s) done
Generating reports...

================================================================================
---- Global Information --------------------------------------------------------
> request count                                          3 (OK=3      KO=0     )
> min response time                                      4 (OK=4      KO=-     )
> max response time                                     60 (OK=60     KO=-     )
> mean response time                                    26 (OK=26     KO=-     )
> std deviation                                         24 (OK=24     KO=-     )
> response time 50th percentile                         14 (OK=14     KO=-     )
> response time 75th percentile                         37 (OK=37     KO=-     )
> response time 95th percentile                         55 (OK=55     KO=-     )
> response time 99th percentile                         59 (OK=59     KO=-     )
> mean requests/sec                                    0.2 (OK=0.2    KO=-     )
---- Response Time Distribution ------------------------------------------------
> t < 800 ms                                             3 (100%)
> 800 ms < t < 1200 ms                                   0 (  0%)
> t > 1200 ms                                            0 (  0%)
> failed                                                 0 (  0%)
================================================================================

Reports generated in 0s.
Please open the following file: /root/gatling-charts-highcharts-bundle-3.3.1/results/apisimulation-20200927072016312/index.html

上記の最後に「file: /root/gatling-charts-highcharts-bundle-3.3.1/results/apisimulation-20200927072016312/index.html」
と記載されているので、ブラウザでアクセスしてみる。
アクセスすると、下記みたいなのが表示されたよ。
キャプチャ.JPG

一旦、ここまでで終了

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0