Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/performance_tests/WMS/jmeter.log
/performance_tests/WMS/ows.xml
/performance_tests/WMS/logs/content/
/performance_tests/WMS/logs/sbadmin2-1.0.7/
/performance_tests/WMS/logs/statistics.json
/performance_tests/WMS/logs/index.html
59 changes: 21 additions & 38 deletions performance_tests/WMS/README.txt
Original file line number Diff line number Diff line change
@@ -1,39 +1,22 @@
This package contains :

* **test_all.jmx**: a jMeter test for eumetsat performance tests.
You should have to adjust path to files, especially for the access logs
(see the Test Plan User Defined Variables)

* **generate_csv.sh**: a script to generate csv with requests parameters.

It generates 2 files:
* csv/tiled.csv
* csv/untiled.csv
with the tiled and untiled requests samples.

Usage:
./generate_csv.sh layername gridsetname region
e.g.
./generate_csv.sh met9:ir108 EPSG:4326_level10 "-180 -90 180 90"
./generate_csv.sh met9:ir108 EPSG:3995_level10 "-1.27E7 -1.27E7 1.27E7 1.27E7"


* **filter_getMap.sh**: a script that filter an apache log to get GetMap requests.

Usage:
./filter_getMap.sh <filename>
e.g.
./filter_getMap.sh access_log > getmaps_requests


* **clean_csv.sh**: an utility script that remove the csv in the csv directory.

Other folders contain:

* **tiled**: scripts for get tiled random requests.
It contain a gridset directory with the current geowebcache.xml from geoserver data dir.
If the gridset changes you have to update this file to make the scripts create valid sample requests.
* **untiled**: scripts to get untiled random requests.
* **time**: scripts to get the time parameters for a layer using the capabilities document.
* **util**: other utility scripts.
How to use it
=============

1. Open the "test_all.jmx" test plan on JMeter and set the main parameters
HOST
HTTP_SCHEMA
HTTP_PORT
(other optional)

2. Edit the "generate_csv.sh" and set the "CAPABILITIES_URL" accordingly

3. Make sure the "tiled/gridsets/geowebcache.xml" files contains the definitions you would like to use in case of Tiled requests

4. Generate the random requests on the CSV files

./generate_csv.sh <layer_name> <gridset_id> "x0 x1 y0 y1" <count> <zoom_levels>

e.g.:

./generate_csv.sh osm:roads EPSG:3857 "-8262132.606676765 -8122983.243185173 5681544.414062212 5741972.112518539" 5000 "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21"

5. Toggle the "Tiled" or "Untiled" controllers from the JMeter test plan, update the global settings accordingly and run the tests
Empty file added performance_tests/WMS/csv/.init
Empty file.
5,000 changes: 5,000 additions & 0 deletions performance_tests/WMS/csv/tiled.csv

Large diffs are not rendered by default.

5,000 changes: 5,000 additions & 0 deletions performance_tests/WMS/csv/untiled.csv

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions performance_tests/WMS/generate_csv.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@

#######################
# Common options
CAPABILITIES_URL="http://mygeoserver.com/geoserver/ows?service=wms&version=1.3.0&request=GetCapabilities"
LAYER=${1:-met9:airmass}
CAPABILITIES_URL="https://maps.geosolutionsgroup.com/geoserver/ows?service=wms&version=1.3.0&request=GetCapabilities"
LAYER=${1:-osm:osm}

GRIDSET=${2:-EPSG\:4326_level10}
GRIDSET=${2:-EPSG\:4326}
REGION=${3:-"-180 -90 180 90"}
#######################
#Limit of rows to create
REQPERGRANULE=10
REQPERGRANULE=${4:-100}
TIME_RECORDS_LIMIT=5

#######################
#Tiled Options
LEVELS="1,2,3,4,5,6,7,8,9"
LEVELS=${5:-"1,2,3,4,5,6,7,8,9"}

GRIDSET_DIR="tiled/gridsets"

Expand Down Expand Up @@ -54,19 +54,19 @@ wget -q -O - "${CAPABILITIES_URL}" > ${CAPABILITIES_DOC}

echo "Fetching times for layer ${LAYER}..."
#Get Times
python time/time_request.py -capabilities_doc ${CAPABILITIES_DOC} -layer ${LAYER} -name > ${TIMES_FILE}
# python time/time_request.py -capabilities_doc ${CAPABILITIES_DOC} -layer ${LAYER} -name > ${TIMES_FILE}

echo "Generating tiled requests for layer ${LAYER}..."
#Generate Tiled Requests
python tiled/tiled_request.py -count ${REQPERGRANULE} -gridset ${GRIDSET} -gridset_dir ${GRIDSET_DIR} -region ${REGION} -levels ${LEVELS} -auxiliary_csv ${TIMES_FILE} -srs >> ${TILED_FILE}
# python tiled/tiled_request.py -count ${REQPERGRANULE} -gridset ${GRIDSET} -gridset_dir ${GRIDSET_DIR} -region ${REGION} -levels ${LEVELS} -auxiliary_csv ${TIMES_FILE} -srs >> ${TILED_FILE}
python tiled/tiled_request.py -layer ${LAYER} -count ${REQPERGRANULE} -gridset ${GRIDSET} -gridset_dir ${GRIDSET_DIR} -region ${REGION} -levels ${LEVELS} -srs > ${TILED_FILE}

echo "Generating untiled requests for layer ${LAYER}..."
#Generate Untiled Requests (with SRS NAME)
python untiled/wms_request.py -region ${REGION} -maxsize ${MAXSIZE} -minsize ${MINSIZE} -maxres ${MAXRES} -minres ${MINRES} -count ${REQPERGRANULE} | awk -vd="${SRSNAME}" '{$0=$0";"d}1' > ${UNTILED_TEMP_FILE}
# python untiled/wms_request.py -region ${REGION} -maxsize ${MAXSIZE} -minsize ${MINSIZE} -maxres ${MAXRES} -minres ${MINRES} -count ${REQPERGRANULE} | awk -vd="${SRSNAME}" '{$0=$0";"d}1' > ${UNTILED_TEMP_FILE}
python untiled/wms_request.py -region ${REGION} -maxsize ${MAXSIZE} -minsize ${MINSIZE} -maxres ${MAXRES} -minres ${MINRES} -layer ${LAYER} -count ${REQPERGRANULE} | awk -vd="${SRSNAME}" '{$0=$0";"d}1' > ${UNTILED_FILE}
#Cartesina product with tunes file
./util/cartesian.sh -d ";" ${TIMES_FILE} ${UNTILED_TEMP_FILE}>> ${UNTILED_FILE}
echo "cleaning temporaney files"
# ./util/cartesian.sh -d ";" ${TIMES_FILE} ${UNTILED_TEMP_FILE}>> ${UNTILED_FILE}
echo "cleaning temporary files"
rm -f $TIMES_FILE
rm -f $UNTILED_TEMP_FILE


9 changes: 9 additions & 0 deletions performance_tests/WMS/summary.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Label,# Samples,Average,Min,Max,Std. Dev.,Error %,Throughput,Received KB/sec,Sent KB/sec,Avg. Bytes
1,200,203,157,300,27.04,0.000%,4.90028,22.28,0.00,4655.7
2,400,201,155,297,24.42,0.000%,9.75824,48.25,0.00,5063.1
4,400,202,158,293,22.64,0.000%,19.01954,86.68,0.00,4666.9
8,400,207,159,305,25.76,0.000%,34.71318,162.10,0.00,4781.9
16,800,210,159,308,24.51,0.000%,68.94174,313.91,0.00,4662.5
32,800,232,166,390,32.24,0.000%,117.33646,535.91,0.00,4676.9
64,1600,411,169,576,62.36,0.000%,140.88228,645.20,0.00,4689.6
TOTAL,4600,282,155,576,104.24,0.000%,31.91076,147.08,0.00,4719.7
Loading