[testing] [Optimization] JMeter 을 사용한 AB테스트

SINGING BIRD·2023년 11월 11일
  • JMeter 를 다운로드 합니다.

맥북의 경우 tgz 파일 다운로드 후 압축을 풉니다.


  • 압축 푼 폴더의 다음 경로의 파일을 실행합니다.
  • bin 폴더로 들어가서 맥에서는 ./jmeter.bat 명령어를 실행하면 됩니다.
apache-jmeter-5.6.2/bin/jmeter.bat

  • 다음과 같은 GPU 프로그램이 실행됩니다.


  • thread group 을 생성합니다.


  • thread group 설정은 다음과 같이 설정하였습니다.

number of thread : 300 (동시 요청수)

seconds : 1 (몇초에 한번 요청)

loop count : infinite (몇번 반복할 것인지)


  • http request 를 생성합니다.


  • http request 설정은 다음과 같이 하였습니다.

protocol : https

server name : offonclass.com (실서버에서 테스트함)

방식 : post

path : /api/test/saveNote/self

body data :

{
    "targetArray": [105, 106, 107, 108, 109, 110, 111],
    "poolArray": [40, 41, 47, 56, 60]
}


(

  • 참고 : 테스트용 api 설계 방법

Note 테이블을 업데이트하는 api 를 테스트용으로 만들어주었는데,

같은 내용을 중복해서 업데이트 하게되면 db 에서 같은 데이터라고 판단하고 업데이트를 하지 않습니다.

db 에 샘플 데이터 10개,

업데이트 타겟이 될 데이터 10개 정도를 생성하였고

poolArray 는 샘플 데이터를 저장해둔 레코드의 idx 배열 이고

targetArray 는 업데이트 할 데이터의 레코드의 idx 배열로 설정해주고

poolArray 중에 랜덤으로 데이터를 하나 가져와서 targetArray 에 랜덤으로 하나를 선택하여 저장하도록 구현하였습니다.

)


  • 리스너는 view results tree, summary report, view results in table 이렇게 세가지를 추가해주었습니다. 리스너는 테스트의 요청 결과를 조회하는 탭으로 여러가지가 있습니다.


  • http header manager 를 추가해줍니다.


  • nodejs 서버에서 데이터를 파싱할 수 있도록 Content-Type / application/json; charset=utf-8 설정해줍니다.


  • http cookie manager 를 추가해줍니다.


  • cookie 에 토큰 등 인증정보가 있는 경우 추가해줍니다.


  • start 버튼을 실행하면 요청이 시작되고 결과를 확인 할 수 있습니다


profile
good things take time

0개의 댓글