python locust 라 이브 러 리 기반 성능 테스트

Locust(메뚜기 라 고도 함)는 경량급 의 오픈 소스 테스트 도구 로 Python 으로 작 성 됩 니 다.
설치 하 다.
pip3 install locust
Python 성능 테스트 스 크 립 트 작성

import json

from locust import HttpLocust, TaskSet, task

"""
           ,    TaskSet
          
"""


class AdminLoadTest(TaskSet):

  #     task   
  def on_start(self):
    pass

  #     task   
  def on_stop(self):
    pass

  @task(1)
  def download(self):
    header = {"Content-Type": "application/json"}
    data = {
      "staff_id": 94
    }
    data = json.dumps(data)
    self.client.post('/get_know_list', data=data, headers=header)

  @task(2)
  def body(self):
    header = {"Content-Type": "application/json"}
    data = {
      "staff_id": 94
    }
    data = json.dumps(data)
    self.client.post('/get_answer_list', data=data, headers=header)


class RunLoadTests(HttpLocust):
  """
         
  """
  task_set = AdminLoadTest
  min_wait = 1000
  max_wait = 50000
  weight = 1
if __name__ == "__main__":
  import os

  os.system("locust -f test_download.py --host=http://127.0.0.1:5000")
Admin Load Test 클래스 는 TaskSet 클래스 를 계승 하여 사용자 의 행동 을 설명 합 니 다.
@task 장식 방법 을 하나의 사무 로 사용 합 니 다.방법의 매개 변 수 는 이 행위 의 집행 가중치 를 지정 하 는 데 사 용 됩 니 다.매개 변수 가 클 수록 사용자 가 실 행 될 확률 이 높 습 니 다.기본 값 은 1(사무 blogs()이 실 행 될 확률 은 bky 입 니 다.index()의 2 배);
  • on_start():모든 locust 사용자 가 테스트 업 무 를 수행 하기 전에 한 번 씩 실행 합 니 다.예 를 들 어 로그 인 등 초기 화 작업 을 합 니 다
  • on_stop():테스트 를 마 친 후에 한 번 씩 실행 합 니 다
  • RunLoadTests 류 는 성능 테스트 속성 을 설정 하 는 데 사 용 됩 니 다
  • task_set:정 의 된 사용자 행동 클래스 를 가리 키 는 것 입 니 다
  • min_wait:사용자 가 모든 작업 을 수행 하 는 동안 기다 리 는 최소 시간 을 모 의 합 니 다.단 위 는 밀리초 입 니 다
  • max_wait:사용자 가 모든 작업 을 수행 하 는 동안 기다 리 는 최대 시간 을 모 의 합 니 다.단 위 는 밀리초(minwait 와 maxwait 기본 값 은 1000 이 므 로 설명 이 없 으 면 minwait 와 maxwait,locust 는 모든 작업 사이 에서 1 초 를 기 다 립 니 다.);
  • weight:한 파일 에 여러 개의 locust 사용자 클래스 가 있 을 때 사용자 클래스 의 가중치(기본적으로 locust 사용 자 를 추가 할 때 무 작위 로 사용자 클래스 를 선택 합 니 다)
  • 시동 을 걸다
    터미널 이 코드 디 렉 터 리 에 들 어가 서 locust-f start.py--host=을 입력 하 십시오.http://localhost:5000
    os.system 을 사용 하여 코드 에 시작 명령 을 기록 합 니 다.
    매개 변수의 의미
  • -f:실행 할 테스트 스 크 립 트 파일 을 지정 합 니 다
  • --host:호스트 의 URL 접 두 사 를 불 러 옵 니 다.지정 하지 않 을 때 웹 사이트 사용자 클래스 에서 정의 하 는 host 를 읽 습 니 다
  • 4.567917.--master:한 대의 기계 가 더 많은 사용 자 를 모 의 할 수 없 을 때 분포 식 모드 는--master 를 통 해 메 인 프로 세 스 를 지정 합 니 다.Locust 웹 인터페이스 열기위의 명령 행 을 사용 하여 Locust 를 시작 한 후 브 라 우 저 를 열 고 가리 켜 야 합 니 다.http://localhost:8089/(로 컬 에서 Locust 를 실행 하면)
    시 뮬 레이 션 할 총 사용자 수:시 뮬 레이 션 사용자 수 설정;Hatch rate(users spawned/second):1 초 에 가상 사용자 수 를 생 성 합 니 다.

    아 날로 그 사용 자 를 설정 한 후 Start swarming 을 누 르 면 테스트 를 시작 합 니 다.테스트 결 과 는 다음 과 같 습 니 다.
  • Type:GET/POST 와 같은 요청 유형;
  • Name:요청 한 경로;
  • request:이미 보 낸 요청 수량;
  • fails:요청 실패 수량;
  • Median:응답 시간의 중간 값(단위:밀리초);
  • 평균 응답 시간(단위:밀리초);
  • Min:요청 한 최소 응답 시간(단위:밀리초);
  • Max:요청 한 최대 응답 시간(단위:밀리초);
  • Content Size:단일 요청 의 크기(단위:바이트);
  • reqs/sec:초당 요청 한 개수;
  • 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기