diff options
Diffstat (limited to 'sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java')
4 files changed, 277 insertions, 0 deletions
diff --git a/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/CatalogLocalTest.java b/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/CatalogLocalTest.java new file mode 100644 index 0000000000..9914995e04 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/CatalogLocalTest.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +package org.apache.tuscany.sca.performance; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.node.Node; +import org.junit.Assert; +import org.junit.Test; + +import services.Catalog; + +/** + * @version $Rev$ $Date$ + */ +public class CatalogLocalTest extends TestCase { + public static String COMPOSITE = "catalog-local.composite"; + + private Node node; + + public CatalogLocalTest() { + super(); + } + + public CatalogLocalTest(String name, Node node) { + super(name); + this.node = node; + } + + @Test + public void testCatalog() throws Exception { + Catalog catalogService = node.getService(Catalog.class, "CatalogAggregator"); + Assert.assertEquals(6, catalogService.get().length); + } +} diff --git a/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteJsonRPCTest.java b/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteJsonRPCTest.java new file mode 100644 index 0000000000..cfebd1c52b --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteJsonRPCTest.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +package org.apache.tuscany.sca.performance; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.node.Node; +import org.junit.Assert; +import org.junit.Test; + +import services.Catalog; + +/** + * @version $Rev$ $Date$ + */ +public class CatalogRemoteJsonRPCTest extends TestCase { + public static String COMPOSITE = "catalog-remote-jsonrpc.composite"; + + private Node node; + + public CatalogRemoteJsonRPCTest(String name, Node node) { + super(name); + this.node = node; + } + + @Test + public void testCatalog() throws Exception { + Catalog catalogService = node.getService(Catalog.class, "CatalogAggregator"); + Assert.assertEquals(6, catalogService.get().length); + } +} diff --git a/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteWsTest.java b/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteWsTest.java new file mode 100644 index 0000000000..075789a327 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/CatalogRemoteWsTest.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +package org.apache.tuscany.sca.performance; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.node.Node; +import org.junit.Assert; +import org.junit.Test; + +import services.Catalog; + +/** + * @version $Rev$ $Date$ + */ +public class CatalogRemoteWsTest extends TestCase { + public static String COMPOSITE = "catalog-remote-ws.composite"; + + private Node node; + + public CatalogRemoteWsTest(String name, Node node) { + super(name); + this.node = node; + } + + @Test + public void testCatalog() throws Exception { + Catalog catalogService = node.getService(Catalog.class, "CatalogAggregator"); + Assert.assertEquals(6, catalogService.get().length); + } +} diff --git a/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/LoadTestCase.java b/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/LoadTestCase.java new file mode 100644 index 0000000000..57648a7137 --- /dev/null +++ b/sandbox/lresende/sca-2.x/itest/binding-throughput/src/test/java/org/apache/tuscany/sca/performance/LoadTestCase.java @@ -0,0 +1,129 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +package org.apache.tuscany.sca.performance; + +import java.text.NumberFormat; +import java.util.concurrent.TimeUnit; + +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.ContributionLocationHelper; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.Test; + +import com.clarkware.junitperf.ConstantTimer; +import com.clarkware.junitperf.LoadTest; +import com.clarkware.junitperf.Timer; + +public class LoadTestCase { + private static int USERS = 50; + private static int ITERATIONS = 10; + private static Timer TIMER = new ConstantTimer(10); + + protected static synchronized Node initializeTuscanyRuntime(String composite) { + System.out.println(">>> initializing Tuscany Runtime...."); + + /* + Node node = null; + + NodeFactory factory = NodeFactory.getInstance(); + + String location = ContributionLocationHelper.getContributionLocation(LoadTestCase.class); + + ContributionConfiguration contributionConfiguration = + factory.createContributionConfiguration() + .addDeploymentComposite(composite) + .setURI("c") + .setLocation(location); + + NodeConfiguration configuration = + factory.createNodeConfiguration() + //.setDomainURI("tuscany:performance") + .addContribution(contributionConfiguration); + + node = factory.createNode(configuration); + node.start(); + */ + + /**/ + long startTime = 0; + long endTime = 0; + long duration = 0; + + Node node = null; + + startTime = System.nanoTime(); + + String location = ContributionLocationHelper.getContributionLocation(LoadTestCase.class); + node = NodeFactory.newInstance().createNode(composite, new Contribution("c", location)); + node.start(); + + endTime = System.nanoTime(); + duration = TimeUnit.MILLISECONDS.convert(endTime - startTime, TimeUnit.NANOSECONDS); + + System.out.println(">>> >>> Runtime initialization: " + + NumberFormat.getInstance().format(duration) + " ms"); + + /**/ + + return node; + } + + public static junit.framework.Test localTests() { + System.out.println("#### Local Tests"); + Node node = initializeTuscanyRuntime(CatalogLocalTest.COMPOSITE); + junit.framework.Test testCase = new CatalogLocalTest("testCatalog", node); + junit.framework.Test loadTest = new LoadTest(testCase, USERS, ITERATIONS, TIMER); + //node.stop(); + return loadTest; + } + + public static junit.framework.Test jsonTests() { + System.out.println("#### JSON-RPC Remote Tests"); + Node node = initializeTuscanyRuntime(CatalogRemoteJsonRPCTest.COMPOSITE); + junit.framework.Test testCase = new CatalogRemoteJsonRPCTest("testCatalog", node); + junit.framework.Test loadTest = new LoadTest(testCase, USERS, ITERATIONS, TIMER); + //node.stop(); + return loadTest; + } + + public static junit.framework.Test wsTests() { + System.out.println("#### WS Remote Tests"); + Node node = initializeTuscanyRuntime(CatalogRemoteWsTest.COMPOSITE); + junit.framework.Test testCase = new CatalogRemoteJsonRPCTest("testCatalog", node ); + junit.framework.Test loadTest = new LoadTest(testCase, USERS, ITERATIONS, TIMER); + //node.stop(); + return loadTest; + } + + @Test + public void run() throws Exception { + junit.textui.TestRunner.run(localTests()); + junit.textui.TestRunner.run(jsonTests()); + junit.textui.TestRunner.run(wsTests()); + } + + + public static void main(String[] args) throws Exception { + LoadTestCase loadTest = new LoadTestCase(); + loadTest.run(); + } + +} |