2009-12-01 3 views
3

TCP echo 서비스로 작동하는 응용 프로그램을 작성하여 TCP 서버 구현을 작성했습니다.TCP 서버 구현을 테스트하는 방법은 무엇입니까?

지금 나는 그것을 처리 할 수있는 얼마나 많은 연결

  • 의 관점에서이 에코 서버를 테스트 할 응답 시간을 무엇
  • 얼마나 많은 메모리와 CPU가
를 사용

이 에코 서버를 테스트 할 수있는 표준 방법이나 도구를 제안 해주십시오. 나는 TCP와 에코 서버 구현 모두 상당히 표준적인 방법이므로 이해하기 위해 테스트 도구를 찾을 수 있기를 바랍니다.

P.S : 자체 테스트 응용 프로그램을 작성할 수 있지만 일부 문제가 발생하면이를 잘못하고있는 서버인지 확인해야하기 때문에 원하지 않습니다. 테스트 클라이언트를 먼저 테스트하는 것을 원하지 않습니다.

저는 C#과 .NET 3.5를 사용하여이 구현을 작성했는데, 질문에 대해서는 중요하지 않다고 생각합니다.

답변

4

무료 도구가있어서 도움이됩니다. C++ 서버 프레임 워크로 구축 된 서버를 테스트하는 데 사용합니다. 이 도구는 http://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.html에서 사용할 수 있습니다. 구성 가능한 속도로 대상 서버에 구성 가능한 연결 수를 작성한 다음 각 연결에서 데이터를 다시 구성 가능한 속도로 전송할 수 있습니다.

가장 좋은 방법은 다른 컴퓨터에서 서버로 실행하는 것입니다 (분명히 알지만 ...). 아마도 여러 대의 컴퓨터에서 여러 복사본을 실행할 수 있습니다. 4000 개가 넘는 연결을 만들 수 없다면 클라이언트를 실행하는 컴퓨터에서 MAX_USER_PORT 레지스트리 설정을 조정해야 할 가능성이 큽니다.

일단 TCP 코드를 테스트하면 서버에서 지원하는 프로토콜을 테스트해야 할 수 있습니다. CodeProject (http://www.codeproject.com/KB/IP/testingsocketservers.aspx)에서 사용할 수있는 C#의 상황에 대한 테스트 도구를 작성했습니다. 이것은 당신이 당신의 프로토콜을 지원하기 위해 "플러그인"을 작성하고 당신을 위해 프로토콜 불가지론적인 물건들 (많은 연결, 깨진 메시지를 깨뜨릴 수있는 메시지 등)을 처리 할 수있게 해줍니다. 디자인은 다소 불쾌한 쓰레드 - 연결 디자인이며 더 많은 수의 연결에 대해서는 비동기식 디자인을 사용하여 다시 구현하는 것이 더 좋지만 C++ 툴을 사용하므로이 테스트 프로그램을 변경하지 못했습니다.

+0

우수! 나는 * 내가 원한 * 정확하게 보였다. 내가 그것을 시험해 보자 ... – Hemant

+0

나는 나의 프레임 워크 프레임 워크를 테스트하기 위해 항상 그것의 버전을 사용한다. (그것은 나의 프레임 워크 예제 서버들을 모두 테스트하기 위해 내 빌드 머신에서 실행된다.) 그리고 그것은 여러가지 커스텀 테스트 도구들의 기초이다. 나는 지난 몇 년 동안 고객을 위해 개발했습니다.블로그 게시물에서 링크 된 버전에 문제가 있거나 최신 버전으로 업데이트 할 수있는 경우 알려주십시오. 문제가 계속되면 해결할 것입니다. C# 도구에 관해서는, 당신이 직접하고있다;) –

+0

고마워. 귀하의 응용 프로그램이 예상대로 작동하는 것 같습니다 (그리고 제 서버 *는 아닙니다 :). 당신의 블로그 포스트에 질의와 코멘트를 게시 할 것입니다! – Hemant

0

이전과 같은 상황에서 FunkLoad를 사용했습니다. 파이썬 코드의 조각으로 작은 클라이언트를 쓸 수 있다면, FunkLoad 당신이 원하는대로 서버에 대해 사람들의 많은을 실행하고 결과를 그래프로합니다

https://funkload.nuxeo.org/

완전히 근무 아웃 예제를을 테스트 서버의 일련의 파이썬 네트워크 프로그래밍 책의 내 재단의 두 번째 버전의 핵심이며, 공개 소스 코드 저장소가 어떤 도움이다 경우 :

https://github.com/brandon-rhodes/fopnp/tree/m/py2/chapter07

관련 문제