From ccb1828ec3e1a1c9071256f85f3876a8d1c8ecdf Mon Sep 17 00:00:00 2001 From: Bilal A Date: Mon, 8 Apr 2019 16:53:43 -0400 Subject: Adds basic performance tests for XACML PDP Includes 1) Basic health check and stats performance test 2) Analysis script 3) Fixed https protocol in stability test Change-Id: I78a6daf3cae40daf4779ced515283abb19743e4b Issue-ID: POLICY-1461 Signed-off-by: Bilal A --- testsuites/performance/pom.xml | 50 ++++ testsuites/performance/src/assembly/assembly.xml | 42 +++ .../src/main/resources/testplans/perf.jmx | 291 +++++++++++++++++++++ .../src/main/resources/testplans/results.sh | 34 +++ testsuites/pom.xml | 1 + .../src/main/resources/testplans/stability.jmx | 29 +- 6 files changed, 423 insertions(+), 24 deletions(-) create mode 100644 testsuites/performance/pom.xml create mode 100644 testsuites/performance/src/assembly/assembly.xml create mode 100644 testsuites/performance/src/main/resources/testplans/perf.jmx create mode 100755 testsuites/performance/src/main/resources/testplans/results.sh (limited to 'testsuites') diff --git a/testsuites/performance/pom.xml b/testsuites/performance/pom.xml new file mode 100644 index 00000000..475398f6 --- /dev/null +++ b/testsuites/performance/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + + org.onap.policy.xacml-pdp + testsuites + 2.0.0-SNAPSHOT + + performance + + + + org.apache.maven.plugins + maven-assembly-plugin + + + create-distribution + package + + single + + + + src/assembly/assembly.xml + + + + + + + + \ No newline at end of file diff --git a/testsuites/performance/src/assembly/assembly.xml b/testsuites/performance/src/assembly/assembly.xml new file mode 100644 index 00000000..1356ab5c --- /dev/null +++ b/testsuites/performance/src/assembly/assembly.xml @@ -0,0 +1,42 @@ + + + performance + + zip + + /policy-xacml-pdp/performance + + + ${project.basedir}/src/main/resources/testplans/ + tests/testplans + + *.jmx + *.sh + + unix + 0644 + true + + + diff --git a/testsuites/performance/src/main/resources/testplans/perf.jmx b/testsuites/performance/src/main/resources/testplans/perf.jmx new file mode 100644 index 00000000..02eecec4 --- /dev/null +++ b/testsuites/performance/src/main/resources/testplans/perf.jmx @@ -0,0 +1,291 @@ + + + + + Policy XACML PDP Performance Tests + false + true + true + + + + POLICY_XACML_PDP_HOST + ${__P(host,10.12.6.164)} + = + + + DURATION + ${__P(duration, 5)} + = + + + USERS + ${__P(users, 1)} + = + + + PORT + ${__P(port, 6969)} + = + + + + + + + + continue + + false + -1 + + ${USERS} + 1 + true + ${DURATION} + 1 + + + + + + + ${POLICY_XACML_PDP_HOST} + 6969 + https + + policy/pdpx/v1/healthcheck + GET + true + false + true + false + + + + Basic Health Check + + + + + 200 + + + Assertion.response_code + false + 1 + + + + groovy + + + true + import groovy.json.JsonSlurper; + +def res = []; +if (prev.getResponseCode() == '200') { + def jsonSlurper = new JsonSlurper(); + res = jsonSlurper.parseText(prev.getResponseDataAsString()); + + assert res instanceof Map; + assert res.code == 200; + +} + + + + + + + Accept + application/json + + + Content-Type + application/json + + + + + + + + https://${POLICY_XACML_PDP_HOST}:6969/policy/pdpx/v1/healthcheck + healthcheck + zb!XztG34 + + + + + true + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + true + false + false + false + true + 0 + true + true + true + true + true + true + + + /tmp/pdpx_perf_health.log + + + + + continue + + false + -1 + + ${USERS} + 1 + true + ${DURATION} + 1 + + + + + + + ${POLICY_XACML_PDP_HOST} + 6969 + https + + policy/pdpx/v1/statistics + GET + true + false + true + false + + + + Basic Health Check + + + + + 200 + + + Assertion.response_code + false + 1 + + + + groovy + + + true + import groovy.json.JsonSlurper; + +def res = []; +if (prev.getResponseCode() == '200') { + def jsonSlurper = new JsonSlurper(); + res = jsonSlurper.parseText(prev.getResponseDataAsString()); + + assert res instanceof Map; + assert res.code == 200; + + +} + + + + + + + Accept + application/json + + + Content-Type + application/json + + + + + + + + https://${POLICY_XACML_PDP_HOST}:6969/policy/pdpx/v1/statistics + healthcheck + zb!XztG34 + + + + + true + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + true + false + false + false + true + 0 + true + true + true + true + true + true + + + /tmp/pdpx_perf_stats.log + + + + + + diff --git a/testsuites/performance/src/main/resources/testplans/results.sh b/testsuites/performance/src/main/resources/testplans/results.sh new file mode 100755 index 00000000..3e74bb4e --- /dev/null +++ b/testsuites/performance/src/main/resources/testplans/results.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +#============LICENSE_START======================================================= +#ONAP Policy API Performance +#================================================================================ +#Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. +#================================================================================ +#Licensed under the Apache License, Version 2.0 (the "License"); +#you may not use this file except in compliance with the License. +#You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +#Unless required by applicable law or agreed to in writing, software +#distributed under the License is distributed on an "AS IS" BASIS, +#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +#See the License for the specific language governing permissions and +#limitations under the License. +#============LICENSE_END========================================================= + +LOGFILE=$1 +if [[ ! -f $LOGFILE ]]; then + echo "The file '$LOGFILE' in not provided." + echo "Please provide log file to process." + exit 1 +fi + +echo "File being processed: " $LOGFILE +RES=$(awk -F "," 'NR>1 { total += $15 } END { print total/NR }' $LOGFILE) +echo "Average Latency: " $RES +LC=$(awk 'END{print NR}' $LOGFILE) +echo "Total Requests:" $LC +echo "Requests/sec:" $((LC/5)) + diff --git a/testsuites/pom.xml b/testsuites/pom.xml index 0da7d466..96663a37 100644 --- a/testsuites/pom.xml +++ b/testsuites/pom.xml @@ -28,5 +28,6 @@ pom stability + performance \ No newline at end of file diff --git a/testsuites/stability/src/main/resources/testplans/stability.jmx b/testsuites/stability/src/main/resources/testplans/stability.jmx index 9a3ad6be..8e4d5301 100644 --- a/testsuites/stability/src/main/resources/testplans/stability.jmx +++ b/testsuites/stability/src/main/resources/testplans/stability.jmx @@ -1,23 +1,4 @@ - @@ -29,7 +10,7 @@ POLICY_XACML_PDP_HOST - ${__P(host,127.0.0.1)} + ${__P(host,10.12.6.164)} = @@ -71,7 +52,7 @@ ${POLICY_XACML_PDP_HOST} 6969 - http + https policy/pdpx/v1/healthcheck GET @@ -133,7 +114,7 @@ if (prev.getResponseCode() == '200') { - http://${POLICY_XACML_PDP_HOST}:6969/policy/pdpx/v1/healthcheck + https://${POLICY_XACML_PDP_HOST}:6969/policy/pdpx/v1/healthcheck healthcheck zb!XztG34 @@ -200,7 +181,7 @@ if (prev.getResponseCode() == '200') { ${POLICY_XACML_PDP_HOST} 6969 - http + https policy/pdpx/v1/statistics GET @@ -266,7 +247,7 @@ if (prev.getResponseCode() == '200') { - http://${POLICY_XACML_PDP_HOST}:6969/policy/pdpx/v1/statistics + https://${POLICY_XACML_PDP_HOST}:6969/policy/pdpx/v1/statistics healthcheck zb!XztG34 -- cgit 1.2.3-korg