[Jakarta-jmeter Wiki] Update of JMeterAutomatedRemoteTes ting by brettcave
Dear Wiki user, You have subscribed to a wiki page or wiki category on Jakarta-jmeter Wiki for change notification. The JMeterAutomatedRemoteTesting page has been changed by brettcave. The comment on this change is: -G parameter does work with properties files, updated documentation.. http://wiki.apache.org/jakarta-jmeter/JMeterAutomatedRemoteTesting?action=diffrev1=3rev2=4 -- * have touched on remote testing (from GUI is fine) = Set up = - * In your existing test plan, make sure that any variations in testing make use of variables. For example, if running a HTTP sampler, use HTTP Request Defaults to specify a host as ${__P(targetHost)}. Other useful places for variables might include number of threads, ramp-up period or scheduler duration in a thread group, using a format of ${__P(threadgroup.threads,500)} (The __P function is shorthand for __parameter. See the userguide for more info on using this parameter). + * In your existing test plan, make sure that any variations in testing make use of variables. For example, if running a HTTP sampler, use HTTP Request Defaults to specify a host as `${__P(targetHost)}`. Other useful places for variables might include number of threads, ramp-up period or scheduler duration in a thread group, using a format of `${__P(threadgroup.threads,500)}` (The `__P` function is shorthand for `__parameter`. See the userguide for more info on using this parameter). * Save your test plan and properties file to a directory. * Create a properties file containing all your variables. E.g. mytest.properties could contain threadgroup.threads=100, targetHost=my-target-host.com * The test plan does not need Listeners, as this will be configured via parameters. This will improve performance on the testing. * Run the test mode in stand-alone mode (i.e. no remote servers): `jmeter -n -t load_test.jmx -l load_test_report.jtl -q mytest.properties -j mytest.log` + * 1 small piece of functionality missing is the ability to set global variables from a property file. the -q parameter defines an additional property file, which is the equivalent of setting properties for the contents of the file using the -J parameter. These parameters are not global however, as would be set by the -G parameter. The -G parameter can reference either a property in the format of `-Gprop=val` or a properties file, such as `-G./myglobal.properties` - * 1 small piece of functionality missing is the ability to set global variables from a property file. the -q parameter defines an additional property file, which is the equivalent of setting properties for the contents of the file using the -J parameter. This parameters are not global however, as would be set by the -G parameter. the following bash script (if your using Linux) would help with converting a properties file to global properties: - - {{{ - for var in `grep -vE ^(#|$) mytest.properties`; do - GLOBAL_VARS=-G${var} ${GLOBAL_VARS} - done - }}} - This is a relatively simple bash expansion, and will break if there are any spaces in variable names or values (e.g. test.description=My Test - the space would break the bash for loop.) * On all client machines, start up JMeter server, ensuring that firewall is not blocking connections (clients must all be on the same subnet). * On JMeter controller (the host initializing the test), run the test with the -R parameter (can be run using -r and specfiying hosts in jmeter properties file): - `jmeter -n -t load_test.jmx -l load_test_report.jtl -q mytest.properties -j mytest.log -R remotehost1,remotehost2 ${GLOBAL_VARS}` + `jmeter -n -t load_test.jmx -l load_test_report.jtl -Gmytest.properties -j mytest.log -R remotehost1,remotehost2 ${GLOBAL_VARS}` Note that load injection to targets will be a increased as a ratio of number of threads per thread group multiplied by number of client machines. @@ -45, +38 @@ # If set as an environment var, then use it, otherwise leave it unset. HOST_LIST=${HOST_LIST:+-R ${HOST_LIST}} + # Had an issue with -Gglobal.properties file, so parsed this into individual properties. for var in `grep -vE ^#|^$ ${JMETER_CUSTOM_PROPERTIES}`; do GLOBAL_VARS=-G${var} ${GLOBAL_VARS} done + + # But after testing, it does work as expected. + GLOBAL_VARS=-G${JMETER_CUSTOM_PROPERTIES} if [ -f ${loadtest}.jmx ]; then echo Running ${loadtest} with: - To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org
[Jakarta-jmeter Wiki] Update of JMeterAutomatedRemoteTes ting by brettcave
Dear Wiki user, You have subscribed to a wiki page or wiki category on Jakarta-jmeter Wiki for change notification. The JMeterAutomatedRemoteTesting page has been changed by brettcave. http://wiki.apache.org/jakarta-jmeter/JMeterAutomatedRemoteTesting -- New page: This document shows how you can use JMeter to perform more automated (non-interactive) testing. = Requirements = This article assumes that you: * know the basics of JMeter * have an existing test plan * have a bit of knowledge on using variables in test plans * have touched on remote testing (from GUI is fine) = Set up = # In your existing test plan, make sure that any variations in testing make use of variables. For example, if running a HTTP sampler, use HTTP Request Defaults to specify a host as ${__P(targetHost)}. Other useful places for variables might include number of threads, ramp-up period or scheduler duration in a thread group, using a format of ${__P(threadgroup.threads,500)} (The __P function is shorthand for __parameter. See the userguide for more info on using this parameter). # Save your test plan and properties file to a directory. # Create a properties file containing all your variables. E.g. mytest.properties could contain threadgroup.threads=100, targetHost=my-target-host.com # The test plan does not need Listeners, as this will be configured via parameters. This will improve performance on the testing. # Run the test mode in stand-alone mode (i.e. no remote servers): `jmeter -n -t load_test.jmx -l load_test_report.jtl -q mytest.properties -j mytest.log` # 1 small piece of functionality missing is the ability to set global variables from a property file. the -q parameter defines an additional property file, which is the equivalent of setting properties for the contents of the file using the -J parameter. This parameters are not global however, as would be set by the -G parameter. the following bash script (if your using Linux) would help with converting a properties file to global properties: {{{ for var in `grep -vE ^(#|$) mytest.properties`; do GLOBAL_VARS=-G${var} ${GLOBAL_VARS} done }}} This is a relatively simple bash expansion, and will break if there are any spaces in variable names or values (e.g. test.description=My Test - the space would break the bash for loop.) # On all client machines, start up JMeter server, ensuring that firewall is not blocking connections (clients must all be on the same subnet). # On JMeter controller (the host initializing the test), run the test with the -R parameter (can be run using -r and specfiying hosts in jmeter properties file): `jmeter -n -t load_test.jmx -l load_test_report.jtl -q mytest.properties -j mytest.log -R remotehost1,remotehost2 ${GLOBAL_VARS}` Note that load injection to targets will be a increased as a ratio of number of threads per thread group multiplied by number of client machines. A script similar to the following could be used to start up jmeter: {{{ #!/bin/sh loadtest=myloadtest GLOBAL_VARS= REPORT_DIR=/tmp JMETER_PROPERTIES=jmeter.properties JMETER_CUSTOM_PROPERTIES=mytest.properties # If set as an environment var, then use it, otherwise leave it unset. HOST_LIST=${HOST_LIST:+-R ${HOST_LIST}} for var in `grep -vE ^#|^$ ${JMETER_CUSTOM_PROPERTIES}`; do GLOBAL_VARS=-G${var} ${GLOBAL_VARS} done if [ -f ${loadtest}.jmx ]; then echo Running ${loadtest} with: echo -e--- $JMETER -n -t ${loadtest}.jmx -l ${REPORT_DIR}/${loadtest}.jtl -p ${JMETER_PROPERTIES} ${GLOBAL_VARS} ${HOST_LIST} -j ${REPORT_DIR}/_${loadtest}.log --- $JMETER -n \ -t ${loadtest}.jmx \ -l ${REPORT_DIR}/${loadtest}.jtl \ -p ${JMETER_PROPERTIES} \ ${GLOBAL_VARS} \ ${HOST_LIST} \ -j ${REPORT_DIR}/_${loadtest}.log else echo Could not find test plan for ${loadtest} fi }}} - To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org
[Jakarta-jmeter Wiki] Update of JMeterAutomatedRemoteTes ting by brettcave
Dear Wiki user, You have subscribed to a wiki page or wiki category on Jakarta-jmeter Wiki for change notification. The JMeterAutomatedRemoteTesting page has been changed by brettcave. http://wiki.apache.org/jakarta-jmeter/JMeterAutomatedRemoteTesting?action=diffrev1=1rev2=2 -- = Requirements = This article assumes that you: - * know the basics of JMeter + * know the basics of JMeter - * have an existing test plan + * have an existing test plan - * have a bit of knowledge on using variables in test plans + * have a bit of knowledge on using variables in test plans - * have touched on remote testing (from GUI is fine) + * have touched on remote testing (from GUI is fine) = Set up = - # In your existing test plan, make sure that any variations in testing make use of variables. For example, if running a HTTP sampler, use HTTP Request Defaults to specify a host as ${__P(targetHost)}. Other useful places for variables might include number of threads, ramp-up period or scheduler duration in a thread group, using a format of ${__P(threadgroup.threads,500)} (The __P function is shorthand for __parameter. See the userguide for more info on using this parameter). + * In your existing test plan, make sure that any variations in testing make use of variables. For example, if running a HTTP sampler, use HTTP Request Defaults to specify a host as ${__P(targetHost)}. Other useful places for variables might include number of threads, ramp-up period or scheduler duration in a thread group, using a format of ${__P(threadgroup.threads,500)} (The __P function is shorthand for __parameter. See the userguide for more info on using this parameter). - # Save your test plan and properties file to a directory. + * Save your test plan and properties file to a directory. - # Create a properties file containing all your variables. E.g. mytest.properties could contain threadgroup.threads=100, targetHost=my-target-host.com + * Create a properties file containing all your variables. E.g. mytest.properties could contain threadgroup.threads=100, targetHost=my-target-host.com - # The test plan does not need Listeners, as this will be configured via parameters. This will improve performance on the testing. + * The test plan does not need Listeners, as this will be configured via parameters. This will improve performance on the testing. - # Run the test mode in stand-alone mode (i.e. no remote servers): `jmeter -n -t load_test.jmx -l load_test_report.jtl -q mytest.properties -j mytest.log` + * Run the test mode in stand-alone mode (i.e. no remote servers): `jmeter -n -t load_test.jmx -l load_test_report.jtl -q mytest.properties -j mytest.log` - # 1 small piece of functionality missing is the ability to set global variables from a property file. the -q parameter defines an additional property file, which is the equivalent of setting properties for the contents of the file using the -J parameter. This parameters are not global however, as would be set by the -G parameter. the following bash script (if your using Linux) would help with converting a properties file to global properties: + * 1 small piece of functionality missing is the ability to set global variables from a property file. the -q parameter defines an additional property file, which is the equivalent of setting properties for the contents of the file using the -J parameter. This parameters are not global however, as would be set by the -G parameter. the following bash script (if your using Linux) would help with converting a properties file to global properties: {{{ for var in `grep -vE ^(#|$) mytest.properties`; do GLOBAL_VARS=-G${var} ${GLOBAL_VARS} @@ -24, +24 @@ This is a relatively simple bash expansion, and will break if there are any spaces in variable names or values (e.g. test.description=My Test - the space would break the bash for loop.) - # On all client machines, start up JMeter server, ensuring that firewall is not blocking connections (clients must all be on the same subnet). + * On all client machines, start up JMeter server, ensuring that firewall is not blocking connections (clients must all be on the same subnet). - # On JMeter controller (the host initializing the test), run the test with the -R parameter (can be run using -r and specfiying hosts in jmeter properties file): + * On JMeter controller (the host initializing the test), run the test with the -R parameter (can be run using -r and specfiying hosts in jmeter properties file): `jmeter -n -t load_test.jmx -l load_test_report.jtl -q mytest.properties -j mytest.log -R remotehost1,remotehost2 ${GLOBAL_VARS}` Note that load injection to targets will be a increased as a ratio of number of threads per thread group multiplied by number of client machines. @@ -69, +69 @@ fi }}} - - To
[Jakarta-jmeter Wiki] Update of JMeterAutomatedRemoteTes ting by brettcave
Dear Wiki user, You have subscribed to a wiki page or wiki category on Jakarta-jmeter Wiki for change notification. The JMeterAutomatedRemoteTesting page has been changed by brettcave. http://wiki.apache.org/jakarta-jmeter/JMeterAutomatedRemoteTesting?action=diffrev1=2rev2=3 -- = Requirements = This article assumes that you: + * know the basics of JMeter * have an existing test plan * have a bit of knowledge on using variables in test plans @@ -16, +17 @@ * The test plan does not need Listeners, as this will be configured via parameters. This will improve performance on the testing. * Run the test mode in stand-alone mode (i.e. no remote servers): `jmeter -n -t load_test.jmx -l load_test_report.jtl -q mytest.properties -j mytest.log` * 1 small piece of functionality missing is the ability to set global variables from a property file. the -q parameter defines an additional property file, which is the equivalent of setting properties for the contents of the file using the -J parameter. This parameters are not global however, as would be set by the -G parameter. the following bash script (if your using Linux) would help with converting a properties file to global properties: + {{{ for var in `grep -vE ^(#|$) mytest.properties`; do GLOBAL_VARS=-G${var} ${GLOBAL_VARS} done }}} - This is a relatively simple bash expansion, and will break if there are any spaces in variable names or values (e.g. test.description=My Test - the space would break the bash for loop.) - * On all client machines, start up JMeter server, ensuring that firewall is not blocking connections (clients must all be on the same subnet). + * On all client machines, start up JMeter server, ensuring that firewall is not blocking connections (clients must all be on the same subnet). * On JMeter controller (the host initializing the test), run the test with the -R parameter (can be run using -r and specfiying hosts in jmeter properties file): + `jmeter -n -t load_test.jmx -l load_test_report.jtl -q mytest.properties -j mytest.log -R remotehost1,remotehost2 ${GLOBAL_VARS}` Note that load injection to targets will be a increased as a ratio of number of threads per thread group multiplied by number of client machines. - A script similar to the following could be used to start up jmeter: + A bash script similar to the following could be used to start up jmeter (called jmeter_test_wrapper.sh for example): + {{{ #!/bin/sh @@ -43, +46 @@ HOST_LIST=${HOST_LIST:+-R ${HOST_LIST}} for var in `grep -vE ^#|^$ ${JMETER_CUSTOM_PROPERTIES}`; do - GLOBAL_VARS=-G${var} ${GLOBAL_VARS} + GLOBAL_VARS=-G${var} ${GLOBAL_VARS} done if [ -f ${loadtest}.jmx ]; then - echo Running ${loadtest} with: + echo Running ${loadtest} with: - echo -e--- - $JMETER -n - -t ${loadtest}.jmx + echo -e--- + $JMETER -n + -t ${loadtest}.jmx - -l ${REPORT_DIR}/${loadtest}.jtl + -l ${REPORT_DIR}/${loadtest}.jtl - -p ${JMETER_PROPERTIES} - ${GLOBAL_VARS} - ${HOST_LIST} + -p ${JMETER_PROPERTIES} + ${GLOBAL_VARS} + ${HOST_LIST} - -j ${REPORT_DIR}/_${loadtest}.log + -j ${REPORT_DIR}/_${loadtest}.log - --- + --- - $JMETER -n \ - -t ${loadtest}.jmx \ + $JMETER -n \ + -t ${loadtest}.jmx \ - -l ${REPORT_DIR}/${loadtest}.jtl \ + -l ${REPORT_DIR}/${loadtest}.jtl \ - -p ${JMETER_PROPERTIES} \ - ${GLOBAL_VARS} \ - ${HOST_LIST} \ + -p ${JMETER_PROPERTIES} \ + ${GLOBAL_VARS} \ + ${HOST_LIST} \ - -j ${REPORT_DIR}/_${loadtest}.log + -j ${REPORT_DIR}/_${loadtest}.log else - echo Could not find test plan for ${loadtest} + echo Could not find test plan for ${loadtest} fi }}} + For a local test, you could run: `./jmeter_test_wrapper.sh` + For a remote test, it can be modified as `HOST_LIST=192.168.1.10,192.168.1.12 ./jmeter_test_wrapper.sh` + Now all you need to do is make sure the servers are running and add the above command into scheduler. - To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org