So testen Sie einen TCP-server-Implementierung?
Ich geschrieben habe einen TCP-server-Implementierung, die ich erstellt eine Anwendung, die arbeitet als TCP-echo-Dienst.
Nun möchte ich, um dies zu testen echo-server in Bezug auf
- Wie viele verbindungen verarbeiten kann,
- Was ist die Reaktionszeit
- Wie viel Speicher und CPU verwendet es
Bitte können Sie schlagen alle standard-Methode/tools um dies zu testen echo-server. Ich verstehe, dass sowohl TCP-echo-server-Implementierung ist ziemlich gängige Praxis, so dass ich hoffe, zu finden, etablierte Werkzeuge, um es zu testen.
P. S.: ich kann schreiben, meine eigene Anwendung testen, aber ich will nicht, es zu tun, weil wenn ich sehe ein problem, ich brauche, um sicher zu sein, dass es mein server ist etwas falsch. Ich will nicht, um am Ende meine Prüfung test-client das erste mal.
Schrieb ich diese Implementierung mit C# und .NET 3.5, obwohl ich glaube, dass es egal ist, mit Bezug auf die Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich ein kostenloses tool, das Ihnen helfen könnte. Ich benutze es für den Test-Server gebaut, dass mit meiner C++ - server-framework. Das tool ist hier erhältlich: http://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.html. Es ermöglicht Ihnen das erstellen einer konfigurierbaren Anzahl von verbindungen zu Ihrem Ziel-server in einer konfigurierbaren rate und senden Sie dann die Daten für jede Verbindung (wieder in einem konfigurierbaren rate).
Wenn Sie finden, dass der beste Weg, es zu benutzen ist, um Sie auf einem anderen Rechner auf den server (ziemlich offensichtlich, ich weiß, aber...) und möglicherweise zur Ausführung mehrerer Kopien auf mehreren verschiedenen Maschinen. Beachten Sie, dass wenn Sie finden Sie nicht mehr als etwa 4000 verbindungen, dann ist es sehr wahrscheinlich, dass Sie brauchen, um zu zwicken, Ihr
MAX_USER_PORT
Registrierungseinstellung auf dem Computer, auf dem client.Nachdem Sie getestet haben, die TCP-code, den Sie finden können müssen Sie test-Protokoll, das von Ihrem server unterstützt werden. Ich schrieb ein test-tool für diese Art von situation, in C#, die verfügbar ist auf CodeProject (http://www.codeproject.com/KB/IP/testingsocketservers.aspx). Dies ermöglicht es Ihnen zu schreiben, ein "plugin" zu unterstützen, Ihr Protokoll und behandelt die Protokoll-agnostisch Sachen (viele verbindungen, Nachrichten so, dass Sie fragmentiert erhalten, liest, etc.) für Sie. Das design ist eine ziemlich böse thread-per-connection-design und bei einer höheren Anzahl von verbindungen, die Sie wären besser dran, reimplementing etwas mit einem asynchronen design, aber ich habe meine C++ - tools für dass so dass ich nie dazu gekommen, um an der Veränderung dieser test Programm...
In derselben situation vor, die ich verwendet habe FunkLoad. Wenn Sie können schreiben Sie eine kleine client-als ein Ausschnitt der Python-code, dann FunkLoad wird ausgeführt, als viele von denen, gegen die server, wie Sie wollen, und Grafik die Ergebnisse:
https://funkload.nuxeo.org/
Einen vollständig ausgearbeiteten Beispiel gegen eine Reihe von test-Server ist das Herzstück der zweiten Auflage meiner Foundations of Python Network Programming Buch, im Falle seines öffentlichen Quellcode-repository helfen:
https://github.com/brandon-rhodes/fopnp/tree/m/py2/chapter07