로그인 하기

- 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를 보면 위의 그림처럼 성공한 것을 확인할 수 있다.
여러명 로그인하기


- 아이디와 비밀번호가 적힌 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
유용한 게시물이네요!