1. config 설정
config:
target: 'http://localhost:3001/api'
phases:
- duration: 5 // 총 5초동안
arrivalRate: 1 // 1초에 1개의 데이터를 처리함
name: 'Warm up'
defaults:
headers:
User-Agent: 'Artillery'
2. payload - csv 파일 불러오기
payload:
path: './data.csv'
fields:
- 'email'
- 'password'
loadAll: false
order: sequence
여기서 loadAll: false, order: sequence를 해야 모든 데이터를 하나씩 불러올 수 있게 된다.
loadAll: true를 해도 작동은 하지만, 하나의 데이터만 지정해서 처리하는 것만 가능함.
3. scenario 작성
scenarios:
- name: "Search and buy"
flow:
- log: "로그인 시도: 이메일 {{ email }} 비밀번호 {{ password }}"
- post:
url: '/v1/auth/sign-in'
json:
email: "{{email}}"
password: "{{password}}"
capture:
- json: "$.data.accessToken"
as: "accessToken"
중간에 log를 사용해서 로그를 찍을 수 있음
json: 실제 테스트에서 body에 넣을 값
headers: 실제 테스트에서 헤더에 토큰으로 넣을 값
capture: 테스트에서 res로 받아온 값을 as로 지정한 변수에 넣어서 다음 동작에 사용할 수 있도록 함, 아래 코드 참고
scenarios:
- name: "Search and buy"
flow:
- log: "로그인 시도: 이메일 {{ email }} 비밀번호 {{ password }}"
- post:
url: '/v1/auth/sign-in'
json:
email: "{{email}}"
password: "{{password}}"
capture:
- json: "$.data.accessToken"
as: "accessToken"
- get:
url: '/v1/users/me'
headers:
authorization: "Bearer {{accessToken}}"
- log: "--{{user}}--"
로그인 후 accessToken으로 받아온 값을 get의 headers에 Bearer 토큰으로 넣어주어 내 정보 조회 테스트까지 진행함
전체코드
config:
target: 'http://localhost:3001/api'
phases:
- duration: 5
arrivalRate: 1
name: 'Warm up'
defaults:
headers:
User-Agent: 'Artillery'
payload:
path: './data.csv'
fields:
- 'email'
- 'password'
loadAll: false
order: sequence
scenarios:
- name: "Search and buy"
flow:
- log: "로그인 시도: 이메일 {{ email }} 비밀번호 {{ password }}"
- post:
url: '/v1/auth/sign-in'
json:
email: "{{email}}"
password: "{{password}}"
capture:
- json: "$.data.accessToken"
as: "accessToken"
- get:
url: '/v1/users/me'
headers:
authorization: "Bearer {{accessToken}}"
- log: "--{{user}}--"
'TIL' 카테고리의 다른 글
TIL 240813 - node media server에서 hls 변환 시 화질 fission 방법 (0) | 2024.08.14 |
---|---|
TIL 240812 - ubuntu에서 node.js에 할당된 메모리 한도 늘리기 (0) | 2024.08.12 |
TIL 240807 - node-media-server 트러블슈팅 (1) (0) | 2024.08.07 |
TIL 240805 - 로컬에서 https 테스트하기 + 인증서 발급 (0) | 2024.08.05 |
TIL 240802 - unsigned 속성 / foreign key 에러 (0) | 2024.08.02 |