[클라우드] 부하 테스트 실습

최동혁·2023년 3월 2일
0

클라우드

목록 보기
10/18

로그인 하기

  • HTTP Request의 이름을 알아보기 쉽게 바꾼다.

  • 위의 그림처럼 CSS Selector 만들어준다.

  • HTTP Request처럼 이름 바꿔준다.
  • 우리는 지금 로그인 테스트를 위해 CSRF 토큰을 가져와 심고, 아이디와 비밀번호를 입력해 로그인페이지의 부하를 주려고 하는 것이다.

  • 위와 같이 설정해준다.
  • csrftoken을 해당 selector에서 value라는 값으로 빼오겠다는 의미

  • 위와 같이 http request로 로그인하기를 하나 더 만들어준다.

  • f12를 눌러서 보면 우리가 빼오려는 csrfmiddlewaretoken이 hidden으로 숨겨져 있는것을 볼 수 있다.

  • 위와 같은 폼으로 오기 때문에

  • 위의 형식과 같게 세팅해주어야 한다.
  • method는 POST로, url 맞게 설정, csrf 토큰, email, password까지 위의 그림처럼 세팅해준다.

  • 그리고 cookie manager까지 만들어주고 실행을 한다.

  • 결과를 보기 위해 summary report 와 view results tree, table을 만들어준다.

  • 실행을 한 후, view result tree를 보면 위의 그림처럼 성공한 것을 확인할 수 있다.

여러명 로그인하기

  • CSV Data Set Config 추가

  • 아이디와 비밀번호가 적힌 txt 파일 작성
  • ,로 구분해놔야 함. csv 형식이여야 하기 때문에

  • varaiable names는 user_id,user_pw로 해준다.
  • txt 파일에 적혀있는 형식으로 적어준것이다.

  • user defined variables 추가

  • user_id를 불러와서 user_id로 저장하겠다는 의미.
  • 각 테스트 아이디, 비번들로 전부 로그인 시도하겠다는 것.

결과

  • 실행 시키면 성공한다.

  • 로그인 하기를 클릭해서 request를 확인해보면 로그인을 성공한 후 서버에서 redirect 시켜주는 페이지를 GET으로 받아온 것을 볼 수 있다!
  • 내 서버는 로그인을 성공하면 메인 페이지로 이동하는데, login url로 다시 이동한 것을 보면, 해당 아이디와 비밀번호는 존재하지 않는 계정이여서 그런 것이다.

초당 트랜잭션 보기

  • 바로 이전 게시글에서 받아온 jmeter-plugins를 적용해야한다.
  • 현재 apache-jmeter가 설치되어 있는 폴더 안에 들어간다.
  • lib -> ext 안에 jmeter-plugins를 집어넣어준다.
  • 그리고 jmeter 재실행

  • 가장 오른쪽 위에 깃털 모양 아이콘이 생긴 것을 확인할 수 있다.
  • 클릭하자

  • Available plugins에 3 Basic Graphs를 체크하고 적용을 누른다.
  • 그리고 재시작

  • 위의 그림과 같이 보면 jp@gc로 시작하는 항목이 3개가 추가된 것을 볼 수 있다.
  • Transactions per Second를 클릭해서 추가해주자.
  • 그 후, 부하를 준다면?

  • 위의 그림처럼 초당 트랜잭션이 몇번 일어났는지 기록해놓은 그래프가 시각적으로 보여지게 된다.

세션

  • 만약 403 forbidden이 나온다면?
  • 자신이 haproxy로 부하 분산을 시켰기 때문에, 1 서버에서 허용해준 csrf token이 2 서버에서는 안먹히는 것이다.
  • 이것을 방지하기 위해서는?

settings.py

  • 장고를 사용하고 있다는 가정하에.
  • 각 서버의 세팅 파일에 가서
CSRF_USE_SESSIONS = True
  • 가장 아래에 추가해준다.
profile
항상 성장하는 개발자 최동혁입니다.

1개의 댓글

comment-user-thumbnail
2023년 3월 7일

유용한 게시물이네요!

답글 달기