diff --git a/README.md b/README.md index ad342a2f..7dafc53c 100644 --- a/README.md +++ b/README.md @@ -9,29 +9,29 @@ More documentation https://jetty-project.github.io/jetty-load-generator/ ## Documentation ### Profile -You can use the API to define a running profile (steps with url to hit) +You can use the API to define a running resource (steps with url to hit) ```java - ResourceProfile resourceProfile = - new ResourceProfile( // + Resource resource = + new Resource( // new Resource( "/index.html" ) // ); ``` ### Load Generator -Then you run the load generator with this profile +Then you run the load generator with this resource ```java LoadGenerator loadGenerator = new LoadGenerator.Builder() // .host( your host ) // .port( the port ) // .users( a users number ) // - .transactionRate( 1 ) // number of transaction per second. Transaction means all the request from the ResourceProfile + .transactionRate( 1 ) // number of transaction per second. Transaction means all the request from the Resource .transport( transport ) // the type of transport. .httpClientTransport( HttpClientTransport instance have a look at the various builder ) // .scheduler( scheduler ) // .sslContextFactory( sslContextFactory ) // - .loadProfile( profile ) // + .resource( resource ) // .responseTimeListeners( some listeners you can build your own or use existing one ) // some listeners you can build your own .requestListeners( some listeners you can build your own or use existing one ) // .build(); @@ -112,9 +112,8 @@ See --help for usage ``` import org.mortbay.jetty.load.generator.profile.Resource -import org.mortbay.jetty.load.generator.profile.ResourceProfile -return new ResourceProfile(new Resource( "index.html", +return new Resource(new Resource( "index.html", new Resource( "/css/bootstrap.css", new Resource( "/css/bootstrap-theme.css" ), new Resource( "/js/jquery-3.1.1.min.js"), diff --git a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/LoadGenerator.java b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/LoadGenerator.java index 206c62eb..12d67814 100644 --- a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/LoadGenerator.java +++ b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/LoadGenerator.java @@ -36,7 +36,7 @@ import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.thread.Scheduler; import org.mortbay.jetty.load.generator.latency.LatencyTimeListener; -import org.mortbay.jetty.load.generator.profile.ResourceProfile; +import org.mortbay.jetty.load.generator.profile.Resource; import org.mortbay.jetty.load.generator.responsetime.ResponseTimeListener; import javax.servlet.http.HttpServletResponse; @@ -64,7 +64,7 @@ public class LoadGenerator private int users; /** - * number of transactions send per minute (transaction means the whole {@link ResourceProfile} + * number of transactions send per minute (transaction means the whole {@link Resource} *

* if < 0, the generator will not apply any regulation and send as many he can (will be resources dependant) *

@@ -88,7 +88,7 @@ public class LoadGenerator */ private int port; - private ResourceProfile profile; + private Resource resource; private HttpClientTransport httpClientTransport; @@ -141,14 +141,14 @@ public enum Transport FCGI } - LoadGenerator( int users, int transactionRate, String host, int port, ResourceProfile profile ) + LoadGenerator( int users, int transactionRate, String host, int port, Resource resource ) { this.users = users; this.transactionRate = transactionRate; this.host = host; this.port = port; this.stop = new AtomicBoolean( false ); - this.profile = profile; + this.resource = resource; } @@ -213,9 +213,9 @@ public SocketAddressResolver getSocketAddressResolver() return socketAddressResolver; } - public ResourceProfile getProfile() + public Resource getResource() { - return profile; + return resource; } public String getScheme() @@ -368,7 +368,7 @@ public void interrupt() public String toString() { return "LoadGenerator{" + "users=" + users + ", transactionRate=" + transactionRate + ", scheme='" + scheme - + '\'' + ", host='" + host + '\'' + ", port=" + port + ", profile=" + profile + ", requestListeners=" + + '\'' + ", host='" + host + '\'' + ", port=" + port + ", resource=" + resource + ", requestListeners=" + requestListeners + ", scheduler=" + scheduler + ", responseTimeListeners=" + responseTimeListeners + ", httpProxies=" + httpProxies + ", transport=" + transport + ", httpVersion=" + httpVersion + ", statisticsPath='" + statisticsPath + '\'' + '}'; @@ -656,7 +656,7 @@ public static class Builder private SocketAddressResolver socketAddressResolver; - private ResourceProfile profile; + private Resource resource; private List responseTimeListeners; @@ -741,9 +741,9 @@ public Builder httpClientSocketAddressResolver( SocketAddressResolver socketAddr return this; } - public Builder loadProfile( ResourceProfile resourceProfile ) + public Builder resource( Resource resource ) { - this.profile = resourceProfile; + this.resource = resource; return this; } @@ -795,7 +795,7 @@ public LoadGenerator build() { this.validate(); LoadGenerator loadGenerator = - new LoadGenerator( users, transactionRate, host, port, this.profile ); + new LoadGenerator( users, transactionRate, host, port, this.resource ); loadGenerator.requestListeners = this.requestListeners == null ? new ArrayList<>() // // : this.requestListeners; loadGenerator.httpClientTransport = httpClientTransport; @@ -831,7 +831,7 @@ public void validate() throw new IllegalArgumentException( "port must be a positive integer" ); } - if ( this.profile == null ) + if ( this.resource == null ) { throw new IllegalArgumentException( "a profile is mandatory" ); } diff --git a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/LoadGeneratorRunner.java b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/LoadGeneratorRunner.java index 192ab142..0e44e9a0 100644 --- a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/LoadGeneratorRunner.java +++ b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/LoadGeneratorRunner.java @@ -80,7 +80,7 @@ public void run() break; } - List resources = loadGenerator.getProfile().getResources(); + List resources = loadGenerator.getResource().getResources(); for ( Resource resource : resources ) { diff --git a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/latency/LatencyTimeDisplayListener.java b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/latency/LatencyTimeDisplayListener.java index d9867453..c1d2f5b2 100644 --- a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/latency/LatencyTimeDisplayListener.java +++ b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/latency/LatencyTimeDisplayListener.java @@ -88,7 +88,7 @@ public void onLoadGeneratorStart( LoadGenerator loadGenerator ) { // we initialize Maps to avoid concurrent issues recorderPerPath = new ConcurrentHashMap<>(); - initializeMap( recorderPerPath, loadGenerator.getProfile().getResources() ); + initializeMap( recorderPerPath, loadGenerator.getResource().getResources() ); } private void initializeMap( Map recorderMap, List resources ) diff --git a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/profile/Resource.java b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/profile/Resource.java index 273724fb..7962aaad 100644 --- a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/profile/Resource.java +++ b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/profile/Resource.java @@ -61,6 +61,16 @@ public Resource() // no op } + public Resource(Resource... resources) + { + this(null, resources); + } + + public Resource(List resources) + { + this.resources = resources; + } + public Resource( String path ) { this.path( path ); diff --git a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/profile/ResourceProfile.java b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/profile/ResourceProfile.java deleted file mode 100644 index 8d80f0d2..00000000 --- a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/profile/ResourceProfile.java +++ /dev/null @@ -1,74 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2017 Mort Bay Consulting Pty. Ltd. -// ------------------------------------------------------------------------ -// All rights reserved. This program and the accompanying materials -// are made available under the terms of the Eclipse Public License v1.0 -// and Apache License v2.0 which accompanies this distribution. -// -// The Eclipse Public License is available at -// http://www.eclipse.org/legal/epl-v10.html -// -// The Apache License v2.0 is available at -// http://www.opensource.org/licenses/apache2.0.php -// -// You may elect to redistribute this code under either of these licenses. -// ======================================================================== -// - -package org.mortbay.jetty.load.generator.profile; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * - */ -public class ResourceProfile - implements Serializable -{ - - private List resources = new ArrayList<>(); - - public ResourceProfile() - { - // no op - } - - public ResourceProfile( List resources ) - { - this.resources = resources; - } - - public ResourceProfile( Resource... resources ) - { - this.resources = resources == null ? new ArrayList<>() : Arrays.asList( resources ); - } - - public List getResources() - { - return resources; - } - - public void setResources( List resources ) - { - this.resources = resources; - } - - public void addResource( Resource resource ) - { - if ( this.resources == null ) - { - this.resources = new ArrayList<>(); - } - this.resources.add( resource ); - } - - @Override - public String toString() - { - return "ResourceProfile{" + "resources=" + resources + '}'; - } -} diff --git a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/responsetime/ResponseTimeDisplayListener.java b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/responsetime/ResponseTimeDisplayListener.java index 29fe3279..97344ed5 100644 --- a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/responsetime/ResponseTimeDisplayListener.java +++ b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/responsetime/ResponseTimeDisplayListener.java @@ -89,7 +89,7 @@ public void onLoadGeneratorStart( LoadGenerator loadGenerator ) { // we initialize Maps to avoid concurrent issues recorderPerPath = new ConcurrentHashMap<>(); - initializeMap( recorderPerPath, loadGenerator.getProfile().getResources() ); + initializeMap( recorderPerPath, loadGenerator.getResource().getResources() ); } private void initializeMap( Map recorderMap, List resources ) diff --git a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/responsetime/TimePerPathListener.java b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/responsetime/TimePerPathListener.java index 7770a054..306ccff5 100644 --- a/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/responsetime/TimePerPathListener.java +++ b/jetty-load-generator-client/src/main/java/org/mortbay/jetty/load/generator/responsetime/TimePerPathListener.java @@ -90,9 +90,9 @@ public void onLoadGeneratorStart( LoadGenerator loadGenerator ) { // we initialize Maps to avoid concurrent issues responseTimePerPath = new ConcurrentHashMap<>(); - initializeMap( responseTimePerPath, loadGenerator.getProfile().getResources() ); + initializeMap( responseTimePerPath, loadGenerator.getResource().getResources() ); latencyTimePerPath = new ConcurrentHashMap<>(); - initializeMap( latencyTimePerPath, loadGenerator.getProfile().getResources() ); + initializeMap( latencyTimePerPath, loadGenerator.getResource().getResources() ); } private void initializeMap( Map recorderMap, List resources ) diff --git a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/AbstractLoadGeneratorTest.java b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/AbstractLoadGeneratorTest.java index 2f08df8b..7ecd847f 100644 --- a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/AbstractLoadGeneratorTest.java +++ b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/AbstractLoadGeneratorTest.java @@ -53,7 +53,6 @@ import org.mortbay.jetty.load.generator.latency.LatencyTimeDisplayListener; import org.mortbay.jetty.load.generator.latency.LatencyTimeListener; import org.mortbay.jetty.load.generator.profile.Resource; -import org.mortbay.jetty.load.generator.profile.ResourceProfile; import org.mortbay.jetty.load.generator.responsetime.ResponseTimeDisplayListener; import org.mortbay.jetty.load.generator.responsetime.ResponseTimeListener; import org.mortbay.jetty.load.generator.responsetime.TimePerPathListener; @@ -214,7 +213,7 @@ protected List getLatencyTimeListeners() return Arrays.asList( new LatencyTimeDisplayListener(), new TimePerPathListener() ); } - protected LoadGenerator build( ResourceProfile profile ) + protected LoadGenerator build( Resource profile ) throws Exception { @@ -236,7 +235,7 @@ protected LoadGenerator build( ResourceProfile profile ) .transport( this.transport ) // .httpClientTransport( this.httpClientTransport() ) // .sslContextFactory( sslContextFactory ) // - .loadProfile( profile ) // + .resource( profile ) // .responseTimeListeners( responseTimeListeners.toArray( new ResponseTimeListener[responseTimeListeners.size()] ) ) // .latencyTimeListeners( @@ -257,7 +256,7 @@ protected void enhanceLoadGenerator( LoadGenerator loadGenerator ) // no op } - protected void runProfile( ResourceProfile profile ) + protected void runResource( Resource profile ) throws Exception { @@ -292,7 +291,7 @@ protected void runProfile( ResourceProfile profile ) } - private Collection paths( ResourceProfile profile ) + private Collection paths( Resource profile ) { Set paths = new HashSet<>(); @@ -304,17 +303,6 @@ private Collection paths( ResourceProfile profile ) return paths; } - private Collection paths( Resource resource ) - { - Set paths = new HashSet<>(); - paths.add( resource.getPath() ); - for ( Resource child : resource.getResources() ) - { - paths.addAll( paths( child ) ); - } - return paths; - } - public String currentTestRunInfos() { diff --git a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorGroupTest.java b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorGroupTest.java index 1413bff1..6a998a05 100644 --- a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorGroupTest.java +++ b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorGroupTest.java @@ -23,7 +23,6 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.mortbay.jetty.load.generator.profile.Resource; -import org.mortbay.jetty.load.generator.profile.ResourceProfile; import java.util.Map; import java.util.concurrent.atomic.AtomicLong; @@ -43,50 +42,47 @@ public LoadGeneratorGroupTest( LoadGenerator.Transport transport, int usersNumbe public void simple_with_group() throws Exception { - ResourceProfile resourceProfile = - new ResourceProfile( - new Resource( "/index.html", - new Resource( "/foo.html" ), // - new Resource( "/cider.html" )), - new Resource( "/wine.html" , // - new Resource( "/beer.html" ) - )); + Resource resourceProfile = new Resource( new Resource( "/index.html", // + new Resource( "/foo.html" ), // + new Resource( "/cider.html" ) ), + new Resource( "/wine.html", // + new Resource( "/beer.html" ) ) ); - runProfile( resourceProfile ); + runResource( resourceProfile ); - Map response = responsePerPath.getRecorderPerPath(); + Map response = responsePerPath.getRecorderPerPath(); - for ( Map.Entry entry : response.entrySet()) + for ( Map.Entry entry : response.entrySet() ) { logger.info( "responsePerPath: {}", entry ); } } @Test - public void website_like() throws Exception { - ResourceProfile sample = // - new ResourceProfile( // - new Resource( "index.html", // - new Resource( "/style.css", // - new Resource( "/logo.gif" ), // - new Resource( "/spacer.png" ) // - ), // - new Resource( "/fancy.css" ), // - new Resource( "/script.js", // - new Resource( "/library.js" ), // - new Resource( "/morestuff.js" ) // - ), // - new Resource( "/anotherScript.js" ), // - new Resource( "/iframeContents.html" ), // - new Resource( "/moreIframeContents.html" ), // - new Resource( "/favicon.ico" ) // - ) - ); - - - runProfile( sample ); - - Map response = responsePerPath.getRecorderPerPath(); + public void website_like() + throws Exception + { + Resource sample = // + new Resource( // + new Resource( "index.html", // + new Resource( "/style.css", // + new Resource( "/logo.gif" ), // + new Resource( "/spacer.png" ) // + ), // + new Resource( "/fancy.css" ), // + new Resource( "/script.js", // + new Resource( "/library.js" ), // + new Resource( "/morestuff.js" ) // + ), // + new Resource( "/anotherScript.js" ), // + new Resource( "/iframeContents.html" ), // + new Resource( "/moreIframeContents.html" ), // + new Resource( "/favicon.ico" ) // + ) ); + + runResource( sample ); + + Map response = responsePerPath.getRecorderPerPath(); logger.info( "responsePerPath: {}", response ); diff --git a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorJmxSimpleTest.java b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorJmxSimpleTest.java index 7659820b..0463e6d0 100644 --- a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorJmxSimpleTest.java +++ b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorJmxSimpleTest.java @@ -21,7 +21,6 @@ import org.eclipse.jetty.jmx.MBeanContainer; import org.mortbay.jetty.load.generator.profile.Resource; -import org.mortbay.jetty.load.generator.profile.ResourceProfile; import org.mortbay.jetty.load.generator.responsetime.JMXResponseTimeListener; import org.mortbay.jetty.load.generator.responsetime.ResponseTimeListener; import org.eclipse.jetty.util.log.Log; @@ -67,11 +66,8 @@ protected void enhanceLoadGenerator( LoadGenerator loadGenerator ) throws Except public void simple_test() throws Exception { - - ResourceProfile resourceProfile = new ResourceProfile( new Resource( "/index.html" ) ); - - runProfile( resourceProfile ); - + Resource resourceProfile = new Resource( new Resource( "/index.html" ) ); + runResource( resourceProfile ); } diff --git a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorRunNumberTest.java b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorRunNumberTest.java index 89aa3de5..7015e340 100644 --- a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorRunNumberTest.java +++ b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorRunNumberTest.java @@ -27,7 +27,6 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.mortbay.jetty.load.generator.profile.Resource; -import org.mortbay.jetty.load.generator.profile.ResourceProfile; import java.io.InputStream; import java.util.ArrayList; @@ -84,8 +83,8 @@ public void simpleTestLimitedRunTwo() responsePerPath = new ResponsePerPath(); - ResourceProfile resourceProfile = // - new ResourceProfile( new Resource( "/index.html" ) );//, new Resource( "/foo.html" ).wait( true ) ); + Resource resourceProfile = // + new Resource( new Resource( "/index.html" ) );//, new Resource( "/foo.html" ).wait( true ) ); Scheduler scheduler = new ScheduledExecutorScheduler( getClass().getName() + "-scheduler", false ); @@ -97,7 +96,7 @@ public void simpleTestLimitedRunTwo() .transactionRate( 1 ) // .transport( this.transport ) // .httpClientTransport( this.httpClientTransport() ) // - .loadProfile( resourceProfile ) // + .resource( resourceProfile ) // .sslContextFactory( sslContextFactory ) // .responseTimeListeners( responsePerPath ) // .httpVersion( httpVersion() ) // @@ -118,8 +117,8 @@ public void simpleTestLimitedRunTwoButTwice() responsePerPath = new ResponsePerPath(); - ResourceProfile resourceProfile = // - new ResourceProfile( new Resource( "/index.html" ) );//, new Resource( "/foo.html" ).wait( true ) ); + Resource resourceProfile = // + new Resource( new Resource( "/index.html" ) );//, new Resource( "/foo.html" ).wait( true ) ); Scheduler scheduler = new ScheduledExecutorScheduler( getClass().getName() + "-scheduler", false ); @@ -131,7 +130,7 @@ public void simpleTestLimitedRunTwoButTwice() .transactionRate( 1 ) // .transport( this.transport ) // .httpClientTransport( this.httpClientTransport() ) // - .loadProfile( resourceProfile ) // + .resource( resourceProfile ) // .sslContextFactory( sslContextFactory ) // .responseTimeListeners( responsePerPath ) // .httpVersion( httpVersion() ) // @@ -178,7 +177,7 @@ public void groupTestLimitedRunTwo() try (InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream( "website_profile.xml" )) { - ResourceProfile resourceProfile = (ResourceProfile) new XmlConfiguration( inputStream ).configure(); + Resource resourceProfile = (Resource) new XmlConfiguration( inputStream ).configure(); responsePerPath = new ResponsePerPath(); @@ -193,7 +192,7 @@ public void groupTestLimitedRunTwo() .sslContextFactory( sslContextFactory ) // .transport( this.transport ) // .httpClientTransport( this.httpClientTransport() ) // - .loadProfile( resourceProfile ) // + .resource( resourceProfile ) // .responseTimeListeners( responsePerPath ) // .httpVersion( httpVersion() ) // .build(); diff --git a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorSimpleRunTimeTest.java b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorSimpleRunTimeTest.java index b97acdf4..192bf646 100644 --- a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorSimpleRunTimeTest.java +++ b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorSimpleRunTimeTest.java @@ -26,7 +26,6 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.mortbay.jetty.load.generator.profile.Resource; -import org.mortbay.jetty.load.generator.profile.ResourceProfile; import org.mortbay.jetty.load.generator.responsetime.ResponseTimeDisplayListener; import org.mortbay.jetty.load.generator.responsetime.TimePerPathListener; @@ -48,8 +47,8 @@ public void simple_test_limited_time_run() throws Exception { - ResourceProfile resourceProfile = // - new ResourceProfile( new Resource( "/index.html" ).size( 1024 ) ); + Resource resourceProfile = // + new Resource( new Resource( "/index.html" ).size( 1024 ) ); Scheduler scheduler = new ScheduledExecutorScheduler( getClass().getName() + "-scheduler", false ); @@ -63,7 +62,7 @@ public void simple_test_limited_time_run() .transactionRate( 1 ) // .transport( this.transport ) // .httpClientTransport( this.httpClientTransport() ) // - .loadProfile( resourceProfile ) // + .resource( resourceProfile ) // .latencyTimeListeners( latency ) // .responseTimeListeners( new ResponseTimeDisplayListener(), new TimePerPathListener() ) // .httpVersion( httpVersion() ) // @@ -82,8 +81,8 @@ public void simple_test_limited_number_run_async_call() int requestNumber = 2; - ResourceProfile resourceProfile = // - new ResourceProfile( new Resource( "/index.html" ).size( 1024 ) ); + Resource resourceProfile = // + new Resource( new Resource( "/index.html" ).size( 1024 ) ); Scheduler scheduler = new ScheduledExecutorScheduler( getClass().getName() + "-scheduler", false ); @@ -98,7 +97,7 @@ public void simple_test_limited_number_run_async_call() .transactionRate( 1 ) // .transport( this.transport ) // .httpClientTransport( this.httpClientTransport() ) // - .loadProfile( resourceProfile ) // + .resource( resourceProfile ) // .latencyTimeListeners( result ) // .responseTimeListeners( result ) // .httpVersion( httpVersion() ) // @@ -125,8 +124,8 @@ public void simple_test_limited_number_run_sync_call() { int requestNumber = 2; - ResourceProfile resourceProfile = // - new ResourceProfile( new Resource( "/index.html" ).size( 1024 ).wait( true ) ); + Resource resourceProfile = // + new Resource( new Resource( "/index.html" ).size( 1024 ).wait( true ) ); Scheduler scheduler = new ScheduledExecutorScheduler( getClass().getName() + "-scheduler", false ); @@ -141,7 +140,7 @@ public void simple_test_limited_number_run_sync_call() .transactionRate( 1 ) // .transport( this.transport ) // .httpClientTransport( this.httpClientTransport() ) // - .loadProfile( resourceProfile ) // + .resource( resourceProfile ) // .latencyTimeListeners( result ) // .responseTimeListeners( result ) // .httpVersion( httpVersion() ) // diff --git a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorSimpleTest.java b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorSimpleTest.java index 6c1d2163..7c73989e 100644 --- a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorSimpleTest.java +++ b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/LoadGeneratorSimpleTest.java @@ -23,7 +23,6 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.mortbay.jetty.load.generator.profile.Resource; -import org.mortbay.jetty.load.generator.profile.ResourceProfile; @RunWith( Parameterized.class ) public class LoadGeneratorSimpleTest @@ -39,14 +38,13 @@ public LoadGeneratorSimpleTest( LoadGenerator.Transport transport, int usersNumb public void simple_test() throws Exception { - - ResourceProfile resourceProfile = - new ResourceProfile( // + Resource resourceProfile = + new Resource( // new Resource( "/index.html" )//, // //new Resource( "/foo.html" ).wait( true ) ); - runProfile( resourceProfile ); + runResource( resourceProfile ); } diff --git a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/profile/ResourceProfileBuildTest.java b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/profile/ResourceBuildTest.java similarity index 93% rename from jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/profile/ResourceProfileBuildTest.java rename to jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/profile/ResourceBuildTest.java index 5ae207f4..1e1fd21f 100644 --- a/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/profile/ResourceProfileBuildTest.java +++ b/jetty-load-generator-client/src/test/java/org/mortbay/jetty/load/generator/profile/ResourceBuildTest.java @@ -34,15 +34,15 @@ /** * */ -public class ResourceProfileBuildTest +public class ResourceBuildTest { @Test public void simple_build() throws Exception { - ResourceProfile resourceProfile = // - new ResourceProfile( // + Resource resourceProfile = // + new Resource( // new Resource( "/index.html" ).size( 1024 ) // ); @@ -57,8 +57,8 @@ public void simple_build() public void simple_two_resources() throws Exception { - ResourceProfile resourceProfile = // - new ResourceProfile( // + Resource resourceProfile = // + new Resource( // new Resource( "/index.html" ).size( 1024 ), // new Resource( "/beer.html" ).size( 2048 ).method( HttpMethod.POST.asString() ) // ); @@ -79,8 +79,8 @@ public void website_profile() throws Exception { - ResourceProfile sample = // - new ResourceProfile( // + Resource sample = // + new Resource( // new Resource( "index.html", // new Resource( "/style.css", // new Resource( "/logo.gif" ), // @@ -107,7 +107,7 @@ public void website_profile_with_xml() { try (InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream( "website_profile.xml" )) { - ResourceProfile sample = (ResourceProfile) new XmlConfiguration( inputStream ).configure(); + Resource sample = (Resource) new XmlConfiguration( inputStream ).configure(); web_profile_assert( sample ); } } @@ -125,7 +125,7 @@ public void website_profile_with_groovy() { try (InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream( "website_profile.groovy" )) { - ResourceProfile sample = (ResourceProfile) evaluateScript( read( inputStream ) ); + Resource sample = (Resource) evaluateScript( read( inputStream ) ); web_profile_assert( sample ); } } @@ -145,7 +145,7 @@ public Object evaluateScript( String script ) } - protected void web_profile_assert(ResourceProfile sample) { + protected void web_profile_assert(Resource sample) { /* diff --git a/jetty-load-generator-client/src/test/resources/website_profile.groovy b/jetty-load-generator-client/src/test/resources/website_profile.groovy index 3d458691..24dae453 100644 --- a/jetty-load-generator-client/src/test/resources/website_profile.groovy +++ b/jetty-load-generator-client/src/test/resources/website_profile.groovy @@ -1,7 +1,6 @@ import org.mortbay.jetty.load.generator.profile.Resource -import org.mortbay.jetty.load.generator.profile.ResourceProfile -return new ResourceProfile(new Resource( "index.html", +return new Resource(new Resource( "index.html", new Resource( "/style.css", new Resource( "/logo.gif" ), new Resource( "/spacer.png" ) diff --git a/jetty-load-generator-client/src/test/resources/website_profile.xml b/jetty-load-generator-client/src/test/resources/website_profile.xml index dfa76acf..fc9390f2 100644 --- a/jetty-load-generator-client/src/test/resources/website_profile.xml +++ b/jetty-load-generator-client/src/test/resources/website_profile.xml @@ -1,4 +1,4 @@ - + diff --git a/jetty-load-generator-collector/src/test/java/org/mortbay/jetty/load/collector/CollectorTest.java b/jetty-load-generator-collector/src/test/java/org/mortbay/jetty/load/collector/CollectorTest.java index 823ff1ed..c05c2f60 100644 --- a/jetty-load-generator-collector/src/test/java/org/mortbay/jetty/load/collector/CollectorTest.java +++ b/jetty-load-generator-collector/src/test/java/org/mortbay/jetty/load/collector/CollectorTest.java @@ -19,9 +19,6 @@ package org.mortbay.jetty.load.collector; import org.eclipse.jetty.client.api.Request; -import org.mortbay.jetty.load.generator.CollectorServer; -import org.mortbay.jetty.load.generator.HttpTransportBuilder; -import org.mortbay.jetty.load.generator.LoadGenerator; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConnectionFactory; @@ -41,8 +38,10 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import org.mortbay.jetty.load.generator.CollectorServer; +import org.mortbay.jetty.load.generator.HttpTransportBuilder; +import org.mortbay.jetty.load.generator.LoadGenerator; import org.mortbay.jetty.load.generator.profile.Resource; -import org.mortbay.jetty.load.generator.profile.ResourceProfile; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -104,22 +103,20 @@ public void shutdown() public void collect_informations() throws Exception { - ResourceProfile resourceProfile = new ResourceProfile( // - new Resource( "/index.html" ) - ); + Resource resource = new Resource( new Resource( "/index.html" ) ); - runProfile( resourceProfile ); + runProfile( resource ); } - protected void runProfile( ResourceProfile profile ) + protected void runProfile( Resource profile ) throws Exception { List loadGenerators = new ArrayList<>( serverNumbers ); - List collectorClients = new CopyOnWriteArrayList<>( ); + List collectorClients = new CopyOnWriteArrayList<>(); List testRequestListeners = new ArrayList<>( serverNumbers ); - List collectorResultHandlers = Arrays.asList( new LoggerCollectorResultHandler()); + List collectorResultHandlers = Arrays.asList( new LoggerCollectorResultHandler() ); for ( Server server : servers ) { @@ -139,20 +136,19 @@ protected void runProfile( ResourceProfile profile ) .transport( LoadGenerator.Transport.HTTP ) // .httpClientTransport( new HttpTransportBuilder().build() ) // .scheduler( scheduler ) // - .loadProfile( profile ) // + .resource( profile ) // .responseTimeListeners( collectorServer ) // .requestListeners( testRequestListener ) // .build(); loadGenerator.run(); - loadGenerators.add( loadGenerator ); CollectorClient collectorClient = new CollectorClient.Builder() // .addAddress( "localhost:" + collectorServer.getPort() ) // .scheduleDelayInMillis( 500 ) // - .collectorResultHandlers(collectorResultHandlers) // + .collectorResultHandlers( collectorResultHandlers ) // .build(); collectorClient.start(); diff --git a/jetty-load-generator-starter/simple_profile.groovy b/jetty-load-generator-starter/simple_profile.groovy index e190a332..ae807290 100644 --- a/jetty-load-generator-starter/simple_profile.groovy +++ b/jetty-load-generator-starter/simple_profile.groovy @@ -1,4 +1,3 @@ import org.mortbay.jetty.load.generator.profile.Resource -import org.mortbay.jetty.load.generator.profile.ResourceProfile -return new ResourceProfile(new Resource( "index.html"),new Resource("hello")); +return new Resource(new Resource( "index.html"),new Resource("hello")); diff --git a/jetty-load-generator-starter/src/main/java/org/mortbay/jetty/load/generator/starter/AbstractLoadGeneratorStarter.java b/jetty-load-generator-starter/src/main/java/org/mortbay/jetty/load/generator/starter/AbstractLoadGeneratorStarter.java index ea82699c..9e50b7c2 100644 --- a/jetty-load-generator-starter/src/main/java/org/mortbay/jetty/load/generator/starter/AbstractLoadGeneratorStarter.java +++ b/jetty-load-generator-starter/src/main/java/org/mortbay/jetty/load/generator/starter/AbstractLoadGeneratorStarter.java @@ -30,7 +30,7 @@ import org.mortbay.jetty.load.generator.HttpTransportBuilder; import org.mortbay.jetty.load.generator.LoadGenerator; import org.mortbay.jetty.load.generator.latency.LatencyTimeListener; -import org.mortbay.jetty.load.generator.profile.ResourceProfile; +import org.mortbay.jetty.load.generator.profile.Resource; import org.mortbay.jetty.load.generator.responsetime.ResponseTimeListener; import org.mortbay.jetty.load.generator.responsetime.TimePerPathListener; @@ -52,7 +52,7 @@ public abstract class AbstractLoadGeneratorStarter private Executor executor; - private ResourceProfile resourceProfile; + private Resource resource; public AbstractLoadGeneratorStarter( LoadGeneratorStarterArgs runnerArgs ) { @@ -137,7 +137,7 @@ protected void writeStats( LoadGenerator loadGenerator ) protected LoadGenerator getLoadGenerator() throws Exception { - ResourceProfile resourceProfile = getResourceProfile(); + Resource resourceProfile = getResource(); LoadGenerator loadGenerator = new LoadGenerator.Builder() // .host( starterArgs.getHost() ) // @@ -147,7 +147,7 @@ protected LoadGenerator getLoadGenerator() .transport( starterArgs.getTransport() ) // .httpClientTransport( httpClientTransport() ) // .sslContextFactory( sslContextFactory() ) // - .loadProfile( resourceProfile ) // + .resource( resourceProfile ) // .responseTimeListeners( getResponseTimeListeners() ) // .latencyTimeListeners( getLatencyTimeListeners() ) // .executor( getExecutor() != null ? getExecutor() : null ).build(); @@ -182,12 +182,12 @@ public LatencyTimeListener[] getLatencyTimeListeners() } - public ResourceProfile getResourceProfile() + public Resource getResource() throws Exception { - if ( resourceProfile != null ) + if ( resource != null ) { - return resourceProfile; + return resource; } if ( starterArgs.getProfileJsonPath() != null ) @@ -196,7 +196,7 @@ public ResourceProfile getResourceProfile() if ( Files.exists( profilePath ) ) { ObjectMapper objectMapper = new ObjectMapper(); - return resourceProfile = objectMapper.readValue( profilePath.toFile(), ResourceProfile.class ); + return resource = objectMapper.readValue( profilePath.toFile(), Resource.class ); } } if ( starterArgs.getProfileXmlPath() != null ) @@ -204,7 +204,7 @@ public ResourceProfile getResourceProfile() Path profilePath = Paths.get( starterArgs.getProfileXmlPath() ); try (InputStream inputStream = Files.newInputStream( profilePath )) { - return resourceProfile = (ResourceProfile) new XmlConfiguration( inputStream ).configure(); + return resource = (Resource) new XmlConfiguration( inputStream ).configure(); } } if ( starterArgs.getProfileGroovyPath() != null ) @@ -213,7 +213,7 @@ public ResourceProfile getResourceProfile() try (Reader reader = Files.newBufferedReader( profilePath )) { - return resourceProfile = (ResourceProfile) evaluateScript( reader ); + return resource = (Resource) evaluateScript( reader ); } } @@ -233,9 +233,9 @@ private Object evaluateScript( Reader script ) return interpreter.evaluate( script ); } - public void setResourceProfile( ResourceProfile resourceProfile ) + public void setResource( Resource resource ) { - this.resourceProfile = resourceProfile; + this.resource = resource; } public HttpClientTransport httpClientTransport() diff --git a/jetty-load-generator-starter/src/test/resources/loadgenerator_profile.groovy b/jetty-load-generator-starter/src/test/resources/loadgenerator_profile.groovy index 4a55ec36..f14b91cc 100644 --- a/jetty-load-generator-starter/src/test/resources/loadgenerator_profile.groovy +++ b/jetty-load-generator-starter/src/test/resources/loadgenerator_profile.groovy @@ -1,7 +1,6 @@ import org.mortbay.jetty.load.generator.profile.Resource -import org.mortbay.jetty.load.generator.profile.ResourceProfile -return new ResourceProfile(new Resource( "index.html", +return new Resource(new Resource( "index.html", new Resource( "/css/bootstrap.css", new Resource( "/css/bootstrap-theme.css" ), new Resource( "/js/jquery-3.1.1.min.js"),