2009-11-20 1 views
0

새로운 웹 앱에 과도한 스트레스를 가할 때 우리는 평소 무료 도구 모음 (WAS, 다른 무료 ms 도구 (wcat?))에 문제가있어서 v. 빠르고 더러운 도구를 만들었습니다. .net webrequest 객체를 사용하고, 새로운 스레드를 열고, 파일에서 목록 URL을 지속적으로 조회합니다. 하나의 스레드에서 이전에 약간의로드가 생성되었습니다.수제 .net 스트레스 도구는 Fiddler가 켜져있을 때만 스트레스를 만듭니다 - 이유는 무엇입니까?

그런 다음 멀티 스레드를 시도한 후에 (일단 thread.start()를 시도한 다음 webrequest 객체에서 beginrequestgets를 호출하여 한 번) 요청이 서버에 도달하지 않았습니다 (iis에는 아무 것도 없었습니다. 로그, 실행중인 요청 증가 없음, 요청/초 등) - Fiddler가 켜져 있지 않으면! 피 들러를 사용하면 예상대로 작동합니다.

저는이 작은 응용 프로그램을 사용하는 데 특히 관심이 없습니다. (아마도 다른 무료 웹 스트레스 도구를 찾으려고 할 것입니다 - 권장 사항이 있습니까?)하지만 내 주요 질문은 왜 내 작은 응용 프로그램에서만 스트레스를 제공합니까? 피들러 대리인을 통해? 어떤 아이디어?

답변

0

앱에 누락 된 프록시 설정이있을 수 있습니다. 대개 강조하고있는 서버에 연결하기 위해 프록시 서버를 사용합니까?

피들러는 프록시 설정을 포함하여 로그인 한 사용자의 컨텍스트에서 작동합니다. 그러나 자신의 WebClient/HttpWebRequest을 코딩 할 때 프록시는 자동으로 사용되지 않으므로 코드 나 구성에서 프록시를 직접 사용할 수 있어야합니다.

스트레스를받는 서버 (또는 프록시)에 인증이 필요한 경우 사용 권한 문제 일 수도 있습니다.

누락 된 프록시와 인증 부족 문제를 해결하기위한 몇 가지 코드는 다음과 같습니다. 같은 코드의 HttpWebRequest로 웹 클라이언트에 대해 사용할 수 있습니다 :

WebClient wc = new WebClient(); 
WebProxy wp = new WebProxy("http://myproxyserver:80/",true); 
wp.UseDefaultCredentials = true; 
wc.Proxy = wp; 
wc.UseDefaultCredentials = true; 

BTW, 나는 종종 이런 식으로 이상한 상황에서 사용하는 도구가 HttpWatch입니다. 비싸지 만 피들러와 비슷하지만 브라우저 플러그인으로 작동합니다. 즉, 프록시 문제 및 피들러 내부에 표시되지 않는 기타 문제를 감지합니다. 그것은 또한 HTTPS와 잘 작동합니다.

+0

저는 대개 프록시 서버를 사용하지 않습니다. 그리고 응용 프로그램은 단일 스레드 일 때 정상적으로 작동했습니다. – BobC

+0

Fiddler가 프록시 서버이기 때문에 앱이 로그인 한 사용자의 프록시 설정을 선택하고 있음을 분명히 알 수 있습니다. 그렇지 않으면 앱 *은 피들러에서 작동하지 않습니다! :-) 앱 구성이나 코드에서 일부 검색 작업을 수행하여 프록시 설정이 설정되는 위치를 파악하고 다른 설정 (예 : UseDefaultCredentials)으로 어떤 작업이 진행 중인지 확인할 수 있습니다. 프록시 검색에 대한 정보와이를 끄는 방법은 MSDN의 http://msdn.microsoft.com/en-us/library/fze2ytx2.aspx를 참조하십시오. –

1

Apache Bench을 살펴보십시오. Apache 서버 소프트웨어의 일부이지만 ab.exe은 완전히 독립형이며 서버를 설치할 필요가 없습니다. 설명에서 이것은 Apache HTTP (Hypertext Transfer Protocol) 서버를 테스트하는 데 사용되지만 모든 HTTP 서버에서 작동 함을 나타냅니다. 스트레스 테스트를 수행하기 위해 여러 프로젝트에서이 도구를 사용했으며 훌륭한 도구라고 말할 수 있습니다. 데이터 게시를 허용하기 때문에 웹 서비스도 테스트 할 수 있습니다.

또 다른 대안은 Microsoft의 WCAT입니다.

관련 문제