2009-02-19 2 views
5

프런트 엔드에서 AJAX 및 동적 JavaScript를 상당히 많이 사용하는 사이트에서 작업 중이므로 스트레스 테스트를 시작할 시점입니다. 그러나 프론트 엔드에서 여러 링크를 클릭해야하는 테스트 스트레스를 어떻게 적절하게 스트레스합니까? 사이트의 모든 페이지를 쉽고 빠르게 반복적으로 클릭 할 수 있었던 한 가지 방법은 Google Mini를 가리키는 것이 었습니다. 하지만 링크를 클릭 한 다음 모달 창과 그런 것들을 탐색하지 않습니다.UI로드 테스트

편집 - 사이트가 PHP5로 작성되었으며 사용 된 JavaScript 라이브러리가 jQuery임을 지적해야합니다. 이것이 어떤 차이를 만들지 만 알면 유용하다고 느꼈는지는 확실하지 않습니다.

답변

2

JMeter 위대한입니다. 세션을 녹음하고 원하는대로 조정할 수 있습니다.

소위 '아약스로드 테스트'는이 사이트의 되풀이되는 주제이며 종종 혼란 스럽습니다. 그래서 그것을 바로 잡아 보자. 일반적인 웹 페이지의로드 테스트와 아약스의로드 테스팅에는 실제로 차이점이 없다. 그것은 모두 분리 된 요청으로 귀결됩니다. 그들은 단지 전체 페이지 리프레쉬가되지 않습니다.

부하를 테스트하는 서버 (로드 테스트)와 업데이트되는 UI 구성 요소의 화면 (성능이 얼마나 좋은지)간에 뚜렷한 차이점이 있습니다.

간단한 부하 테스트 예 :

  1. 초기 페이지로드
  2. 로그인
  3. 탐색?
  4. 5-10 '아약스의 요청 (또는 응용 프로그램의 사용 패턴에 맞게 무엇이든간에)
  5. 로그 아웃 내가 어느 정도 나단과 프레디에 동의
1

예를 들어, 당신이 정말 원하는 것은 테스트가 아약스 요청을 처리하는 서버의 기능입니다 강조하는 것입니다. 테스트를 "녹음"하는 동안 요청을 보는로드 도구를 사용하고 적절하게 조정하십시오. 나는 단지 vs 테스트 에디션 하나를 사용했기 때문에, 당신을 저렴한 비용으로 가리킬 수는 없습니다.

1

. "AJAX 테스팅"은 HTTP 요청이 만들어지는 점에서 전혀 다르지 않다는 것이 맞습니다. 그러나 그렇게 간단하지는 않습니다. Ajaxian.com의 내 기사를 Why Load Testing Ajax is Hard에 게시하십시오.

JMeter, Pylot 및 The Grinder는 모두 HTTP 요청을 생성하는 데 훌륭한 도구입니다 (개인적으로 Pylot을 권장합니다). 그러나 핵심은 브라우저와 자바 스크립트로 작동하지 않기 때문에 기록적인 시간에 본 트래픽을 재생한다는 것입니다. AJAX 요청이 해당 세션에 대해 고유 한 것이면 대용량으로 재생하기에 적합하지 않을 수 있습니다.

사실 더 많은 로직이 브라우저에 푸시 다운되면 기존로드 테스트 도구를 사용하여 트래픽을 올바르게 시뮬레이션하는 것이 훨씬 더 어려워집니다 (불가능하지는 않지만).

필자는 1000 개의 다른 검색어 (로드 테스트 중 중요한 목표)를 쿼리하려는 경우 구글 홈 페이지와 같은 것을 테스트하는 것이 얼마나 어려운 지 간단한 예를 들어 설명합니다.JMeter/Pylot/Grinder를 사용하면 도구의 모국어로 AJAX 코드의 일부를 다시 작성할 수 있습니다.

사용자가 감지 한 응답 시간을 측정하는 것이 목표 인 경우 훨씬 더 복잡해집니다 (이는 하루가 끝날 때 가장 중요한 것임). Comet/"Reverse Ajax"(오랜 시간 동안 열린 소켓을 유지하는 기술)를 사용하는 정말로 복잡한 응용 프로그램의 경우 기존의로드 도구가 전혀 작동하지 않습니다.

내 회사 인 BrowserMob은 Selenium으로 구동되는 Firefox 브라우저를 사용하여 수백 또는 수천 개의 실제 브라우저를 구동하여 브라우저에 표시되는 시각적 요소의 성능을 측정하고 시간을 측정 할 수 있습니다. 또한 전통적인 가상 사용자 (블라인드 HTTP 트래픽)와 가상 브라우저 (HtmlUnit 경유)를 지원합니다.

일반적으로 BrowserMob과 같은 서비스와 전통적인 부하 테스트를 혼합하면 올바른 접근 방식이라고 할 수 있습니다. 즉, 실제 브라우저는 완전한 충실도 테스트에 적합하지만 "가상 사용자"만큼 경제적이지는 않습니다. RAM과 CPU가 10 ~ 100 배 더 필요하기 때문입니다. simulate or not to simulate virtual users에 대한 최신 블로그 게시물을 참조하십시오.

희망 하시겠습니까?

0

openSTA과 같은 것을 사용할 수 있습니다.

이렇게하면 웹 사이트와의 세션을 기록한 다음 상대적으로 간단한 스크립트 언어로 재생할 수 있습니다.

또한 웹 서비스를 쉽게 테스트하고 자신의 스크립트를 작성할 수 있습니다.

반복 수, 각 반복의 사용자 수, 각 새 사용자를 소개하는 램프 업 시간 및 각 반복 사이의 지연을 원하는 방식으로 테스트에 스크립트를 함께 넣을 수 있습니다. 향후 테스트 일정을 잡을 수도 있습니다.

오픈 소스이므로 무료입니다.

스프레드 시트에 저장할 수있는 여러 보고서를 생성합니다. 그런 다음 피벗 테이블을 사용하여 결과를 쉽게 분석하고 그래프로 나타냅니다.