Traffic Generators: Difference between revisions

 
(9 intermediate revisions by the same user not shown)
Line 28:
 
for i in `seq 1 99999`; do echo "Status Code:"; curl -s -o /dev/null -w "%{http_code}" https://10.1.1.1; sleep 1; done
 
;Bash Script
<pre>
# get output, append HTTP status code in separate line, discard error message
OUT=$( curl -sfI --connect-timeout 1 http://10.52.200.32/ | grep "HTTP" )
 
# get exit code
RET=$?
 
if [[ $RET -ne 0 ]] ; then
echo "Time out: $RET"
else
echo "$OUT"
fi
</pre>
while true; do ./monitor.sh; sleep 1; done
 
= Apache Benchmark =
Line 49 ⟶ 65:
Set file limit to unlimited to ensure there is no OS problems with files at concurrency:
ulimit -n 9999
 
 
== Locust File ==
Line 105 ⟶ 120:
== Distributed Mode ==
 
Running*To locally is fine for basic testing and getting started with Locust, but most applications will not receive agenerate significant load if you’re just running it from your local machine. It’sis almost always necessary to run it in distributed mode. This is easy to do with a couple AWS nodes.
*Master server do not simulate any user itself.
*For this we have to start one or more slaves using –slave flag
*Both the master and each slave machine, must have a copy of the locust test scripts when running Locust distributed.
*Run below command on each slave nodes as well
ulimit -n 9999
 
Start “master” node:
After installing Locust and moving your locustfile.py to all nodes, you can start the “master” node:
locust --host=http://localhost:5000somedomain.io --master
 
Then start any “slave” nodes, giving them a reference to the master node:
locust --host=http://localhost:5000somedomain.io --slave\ --master-host=192.168.10.100
 
--master-host=192.168.10.100
== Without WebUI ==
 
Runs the cli mode as below:
locust -f locustfile.py --no-web -c 1000 -r 100 --run-time 1h30m
 
In Distributed mode it will wait until all slave nodes have connected before starting the test:
locust -f locustfile.py --no-web -c 1000 -r 100 --run-time 1h30m --expect-slaves
 
= Slowhttptest =
Line 118 ⟶ 145:
Source: [http://manpages.ubuntu.com/manpages/xenial/man1/slowhttptest.1.html ubuntu.com]
{{UC}}
 
= Bombardier =
 
Source: [https://softwaretester.info/http-benchmarking-with-bombardier/ softwaretester.info]
 
Preparation
sudo apt install -y curl git
curl -O https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
tar xvf go1.8.linux-amd64.tar.gz
sudo chown -R root:root go
sudo mv go /usr/local/
 
Configure go (for user)
mkdir ~/.go
echo "GOPATH=$HOME/.go" >> ~/.bashrc
echo "export GOPATH" >> ~/.bashrc
echo "PATH=\$PATH:/usr/local/go/bin:\$GOPATH/bin" >> ~/.bashrc
 
source ~/.bashrc
go version
 
Install bombardier
go get -u github.com/codesenberg/bombardier
bombardier --help
 
Usage:
*Run with 10 connections on 5 sec and show latency statistics.
bombardier -d 5s -c 10 -l -k https://www.heise.de
*Test for 60 seconds at 250 Insecure connections per second :
bombardier -c250 -k -d 60s "https://10.70.28.12/tools/healthcheck?api-key=0145463c-df61-4ebe-bbf1-ed3f43t4f57"
 
<br />