Vegeta 로드 테스트 빠른 자습서, GET 예제 포함
부하 테스트란 무엇입니까?
간단하게 말하면 부하 테스트는 일부 병렬 요청을 모의하여 응용 프로그램을 테스트함으로써 응용 프로그램이 유사한 실제 장면에서의 행위를 확정하는 것을 의미한다.기본적으로 여러 사용자가 동시에 응용 프로그램을 사용하려고 시도할 때 응용 프로그램이 어떻게 응답하는지 테스트했다.
There are many ways to load test applications/APIs and Vegeta is one of the easiest tools to perform load testing on your APIs or applications.
나는 일찍이 fast and not so fast test에 관한 문장을 쓴 적이 있는데, 이것은 테스트에 관한 더 많은 문장을 읽는 것이다.
선결 조건
주요 주제를 시작하기 전에 몇 가지 선결 조건을 살펴보자.
대체품과 왜 Vegeta를 선택했는지
부하 테스트는 여러 가지 방식으로 진행할 수 있으며, 부하 테스트도 여러 가지 다른 SAAS를 가지고 있다.그러나 로컬에 설치된 도구는 응용 프로그램이나 API에 대한 부하 테스트를 하는 좋은 방법이다.나는 과거에 사용한 적이 있다Locust.설정과 실행은 Vegeta 처럼 간단하고 직접적이지 않다.
또 다른 선택은 사용JMeter이다.Apache JMeter는 모든 기능을 갖춘 부하 테스트 도구로 그 개념을 이해하고 가파른 학습 곡선을 가진 것으로 이해할 수 있다.
Vegeta is a go-lang binary (and library) so installing and using it is a breeze. There are not many concepts to understand and learn.
우선, 한 개의 URL만 제공하고, 이 URL이 초당 클릭되기를 원하는 요청 수를 제시합니다.Vegeta는 제공된 주파수로 URL을 클릭하고 이해하기 쉬운 도형에서 HTTP 응답 코드와 응답 시간을 제공합니다.
The best thing about Vegeta is there is no need to install python or Java to get started. Next, let’s install Vegeta to begin Vegeta load testing.
Vegeta 설치
Vegeta의 공식 정의를 살펴보겠습니다.
Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. It can be used both as a command-line utility and a library.
Vegeta를 사용하여 로드 테스트를 시작하는 가장 간단한 방법은 GitHubreleases 페이지에서 올바른 실행 가능한 파일을 다운로드하는 것입니다.본문을 작성할 때 현재 판본은 v12.8.3이다.
Linux에 설치
64비트 Linux를 사용하는 경우 다음 명령 세트를 사용하여 Vegeta를 작업할 수 있습니다.
cd ~/downloads
wget https://github.com/tsenart/vegeta/releases/download/v12.8.3/vegeta-12.8.3-linux-amd64.tar.gz
tar -zxvf vegeta-12.8.3-linux-amd64.tar.gz chmod +x vegeta ./vegeta --version
어떤 경로에서든 Vegeta를 실행하려면 경로에 기호 링크를 추가하고 ln-s ~/downloads/Vegeta ~/bin/Vegeta와 같은 명령을 실행하면 새 CLI 탭에서 작동합니다.Mac에 설치
다음 명령을 사용하여 Mac에 Vegeta를 설치할 수도 있습니다.
brew update && brew install vegeta
기기에 golang이 설치되어 있고 Gobin이 경로에 있다면 Vegeta 부하 테스트 여정을 시작할 수 있습니다.go get -u github.com/tsenart/vegeta
올바른 설치 여부를 확인합니다.vegeta --version
버전 번호가 표시됩니다.첫 번째 Vegeta 로드 테스트 명령
Vegeta 부하 테스트 도구를 사용하는 데는 여러 가지 방법이 있습니다. 이것은 명령줄에서 출력을 가져와 더 빠른 분석을 하는 가장 간단한 방법 중 하나입니다.첫 번째 Vegeta 로드 테스트 명령을 실행하려면 다음과 같이 하십시오.
echo "GET http://httpbin.org/get" | vegeta attack -duration=5s -rate=5 | vegeta report --type=text
그럼 방금 무슨 일이 있었죠?Vegeta 부하 테스트 도구는 요청된 공격 25개를 5초 안에 실행합니다.최소 응답 시간은 240ms, 최대 응답 시간은 510ms, 성공률은 100%입니다.모든 요청이 200으로 되돌아왔다는 뜻이다.그 밖에 더욱 도형화된 출력을 어떻게 보는지 봅시다.
그래픽 출력이 있는 Vegeta 로드 테스트
Vegeta 부하 테스트 결과의 또 다른 표현 형식은 이해하기 쉬운 도형이다.다음 명령을 사용하여 그래픽 출력을 얻을 수 있습니다.
cd && echo "GET http://httpbin.org/get" | vegeta attack -duration=30s -rate=10 -output=results-veg-httpbin-get.bin && cat results-veg-httpbin-get.bin | vegeta plot --title="HTTP Bin GET 10 rps for 30 seconds" > http-bin-get-10rps-30seconds.html
Vegeta를 사용하여 부하 테스트를 수행하는 방법에 대해 살펴보겠습니다httpbin.org.우리는 300개의 요청을 보냈고, 모든 요청은 200개를 되돌렸고, 최대 응답 시간은 552밀리초였다.가장 빠른 응답 시간 중 하나는 234밀리초입니다.이것은 우리에게 명확한 화면을 주었고 HTTP-bin은 30초 안에 초당 10개의 요청을 쉽게 처리할 수 있다.
I would advise you to not try it many times, HTTPBin.org might block your IP thinking you are DDOSing their system.
일반적으로 Vegeta를 사용하여 자신의 서비스에 대한 부하 테스트를 어떻게 하는지 알 수 있습니다.
내 서비스는 인증 영패를 사용한다
알겠습니다. 모든 서비스는 모든 사람에게 개방되지 않고 대부분 JWT 또는 다른 방식으로 사용자에게 신분 검증과 권한을 부여합니다.이러한 서비스를 테스트하려면 다음 명령을 사용합니다.
cd && echo "GET http://httpbin.org/get" | vegeta attack -header "authorization: Bearer <your-token-here>" -duration=40s -rate=10 -output=results-veg-token.bin && cat results-veg-token.bin | vegeta plot --title="HTTP Get with token" > http-get-token.html
이 예는 위와 같은 패턴을 사용했는데, 여기에서의 주요 차이점은vegeta 부하 테스트에 사용되는vegeta 공격 명령에서-headerparam을 사용했다는 것이다.If you want to test an HTTP POST with a custom body please refer to the Vegeta docs. It is best to test the GET APIs to know the load unless you have a write-heavy application/API.
테스트 URL은 어떻게 로드합니까?
Vegeta를 사용하여 여러 URL을 서로 다른 HTTP 방법으로 테스트하는 것도 비교적 쉽습니다.다음 예제에서는 몇 가지 GET 요청에 대해 살펴보겠습니다.
GET http://httpbin.org/get
GET [http://httpbin.org/ip](http://httpbin.org/ip)
보시다시피 Vegeta를 사용하여 여러 URL에 대한 부하 테스트를 하는 것은 매우 쉽습니다.Vegeta 로드 테스트는 POST 및 PUT 같은 다른 HTTP 동사를 쉽게 테스트할 수 있습니다.Vegetadocs를 참조하십시오.
결론
이 글은 베지타로 부하 테스트를 할 때 페인트로 표면을 긁는 것과 같다.Vegeta 로드 테스트는 많은 고급 기능을 제공합니다.베지타는 많은 경우에 유용하다.Vegeta를 사용하여 Google Cloud 함수를 로드하고 Google Cloud는 동일한 코드로 실행하여 이 두 함수 간의 응답 시간 차이talk를 확인합니다.이 두 서비스를 비교한 도표는 차이를 명확하게 나타냈다.
프로덕션에 투입할 어플리케이션이나 API를 부하 테스트하는 것이 중요합니다.
We once had to open up an API to a much higher load than it would normally get. Our load testing with Vegeta really helped us determine the resources and level of horizontal scaling the API would need to work without any issues.
Vegeta 덕분에 다른 도구나 서비스를 사용하는 것보다 훨씬 쉬워요.즐거운 부하와 스트레스 테스트!
Reference
이 문제에 관하여(Vegeta 로드 테스트 빠른 자습서, GET 예제 포함), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/geshan/vegeta-load-testing-a-quick-tutorial-with-get-examples-1dnb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)