From 0510ea5ac447d2a348775fac5095cee956b34c55 Mon Sep 17 00:00:00 2001 From: Bilal A Date: Mon, 8 Apr 2019 12:56:51 -0400 Subject: Adds basic performance tests for Policy PAP Includes 1) Basic health and stats tests 2) Log analysis script Change-Id: I6d8f7a0203251d9b685b89c4d0c8e19cd74c24c6 Issue-ID: POLICY-1460 Signed-off-by: Bilal A --- testsuites/performance/pom.xml | 52 +++++ testsuites/performance/src/assembly/assembly.xml | 42 ++++ .../src/main/resources/testplans/perf.jmx | 239 +++++++++++++++++++++ .../src/main/resources/testplans/results.sh | 34 +++ testsuites/pom.xml | 1 + 5 files changed, 368 insertions(+) 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 diff --git a/testsuites/performance/pom.xml b/testsuites/performance/pom.xml new file mode 100644 index 00000000..54e6a50d --- /dev/null +++ b/testsuites/performance/pom.xml @@ -0,0 +1,52 @@ + + + 4.0.0 + + org.onap.policy.pap + 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..3d306aa0 --- /dev/null +++ b/testsuites/performance/src/assembly/assembly.xml @@ -0,0 +1,42 @@ + + + performance + + zip + + /policy-pap/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..fe972edb --- /dev/null +++ b/testsuites/performance/src/main/resources/testplans/perf.jmx @@ -0,0 +1,239 @@ + + + + + + Policy PAP Performance Tests + false + true + true + + + + POLICY_PAP_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_PAP_HOST} + 6969 + https + + policy/pap/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; + assert res.name == "Policy PAP"; + assert res.healthy==true; + assert res.message=="alive"; + +} + + + + + + + Accept + application/json + + + Content-Type + application/json + + + + + + + + https://${POLICY_PAP_HOST}:6969/policy/pap/v1/healthcheck + healthcheck + zb!XztG34 + + + + + true + + + + + continue + + false + -1 + + ${USERS} + 1 + true + ${DURATION} + 1 + + + + + + + ${POLICY_PAP_HOST} + 6969 + https + + policy/pap/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_PAP_HOST}:6969/policy/pap/v1/statistics + healthcheck + zb!XztG34 + + + + + true + + + + + + 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 a0cc283b..61c10a94 100644 --- a/testsuites/pom.xml +++ b/testsuites/pom.xml @@ -28,5 +28,6 @@ pom stability + performance \ No newline at end of file -- cgit 1.2.3-korg