Мне нравится пробегаться через код, который на самом деле записал человек, и сделайте, чтобы они объяснили его мне.
Вы можете использовать тестер нагрузки, например Tsung
Вам следует рассмотреть возможность использования инструментов нагрузочного тестирования, таких как grinder или jmeter . grinder поддерживает сценарии, а jmeter позволяет превратить junit в клиент нагрузочного тестирования. Мне лично нравится jmeter из-за поддержки junit, а также его прекрасного графического интерфейса и отчетности. jmeter поддерживает http и мыло из коробки. Кроме того, вы можете написать свои собственные плагины в соответствии со своими потребностями.
Я бы также порекомендовал JMeter . Вы также можете записывать запросы страниц вашего браузера для создания теста JMeter ( HTTP-прокси-сервер ).
У вас также должны быть инструменты наблюдения, чтобы увидеть, как приложение ведет себя под нагрузкой.
Хорошим началом является jvisualvm, который входит в последнюю версию Sun JDK.
The simplest thing you can do is Apache benchmark which is probably already installed if you're running a Unix based system or comes with Apache Webserver 2.x for Windows.
Example use;
$ ab -n 1000 -c 20 http://www.google.com/
Gives me this output;
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.google.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: gws
Server Hostname: www.google.com
Server Port: 80
Document Path: /
Document Length: 218 bytes
Concurrency Level: 20
Time taken for tests: 1.826 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 807000 bytes
HTML transferred: 218000 bytes
Requests per second: 547.55 [#/sec] (mean)
Time per request: 36.527 [ms] (mean)
Time per request: 1.826 [ms] (mean, across all concurrent requests)
Transfer rate: 431.51 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 9 12 14.7 10 337
Processing: 11 24 26.8 17 306
Waiting: 11 22 21.1 16 297
Total: 21 36 30.5 28 350
Percentage of the requests served within a certain time (ms)
50% 28
66% 36
75% 39
80% 41
90% 45
95% 54
98% 93
99% 253
100% 350 (longest request)