Introduction
The 72 hour Stability Test for Drools PDP has the goal of introducing a steady flow of transactions initiated from a Test Client server running JMeter. The onset messages will be submitted through REST interface of Drools PDP. The results are verified through REST interface of Drools PDP using facts, source & sink topics. The JMeter testing will exercise the following use cases:
vCPE
vFirewall
vDNS
VOLTE
The stability test will loop through these use cases sequentially in two threaded environment (for each use case) for the duration of 72 hours.
Setup details
The stability test is performed on VM's running in OpenStack cloud environment. There are 2 seperate VM's, one for running policy framework & other one for running JMeter to simulate steady flow of transactions.
OpenStack environment details
Version: Mitaka 9.2
Policy Framework VM details
OS: Linux 4.4.0-119-generic #143-Ubuntu SMP
CPU: 4core
RAM: 8GB
HardDisk: 80GB
Docker Version: 18.03.0-ce, build 0520e24
Java: openjdk version "1.8.0_162"
JMeter VM details
OS: Linux 4.4.0-119-generic #143-Ubuntu SMP
CPU: 4core
RAM: 8GB
HardDisk: 80GB
Java: openjdk version "1.8.0_162"
Install JMeter in virtual machine
Make the etc/hosts entries
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo tee -a /etc/hosts
Make the DNS entries
echo "nameserver <PrimaryDNSIPIP>" >> /etc/resolvconf/resolv.conf.d/head echo "nameserver <SecondaryDNSIP>" >> /etc/resolvconf/resolv.conf.d/head resolvconf -u
Update the ubuntu software installer
apt-get update
Check & Install Java
apt-get install -y openjdk-8-jdk java -version
Download & install JMeter
mkdir jMeter cd jMeter wget http://mirrors.whoishostingthis.com/apache//jmeter/binaries/apache-jmeter-4.0.zip unzip apache-jmeter-4.0.zip Follow the instructions in this link for installing plugin manager - https://jmeter-plugins.org/wiki/PluginsManager/
Run JMeter
/home/ubuntu/jMeter/apache-jmeter-4.0/bin/jmeter
The above command will load the JMeter UI. Then navigate to File → Open → Browse and select the test plan jmx file to open.
Install ONAP Policy Framework in virtual machine
Follow the steps mentioned in the below link to install ONAP Policy Framework with controllers & policies in a virtual machine.
ONAP Policy Framework: Standalone installation in Virtual Machine
Test Plan
The 72 hours stability test will run the following steps one by one sequentially in two threaded loop.
- Check facts in memory - Before starting the test, we need to make sure that there are no stuck events in engine.
- vCPE controller - The vCPE controller will be responsible for trigerring the vCPE success test cases.
- VNF ID Generator - This will generate a new VNF ID for every request.
- Request ID Generator - This will generate a new Request ID for every request.
- vCPE ONSET Request - This step will send a vCPE onset message to REST interface of drools PDP.
- APPC Success Response - This step will send the APPC success response message to REST interface of drools PDP.
- vCPE ABATEMENT Request - This step will send the vCPE ABATEMENT message to REST interface of drools PDP.
- Assertion Controller - This controller will be responsible for performing assertions for the request sent earlier.
- Get Sink Events - This step will fetch all the events from sink topic POLICY-CL-MGT and then verify the FINAL SUCCESS notification against the request ID of vCPE onset message sent earlier.
- vCPE Failure Controller - The vCPE controller will be responsible for trigerring the vCPE failure test cases.
- VNF ID Generator - This will generate a new VNF ID for every request.
- Request ID Generator - This will generate a new Request ID for every request.
- vCPE ONSET Request - This step will send a vCPE onset message to REST interface of drools PDP.
- APPC Failure Response - This step will send the APPC failure response message to REST interface of drools PDP.
- Assertion Controller - This controller will be responsible for performing assertions for the request sent earlier.
- Get Sink Events - This step will fetch all the events from sink topic POLICY-CL-MGT and then verify the FINAL FAILURE notification against the request ID of vCPE onset message sent earlier.
- vDNS Controller - The vDNS controller will be responsible for trigerring the vDNS test flow.
- vServer Name Generator - This step will generate a new vServer name for every request.
- Request ID Generator - This will generate a new Request ID for every request.
- vDNS ONSET Request - This step will send a vDNS onset message to REST interface of drools PDP.
- Assertion Controller - This controller will be responsible for performing assertions for the request sent earlier.
- Get Sink Events - This step will fetch all the events from sink topic POLICY-CL-MGT and then verify the FINAL SUCCESS notification against the request ID of vDNS onset message sent earlier.
- vFW controller - The vFW controller will be responsible for trigerring the vFirewall test flow.
- VNF ID Generator - This will generate a new VNF ID for every request.
- Request ID Generator - This will generate a new Request ID for every request.
- vFirewall ONSET Request - This step will send a vFirewall onset message to REST interface of drools PDP.
- APPC Legacy Success Response - This step will send the APPC success response message to REST interface of drools PDP.
- Assertion Controller - This controller will be responsible for performing assertions for the request sent earlier.
- Get Sink Events - This step will fetch all the events from sink topic POLICY-CL-MGT and then verify the FINAL SUCCESS notification against the request ID of vFirewall onset message sent earlier.
- VOLTE Controller - The VOLTE controller will be responsible for triggering the VOLTE test flow.
- Request ID Generator - This will generate a new Request ID for every request.
- vServer Name Generator - This step will generate a new vServer name for every request.
- VNF ID Generator - This will generate a new VNF ID for every request.
- VOLTE ONSET Request - This step will send a VOLTE onset message to REST interface of drools PDP.
- Assertion Controller - This controller will be responsible for performing assertions for the request sent earlier.
- Get Sink Events - This step will fetch all the events from sink topic POLICY-CL-MGT and then verify the FINAL SUCCESS notification against the request ID of VOLTE onset message sent earlier.
- Check facts in memory - Before ending the test, we need to make sure that there are no stuck events in engine.
Important Note: There is wait introduced after sending every ONSET, Response, Request messages to drools PDP so that it is able to process the message before getting the next one. If needed, the wait time can be suitably adjusted based on the setup and time taken by drools PDP to process the messages.