Gatling 환경 구축

5330 단어 DockerGatling

날과 씨

  • 자세하진 않지만 부하 테스트
  • 알려진 로드 테스트 도구는 JMater 또는 Gatling 정도
  • xml을 쓰기 싫어서 Scara로 쓴 Gatling(Scara도 잘 안 쓴다)
  • Local과 공격 서버의 구축 변화가 번거롭기 때문에 Docker
  • 프로비저닝

    ├── docker-compose.yaml
    ├── gatling
    │   └── Dockerfile
    ├── nginx
    │   └── default.conf
    └── scenario
       ├── resources    シナリオで使うやつ置き場(user-passwordのCSVとか)
       └── simulations シナリオのClass用ディレクトリ
    

    Gatling용 환경


    ./gatling/Dockerfile
    FROM openjdk:11
    ENV LANG C.UTF-8
    
    RUN apt-get update -y \
        && apt-get upgrade -y \
        && apt-get install -y wget bsdtar
    
    RUN mkdir /workdir && cd /workdir
    WORKDIR /workdir
    
    RUN wget -qO- https://repo1.maven.org/maven2/io/gatling/highcharts/gatling-charts-highcharts-bundle/3.3.1/gatling-charts-highcharts-bundle-3.3.1-bundle.zip \
        | bsdtar -xvf-
    ENV GATLING_HOME=/workdir/gatling-charts-highcharts-bundle-3.3.1
    RUN ln -s /workdir/gatling-charts-highcharts-bundle-3.3.1/bin/gatling.sh /usr/local/bin/gatling && chmod a+x /usr/local/bin/gatling
    
    

    docker-compose

  • gatling~/user-file는 대본 방치장, Host는volumeMount
  • 결과 HTML Mount에서 nginx
  • 어쨌든 입력 대기
  • 며칠 있다가 일어나면 대본 막 뛰어다녀
  • ./docker-compose.yaml
    version: "3"
    services:
      gatling:
        build: ./gatling
        stdin_open: true
        tty: true
        volumes:
          - ./scenario/:/workdir/gatling-charts-highcharts-bundle-3.3.1/user-files
          - data:/workdir/gatling-charts-highcharts-bundle-3.3.1/results
        command: /bin/sh
    
      nginx:
        image: nginx:latest
        links:
          - gatling
        ports:
          - 80:80
        volumes:
          - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
          - data:/var/html
    
    volumes:
      data:
        external: true
    
    

    결과 확인 Nginx 설정

  • 문서 경로에 설치
  • 결과를 이해하기 위해 autoindex
  • ./nginx/default.conf
    server {
        listen       80;
        server_name  localhost;
        autoindex on;
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /var/html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /var/html;
        }
    }
    
    

    실행(잠정)

  • gatling.sh를 이동하면 대화 형식으로 실행할 방안을 선택할 수 있습니다
  • 
    $ docker-compose up -d
    $ docker-compose exec gatling gatling [-s TestClassName]
    GATLING_HOME is set to /workdir/gatling-charts-highcharts-bundle-3.3.1
    TestCodelikeAccess is the only simulation, executing it.
    Select run description (optional)
    
    Simulation TestCodelikeAccess started...
    .
    .
    .
    Reports generated in 0s.
    Please open the following file: /workdir/gatling-charts-highcharts-bundle-3.3.1/results/testcodelikeaccess-20191212105057322/index.html
    
    

    결과 확인


  • 브라우저에서 확인http://localhost 결과 열기

  • 좋은 웹페이지 즐겨찾기