- License: Apache 2.0
- Multithreaded: Yes
- Scriptable: Yes
- Written in: C
Install
다음 명령어를 이용하여 설치할 수 있다.
# Mac OS
brew install wrk
How to use
10개의 thread를 생성하여 총 100개의 connection 요청을 수행(thread 별로 10개씩)하는 테스트를 30초 동안 진행할 경우, 다음과 같이 사용하면 된다.
wrk -t10 -c100 -d30s http://localhost:8000/api/ping
Flags
- -c, --connections <N> : open 상태로 유지할 connection 수
- -d, --duration <T> : 테스트 수행 시간
- -t, --threads <N> : 사용할 스레드 수
- -s, --script <S> : 읽어올 Lua 스크립트 파일
- -H, --header <H> : 요청에 헤더 값 추가
- --latency : latency 통계를 출력한다.
- --timeout <T> : 요청 타임 아웃
Results
결과는 다음과 같은 형태로 확인 가능하다.
Running 30s test @ http://localhost:8000/api/ping
10 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 180.13ms 48.17ms 630.13ms 81.47%
Req/Sec 55.08 18.74 151.00 71.85%
16469 requests in 30.10s, 5.34MB read
Socket errors: connect 0, read 350, write 1, timeout 0
Requests/sec: 547.15
Transfer/sec: 181.67KB
POST method를 사용하기 위해서는 Lua 스크립트를 작성하여 전송해야 한다.
다음과 같이 스크립트 파일을 불러온다.wrk.method = "POST" wrk.body = "{\"text\": \"양자 컴퓨팅이란 무엇인가?\"}" wrk.headers["Content-Type"] = "application/json" wrk.headers["Authorization"] = "Api-Key API Key Value"
wrk -t1 -c1 -d1s -s script.lua http://localhost:8000/api/post_data
'일하는 > Cloud, Web' 카테고리의 다른 글
[Django][Docker] Django + Nginx Container 만들기 (0) | 2021.12.13 |
---|---|
[Testing] 웹 서버 성능 테스트 / Performance Testing (0) | 2021.12.13 |
[Testing][웹 서버 성능 테스트 도구] Apache Bench (0) | 2021.11.11 |
Django REST Framework API Key 사용법 (0) | 2021.06.25 |
[AWS] EC2 인스턴스에서 CodeCommit 사용 설정하기 (0) | 2021.06.07 |