Traffic Generators: Difference between revisions

 
(7 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 106 ⟶ 121:
 
*To generate significant load it is almost always necessary to run it in distributed mode.
*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
 
*After installing Locust and moving your locustfile.py to all nodes, Start “master” node:
locust --host=http://somedomain.io --master
 
Then start any “slave” nodes, giving them a reference to the master node:
locust --host=http://somedomain.io --slave --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 117 ⟶ 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 />