2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.mso.global_tests.jmeter;
23 import java.io.FileInputStream;
24 import java.io.IOException;
25 import java.lang.reflect.Method;
26 import java.nio.file.Files;
27 import java.nio.file.Paths;
28 import java.nio.file.StandardCopyOption;
30 import org.apache.jmeter.engine.StandardJMeterEngine;
31 import org.apache.jmeter.save.SaveService;
32 import org.apache.jmeter.util.JMeterUtils;
33 import org.apache.jorphan.collections.HashTree;
34 import org.jboss.arquillian.container.test.api.Deployment;
35 import org.jboss.arquillian.container.test.api.RunAsClient;
36 import org.jboss.arquillian.container.test.api.Testable;
37 import org.jboss.arquillian.junit.Arquillian;
38 import org.jboss.shrinkwrap.api.Archive;
39 import org.jboss.shrinkwrap.api.ShrinkWrap;
40 import org.jboss.shrinkwrap.api.spec.JavaArchive;
41 import org.jboss.shrinkwrap.api.spec.WebArchive;
42 import org.jboss.shrinkwrap.resolver.api.maven.Maven;
43 import org.junit.After;
44 import org.junit.AfterClass;
45 import org.junit.BeforeClass;
46 import org.junit.Test;
47 import org.junit.runner.RunWith;
49 import org.openecomp.mso.global_tests.ArquillianPackagerForITCases;
51 @RunWith(Arquillian.class)
52 public class JMeterITCase {
54 @Deployment(name="mso-api-handler-infra",testable=false)
55 public static Archive<?> createMsoApiHandlerInfraWarDeployment () {
56 System.out.println("Deploying ApiHandler Infra WAR on default server");
57 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../mso-api-handlers/mso-api-handler-infra/target/", "mso-api-handler-infra*.war", "mso-api-handler-infra.war");
60 @Deployment(name="mso-vnf-adapter",testable=false)
61 public static Archive<?> createMsoVnfAdapterWarDeployment () {
62 System.out.println("Deploying VNF Adapter WAR on default server");
63 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../adapters/mso-vnf-adapter/target/", "mso-vnf-adapter*.war", "mso-vnf-adapter.war");
66 @Deployment(name="mso-tenant-adapter",testable=false)
67 public static Archive<?> createMsoTenantAdapterWarDeployment () {
68 System.out.println("Deploying Tenant Adapter WAR on default server");
69 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../adapters/mso-tenant-adapter/target/", "mso-tenant-adapter*.war", "mso-tenant-adapter.war");
72 @Deployment(name="mso-sdnc-adapter",testable=false)
73 public static Archive<?> createMsoSdncAdapterWarDeployment () {
74 System.out.println("Deploying SDNC Adapter WAR on default server");
75 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../adapters/mso-sdnc-adapter/target/", "mso-sdnc-adapter*.war", "mso-sdnc-adapter.war");
78 @Deployment(name="mso-network-adapter",testable=false)
79 public static Archive<?> createMsoNetworkAdapterWarDeployment () {
80 System.out.println("Deploying Network Adapter WAR on default server");
81 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../adapters/mso-network-adapter/target/", "mso-network-adapter*.war", "mso-network-adapter.war");
84 @Deployment(name="mso-requests-db-adapter",testable=false)
85 public static Archive<?> createMsoRequestsDbAdapterWarDeployment () {
86 System.out.println("Deploying Requests DB Adapter WAR on default server");
87 return ArquillianPackagerForITCases.createPackageFromExistingOne("../../adapters/mso-requests-db-adapter/target/", "mso-requests-db-adapter*.war", "mso-requests-db-adapter.war");
90 @Deployment(name="asdc-controller",testable=true)
91 public static Archive<?> createAsdcControllerWarDeployment () {
92 System.out.println("Deploying ASDC Controller WAR with additional resources on default server");
94 WebArchive warArchive = (WebArchive)ArquillianPackagerForITCases.createPackageFromExistingOne("../../asdc-controller/target/", "asdc-controller*.war", "asdc-controller.war");
96 // Add the current test class
97 JavaArchive testclasses = ShrinkWrap.create (JavaArchive.class, "testClasses.jar");
98 testclasses.addClasses(JMeterITCase.class);
100 warArchive.addAsLibraries(testclasses);
102 // BE CAREFUL a settings.xml file must be located in ${home.user}/.m2/settings.xml
103 warArchive.addAsLibraries(Maven.resolver()
104 .resolve("org.mockito:mockito-all:1.10.19")
105 .withoutTransitivity ()
108 // Take one war randomly to make arquilian happy
110 Testable.archiveToTest(warArchive);
118 public static void waitBeforeStart () throws InterruptedException {
119 System.out.println ("Executing " + JMeterITCase.class.getName ());
125 public void testJMeter() throws IOException {
127 StandardJMeterEngine jmeter = new StandardJMeterEngine();
130 // Initialize Properties, logging, locale, etc.
131 JMeterUtils.loadJMeterProperties("/tmp/apache-jmeter-2.13/bin/jmeter.properties");
132 JMeterUtils.setJMeterHome("/tmp/apache-jmeter-2.13");
133 JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
134 JMeterUtils.initLocale();
136 // Initialize JMeter SaveService
137 SaveService.loadProperties();
139 // Load existing .jmx Test Plan
141 FileInputStream in = new FileInputStream("./src/test/resources/JMeter/MSO-Perf.jmx");
142 HashTree testPlanTree = SaveService.loadTree(in);
143 testPlanTree.getTree("test variables");
147 jmeter.configure(testPlanTree);
152 public static void afterArquillianTest() {
154 Files.move (Paths.get ("./jmeter.log"),
155 Paths.get ("./target/surefire-reports/jmeter.log"),
156 StandardCopyOption.REPLACE_EXISTING);
158 /* Files.move (Paths.get ("./mso-perf.jtl"),
159 Paths.get ("./target/surefire-reports/mso-perf.log"),
160 StandardCopyOption.REPLACE_EXISTING);*/
162 } catch (IOException e) {