2 package org.openecomp.mso.global_tests.jmeter;
4 import java.io.FileInputStream;
5 import java.io.IOException;
6 import java.lang.reflect.Method;
7 import java.nio.file.Files;
8 import java.nio.file.Paths;
9 import java.nio.file.StandardCopyOption;
11 import org.apache.jmeter.engine.StandardJMeterEngine;
12 import org.apache.jmeter.save.SaveService;
13 import org.apache.jmeter.util.JMeterUtils;
14 import org.apache.jorphan.collections.HashTree;
15 import org.jboss.arquillian.container.test.api.Deployment;
16 import org.jboss.arquillian.container.test.api.RunAsClient;
17 import org.jboss.arquillian.container.test.api.Testable;
18 import org.jboss.arquillian.junit.Arquillian;
19 import org.jboss.shrinkwrap.api.Archive;
20 import org.jboss.shrinkwrap.api.ShrinkWrap;
21 import org.jboss.shrinkwrap.api.spec.JavaArchive;
22 import org.jboss.shrinkwrap.api.spec.WebArchive;
23 import org.jboss.shrinkwrap.resolver.api.maven.Maven;
24 import org.junit.After;
25 import org.junit.AfterClass;
26 import org.junit.BeforeClass;
27 import org.junit.Test;
28 import org.junit.runner.RunWith;
30 import org.openecomp.mso.global_tests.ArquillianPackagerForITCases;
32 @RunWith(Arquillian.class)
33 public class JMeterITCase {
35 @Deployment(name="mso-api-handler-infra",testable=false)
36 public static Archive<?> createMsoApiHandlerInfraWarDeployment () {
37 System.out.println("Deploying ApiHandler Infra WAR on default server");
38 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../mso-api-handlers/mso-api-handler-infra/target/", "mso-api-handler-infra*.war", "mso-api-handler-infra.war");
41 @Deployment(name="mso-vnf-adapter",testable=false)
42 public static Archive<?> createMsoVnfAdapterWarDeployment () {
43 System.out.println("Deploying VNF Adapter WAR on default server");
44 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../adapters/mso-vnf-adapter/target/", "mso-vnf-adapter*.war", "mso-vnf-adapter.war");
47 @Deployment(name="mso-tenant-adapter",testable=false)
48 public static Archive<?> createMsoTenantAdapterWarDeployment () {
49 System.out.println("Deploying Tenant Adapter WAR on default server");
50 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../adapters/mso-tenant-adapter/target/", "mso-tenant-adapter*.war", "mso-tenant-adapter.war");
53 @Deployment(name="mso-sdnc-adapter",testable=false)
54 public static Archive<?> createMsoSdncAdapterWarDeployment () {
55 System.out.println("Deploying SDNC Adapter WAR on default server");
56 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../adapters/mso-sdnc-adapter/target/", "mso-sdnc-adapter*.war", "mso-sdnc-adapter.war");
59 @Deployment(name="mso-network-adapter",testable=false)
60 public static Archive<?> createMsoNetworkAdapterWarDeployment () {
61 System.out.println("Deploying Network Adapter WAR on default server");
62 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../adapters/mso-network-adapter/target/", "mso-network-adapter*.war", "mso-network-adapter.war");
65 @Deployment(name="mso-requests-db-adapter",testable=false)
66 public static Archive<?> createMsoRequestsDbAdapterWarDeployment () {
67 System.out.println("Deploying Requests DB Adapter WAR on default server");
68 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../adapters/mso-requests-db-adapter/target/", "mso-requests-db-adapter*.war", "mso-requests-db-adapter.war");
71 @Deployment(name="asdc-controller",testable=true)
72 public static Archive<?> createAsdcControllerWarDeployment () {
73 System.out.println("Deploying ASDC Controller WAR with additional resources on default server");
75 WebArchive warArchive = (WebArchive)ArquillianPackagerForITCases.createPackageFromExistingOne("../../asdc-controller/target/", "asdc-controller*.war", "asdc-controller.war");
77 // Add the current test class
78 JavaArchive testclasses = ShrinkWrap.create (JavaArchive.class, "testClasses.jar");
79 testclasses.addClasses(JMeterITCase.class);
81 warArchive.addAsLibraries(testclasses);
83 // BE CAREFUL a settings.xml file must be located in ${home.user}/.m2/settings.xml
84 warArchive.addAsLibraries(Maven.resolver()
85 .resolve("org.mockito:mockito-all:1.10.19")
86 .withoutTransitivity ()
89 // Take one war randomly to make arquilian happy
91 Testable.archiveToTest(warArchive);
99 public static void waitBeforeStart () throws InterruptedException {
100 System.out.println ("Executing " + JMeterITCase.class.getName ());
106 public void testJMeter() throws IOException {
108 StandardJMeterEngine jmeter = new StandardJMeterEngine();
111 // Initialize Properties, logging, locale, etc.
112 JMeterUtils.loadJMeterProperties("/tmp/apache-jmeter-2.13/bin/jmeter.properties");
113 JMeterUtils.setJMeterHome("/tmp/apache-jmeter-2.13");
114 JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
115 JMeterUtils.initLocale();
117 // Initialize JMeter SaveService
118 SaveService.loadProperties();
120 // Load existing .jmx Test Plan
122 FileInputStream in = new FileInputStream("./src/test/resources/JMeter/MSO-Perf.jmx");
123 HashTree testPlanTree = SaveService.loadTree(in);
124 testPlanTree.getTree("test variables");
128 jmeter.configure(testPlanTree);
133 public static void afterArquillianTest() {
135 Files.move (Paths.get ("./jmeter.log"),
136 Paths.get ("./target/surefire-reports/jmeter.log"),
137 StandardCopyOption.REPLACE_EXISTING);
139 /* Files.move (Paths.get ("./mso-perf.jtl"),
140 Paths.get ("./target/surefire-reports/mso-perf.log"),
141 StandardCopyOption.REPLACE_EXISTING);*/
143 } catch (IOException e) {