Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Master Apache JMeter - From Load Testing to DevOps
Master Apache JMeter - From Load Testing to DevOps

Master Apache JMeter - From Load Testing to DevOps: Master performance testing with JMeter

By Antonio Gomes Rodrigues , Bruno Demion (Milamber) , Philippe Mouawad
€33.99
Book Aug 2019 468 pages 1st Edition
eBook
€26.99 €17.99
Print
€33.99
Subscription
€14.99 Monthly
eBook
€26.99 €17.99
Print
€33.99
Subscription
€14.99 Monthly

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Black & white paperback book shipped to your address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Aug 1, 2019
Length 468 pages
Edition : 1st Edition
Language : English
ISBN-13 : 9781839217647
Vendor :
Apache
Category :
Languages :
Table of content icon View table of contents Preview book icon Preview Book

Master Apache JMeter - From Load Testing to DevOps

Quick Start with JMeter

With JMeter, you can quickly run your first load test. This chapter will show you how to set up a simple test case with JMeter and its HTTP(S) Test Script Recorder element.

Our Process

Here are the steps to set up our test:

  1. Launch JMeter and prepare the recording of our script
  2. Configure the browser to use the HTTP(S) Test Script Recorder of JMeter
  3. Record the script
  4. Customize our script (add assertions, rename transactions, add think time…)
  5. Validate our script with a single user
  6. Configure the load test (define the number of users, number of iterations, warm-up duration, and load test duration…)
  7. Run and analyze the load test

Setup JMeter to Record Our Browsing Session

  1. Launch JMeter:
    Figure 1.1: JMeter
    Figure 1.1: JMeter
  2. Use the Templates… feature of JMeter:
    Figure 1.2: JMeter Templates… feature
    Figure 1.2: JMeter Templates… feature
  3. Choose Recording with Think Time model and click Create:
    Figure 1.3: Recording template
    Figure 1.3: Recording template
  4. The test plan is ready:
    Figure 1.4: Result of Recording template
    Figure 1.4: Result of Recording template
  5. To save time in the future, we will select the HTTP Request Defaults element and fill in the Server Name or IP and Port Number sections:
    Figure 1.5: Result of Recording template
    Figure 1.5: Result of Recording template

    Note

    With this trick, we will share these two fields in every element HTTP Request Defaults and JMeter will not put them in each HTTP Request during recording.

    Caution

    During the load test, you should avoid having the injector (JMeter) on the same server as the application under test.

    Otherwise, the injected load will be impacted by the application's bad performance, and the application could be impacted by the injector's bad performance.

    Our tree is ready; we must now start the proxy server of JMeter.

    But before doing that, let's look at the HTTP(S) Test Script Recorder element.

  6. For the name of recorded transactions, we have two options in Recorder:

    Transaction name, which allows you to fully name them as you wish.

    Prefix, which will just prepend the prefix to the default name given by JMeter, which is usually the URL path.

    Figure 1.6: Transaction naming strategy
    Figure 1.6: Transaction naming strategy
  7. Note that with the default configuration of the template, static resources (image, CSS file, JS file…) are not recorded:
Figure 1.7: Exclude static resource capture
Figure 1.7: Exclude static resource capture

JMeter is now ready to record our navigation session.

Configure Your Browser

  1. In order for JMeter to record the navigation session, we must configure our browser to use the proxy server that JMeter launched.
  2. For example, with Firefox, choose the menu Edit > Preferences:
    Figure 1.8: Proxy selection in Firefox
    Figure 1.8: Proxy selection in Firefox
  3. Then select the Advanced tab and then the Network sub-tab. Let's click on Settings…:
    Figure 1.9: Proxy selection in Firefox – Network
    Figure 1.9: Proxy selection in Firefox – Network
  4. In the new window, select the Manual proxy configuration option, then fill in the HTTP Proxy field with the following IP address: 127.0.0.1 (corresponding to the local IP address (localhost)), and fill in the Port field with 8888 (corresponding to the default listening port of the JMeter proxy server).

    Caution

    When recording a local application, be careful to delete localhost and 127.0.0.1 from the No Proxy for: field.

  5. Finally, check the Use this proxy server for all protocols box.
  6. Let's save the modifications by clicking on the OK button in the Firefox window:
Figure 1.10: Proxy selection in Firefox – configuration
Figure 1.10: Proxy selection in Firefox – configuration

Save Our Script

Now, let's start our navigation session.

  1. To do this, simply click the Start button on the HTTP(S) Test Script Recorder element:
    Figure 1.11: HTTP(S) Test Script Recorder
    Figure 1.11: HTTP(S) Test Script Recorder

    Note

    Note that the default listening port of JMeter proxy server is 8888.

    Note the first time you start the recorder, it takes more time as it generates a Certificate Authority that you can use to intercept HTTPS traffic.

  2. This will open a Recorder: Transactions Control window, allowing us to set in real time the name of each recorded step transactions and their grouping based on time:
    Figure 1.12: Recorder: Transactions Control
    Figure 1.12: Recorder: Transactions Control
  3. In this chapter, we will use the Request Parameters example delivered with Apache Tomcat.

    From the browser, navigate to the website:

    http://server:8080/examples/servlets/

    In our case, it will be:

    http://localhost:8080/examples/servlets/

    Here is the first page:

    Figure 1.13: First page of our scenario
    Figure 1.13: First page of our scenario
  4. Then, click on the Execute link of the Required test servlet:
    Figure 1.14: Request Parameters Example with no entries
    Figure 1.14: Request Parameters Example with no entries

    Enter first and last name and click on Submit Query:

    Figure 1.15: Request Parameters Example before submitting query
    Figure 1.15: Request Parameters Example before submitting query

    When the result appears, we can stop our navigation session:

    Figure 1.16: Request Parameters Example after submitting query
    Figure 1.16: Request Parameters Example after submitting query
  5. In JMeter, the scenario tree is the following:
    Figure 1.17: Result of our recording in JMeter
    Figure 1.17: Result of our recording in JMeter
  6. Let us observe what has been recorded:
    Figure 1.18: Observation table
  7. As we can see, thanks to the trick of filling the Server Name or IP and Port Number sections of the HTTP Request Defaults element, these fields remain empty in the HTTP Request elements.

    This will allow us to change the URL and port of the tested site in only one location (HTTP Request Defaults) if necessary (for example, if the script was run on a development environment, and the final test will run on the pre-production environment):

    Figure 1.19: Result of filling in the Server Name or IP and Port Number sections of the HTTP Request Defaults element
    Figure 1.19: Result of filling in the Server Name or IP and Port Number sections of the HTTP Request Defaults element
  8. Similarly, the waiting time between each action (Think time) was recorded:
    Figure 1.20: Recorded think time
    Figure 1.20: Recorded think time
  9. To make it easier to read the results, it is preferable to rename HTTP requests. The automatically chosen name, by default, corresponds to the called URI, but you can control it in the little popup and give it a meaningful name before clicking on the button that will issue the request(s).

    The result of the renaming:

    Figure 1.21: Renaming result
    Figure 1.21: Renaming result
  10. As the last step to the development of the scenario, we are going to add assertions to each HTTP request. These will make it possible to verify that the response received is indeed the expected one.
  11. To do this, select the HTTP request that will receive the assertion, then, via the context menu, choose Add > Assertions > Response Assertion:
    Figure 1.22: Add assertion
    Figure 1.22: Add assertion
  12. A new Response Assertion element has been added as a child to the SC01_1 Homepage request.
  13. Let's select the following options:

    Field to Test: Text Response

    Pattern Matching Rules: Substring (default)

    Patterns to Test: Let's click on the Add button, then insert text contained in the answer:

    Figure 1.23: Assertion configuration
    Figure 1.23: Assertion configuration
  14. To find what data we need to check in response, the trick is to use the View Results Tree element, located under our HTTP(S) Test Script Recorder, by choosing the desired request and then by selecting the tab Response data > Response Body.
  15. We can then copy the text and use Add from clipboard button in the Response Assertion:
    Figure 1.24: Result in Results Tree
    Figure 1.24: Result in Results Tree
  16. Repeat the operation for all the requests in the same way as you did for the home page.

    In the end, we get this JMeter scenario tree:

Figure 1.25: Our JMeter scenario
Figure 1.25: Our JMeter scenario

Now our scenario is ready, let's proceed to the validation of our script.

Validate Our Script with Only One User

  1. It's easy with the validation mode, as it allows us to execute our script with only one user, one iteration, and without pause time.
  2. To do this, let's select the Thread Group that we want to test, right-click, and select Validate:
    Figure 1.26: Validation of our script
    Figure 1.26: Validation of our script
  3. Validate in the View Results Tree element that all Sample Results are green. If that is the case, we can proceed to the configuration step of our load test.

Setup Our Load Test and Launch It

  1. To set up our load test, select the Thread Group element in order to change the following values:

    Number of Threads (users): 10

    Ramp-Up Period (in seconds): 10

    Loop Count: 100

    This gives 10 virtual users (VU) who arrive in 10 seconds (1 per second), and each one will make 100 executions of the query sequence.

    Figure 1.27: Load test parameters
    Figure 1.27: Load test parameters

    Caution

    Several strategies for setting the load test exists. This point will be discussed deeply in Chapter 2, JMeter Overview.

  2. We could run our load test directly from the JMeter GUI, but this is not recommended as it would not be optimal for performances of injection (although, in our case, with only 10 users, it shouldn't be a problem).
  3. When load testing, it is advisable to monitor the injectors (servers where JMeter runs) at least during the first test at full load to validate the correct behavior of the injectors.

    This ensures that if we get bad response times, the cause is the application being tested and not JMeter.

    Note that this is not specific to JMeter but should be done regardless of the tool you use.

    Note

    An easy and quick solution to monitor JMeter can be to use the Servers Performance Monitoring plugin from the JMeter Plugins (https://jmeter-plugins.org/wiki/PerfMon/).

  4. So, let's use best practices directly and run our test from the command line in CLI mode (also called Non-GUI mode in JMeter).
  5. But before that, to follow our test in real time, we will add the Backend Listener element to enable live monitoring of the progress of the test with Grafana (https://grafana.com/).
  6. To do this, right-click on Test Plan -> Add -> Listener -> Backend Listener:
    Figure 1.28: Add Backend Listener
    Figure 1.28: Add Backend Listener
  7. Let's configure it to send the test results to our InfluxDB database (https://www.influxdata.com/):
Figure 1.29: Backend Listener configuration
Figure 1.29: Backend Listener configuration

Note

In the samplersRegex field, we can use a regular expression to keep only the queries that were recorded by the HTTP(S) Test Script Recorder element (thanks to Prefix: field).

Run Our Load Test and Analyze It

  1. Before launching our test, one last tip is to ask JMeter to generate an HTML report at the end.

    For this, we will use the following command line:

    <JMETER_HOME>/bin/jmeter -n -t [jmx file] -l [results file] -e -o [Path\ to output folder]

  2. Let's run our test and see what happens.

    In our terminal:

    Figure 1.30: Follows a load test in the terminal
    Figure 1.30: Follows a load test in the terminal
  3. In Grafana (the dashboard used is one of those proposed in the Grafana website (https://grafana.com/dashboards/3351)):

    Note

    We can use this dashboard, too: https://grafana.com/dashboards/5496.

    Figure 1.31: Real-time monitoring in Grafana
    Figure 1.31: Real-time monitoring in Grafana
    Figure 1.32: Real-time monitoring in Grafana
    Figure 1.32: Real-time monitoring in Grafana
  4. At the end of our test, we get the HTML dynamic Web Report with 17 graphs, an APDEX (https://en.wikipedia.org/wiki/Apdex) table, a statistics table (showing response times, error rates, network metrics…), a table with an errors summary, and a table with Top5errors per sampler. So, you get everything you need to analyze your load test:
Figure 1.33: HTML report
Figure 1.33: HTML report
Figure 1.34: HTML report
Figure 1.34: HTML report

The icing on the cake is a CSV file we get at the end of our test; this format is usable by many tools to visualize the results differently.

In this chapter, we have seen how to quickly get started with JMeter to perform a simple load test.

Our Process

Here are the steps to set up our test:

  1. Launch JMeter and prepare the recording of our script
  2. Configure the browser to use the HTTP(S) Test Script Recorder of JMeter
  3. Record the script
  4. Customize our script (add assertions, rename transactions, add think time…)
  5. Validate our script with a single user
  6. Configure the load test (define the number of users, number of iterations, warm-up duration, and load test duration…)
  7. Run and analyze the load test

Setup JMeter to Record Our Browsing Session

  1. Launch JMeter:
    Figure 1.1: JMeter
    Figure 1.1: JMeter
  2. Use the Templates… feature of JMeter:
    Figure 1.2: JMeter Templates… feature
    Figure 1.2: JMeter Templates… feature
  3. Choose Recording with Think Time model and click Create:
    Figure 1.3: Recording template
    Figure 1.3: Recording template
  4. The test plan is ready:
    Figure 1.4: Result of Recording template
    Figure 1.4: Result of Recording template
  5. To save time in the future, we will select the HTTP Request Defaults element and fill in the Server Name or IP and Port Number sections:
    Figure 1.5: Result of Recording template
    Figure 1.5: Result of Recording template

    Note

    With this trick, we will share these two fields in every element HTTP Request Defaults and JMeter will not put them in each HTTP Request during recording.

    Caution

    During the load test, you should avoid having the injector (JMeter) on the same server as the application under test.

    Otherwise, the injected load will be impacted by the application's bad performance, and the application could be impacted by the injector's bad performance.

    Our tree is ready; we must now start the proxy server of JMeter.

    But before doing that, let's look at the HTTP(S) Test Script Recorder element.

  6. For the name of recorded transactions, we have two options in Recorder:

    Transaction name, which allows you to fully name them as you wish.

    Prefix, which will just prepend the prefix to the default name given by JMeter, which is usually the URL path.

    Figure 1.6: Transaction naming strategy
    Figure 1.6: Transaction naming strategy
  7. Note that with the default configuration of the template, static resources (image, CSS file, JS file…) are not recorded:
Figure 1.7: Exclude static resource capture
Figure 1.7: Exclude static resource capture

JMeter is now ready to record our navigation session.

Configure Your Browser

  1. In order for JMeter to record the navigation session, we must configure our browser to use the proxy server that JMeter launched.
  2. For example, with Firefox, choose the menu Edit > Preferences:
    Figure 1.8: Proxy selection in Firefox
    Figure 1.8: Proxy selection in Firefox
  3. Then select the Advanced tab and then the Network sub-tab. Let's click on Settings…:
    Figure 1.9: Proxy selection in Firefox – Network
    Figure 1.9: Proxy selection in Firefox – Network
  4. In the new window, select the Manual proxy configuration option, then fill in the HTTP Proxy field with the following IP address: 127.0.0.1 (corresponding to the local IP address (localhost)), and fill in the Port field with 8888 (corresponding to the default listening port of the JMeter proxy server).

    Caution

    When recording a local application, be careful to delete localhost and 127.0.0.1 from the No Proxy for: field.

  5. Finally, check the Use this proxy server for all protocols box.
  6. Let's save the modifications by clicking on the OK button in the Firefox window:
Figure 1.10: Proxy selection in Firefox – configuration
Figure 1.10: Proxy selection in Firefox – configuration

Save Our Script

Now, let's start our navigation session.

  1. To do this, simply click the Start button on the HTTP(S) Test Script Recorder element:
    Figure 1.11: HTTP(S) Test Script Recorder
    Figure 1.11: HTTP(S) Test Script Recorder

    Note

    Note that the default listening port of JMeter proxy server is 8888.

    Note the first time you start the recorder, it takes more time as it generates a Certificate Authority that you can use to intercept HTTPS traffic.

  2. This will open a Recorder: Transactions Control window, allowing us to set in real time the name of each recorded step transactions and their grouping based on time:
    Figure 1.12: Recorder: Transactions Control
    Figure 1.12: Recorder: Transactions Control
  3. In this chapter, we will use the Request Parameters example delivered with Apache Tomcat.

    From the browser, navigate to the website:

    http://server:8080/examples/servlets/

    In our case, it will be:

    http://localhost:8080/examples/servlets/

    Here is the first page:

    Figure 1.13: First page of our scenario
    Figure 1.13: First page of our scenario
  4. Then, click on the Execute link of the Required test servlet:
    Figure 1.14: Request Parameters Example with no entries
    Figure 1.14: Request Parameters Example with no entries

    Enter first and last name and click on Submit Query:

    Figure 1.15: Request Parameters Example before submitting query
    Figure 1.15: Request Parameters Example before submitting query

    When the result appears, we can stop our navigation session:

    Figure 1.16: Request Parameters Example after submitting query
    Figure 1.16: Request Parameters Example after submitting query
  5. In JMeter, the scenario tree is the following:
    Figure 1.17: Result of our recording in JMeter
    Figure 1.17: Result of our recording in JMeter
  6. Let us observe what has been recorded:
    Figure 1.18: Observation table
  7. As we can see, thanks to the trick of filling the Server Name or IP and Port Number sections of the HTTP Request Defaults element, these fields remain empty in the HTTP Request elements.

    This will allow us to change the URL and port of the tested site in only one location (HTTP Request Defaults) if necessary (for example, if the script was run on a development environment, and the final test will run on the pre-production environment):

    Figure 1.19: Result of filling in the Server Name or IP and Port Number sections of the HTTP Request Defaults element
    Figure 1.19: Result of filling in the Server Name or IP and Port Number sections of the HTTP Request Defaults element
  8. Similarly, the waiting time between each action (Think time) was recorded:
    Figure 1.20: Recorded think time
    Figure 1.20: Recorded think time
  9. To make it easier to read the results, it is preferable to rename HTTP requests. The automatically chosen name, by default, corresponds to the called URI, but you can control it in the little popup and give it a meaningful name before clicking on the button that will issue the request(s).

    The result of the renaming:

    Figure 1.21: Renaming result
    Figure 1.21: Renaming result
  10. As the last step to the development of the scenario, we are going to add assertions to each HTTP request. These will make it possible to verify that the response received is indeed the expected one.
  11. To do this, select the HTTP request that will receive the assertion, then, via the context menu, choose Add > Assertions > Response Assertion:
    Figure 1.22: Add assertion
    Figure 1.22: Add assertion
  12. A new Response Assertion element has been added as a child to the SC01_1 Homepage request.
  13. Let's select the following options:

    Field to Test: Text Response

    Pattern Matching Rules: Substring (default)

    Patterns to Test: Let's click on the Add button, then insert text contained in the answer:

    Figure 1.23: Assertion configuration
    Figure 1.23: Assertion configuration
  14. To find what data we need to check in response, the trick is to use the View Results Tree element, located under our HTTP(S) Test Script Recorder, by choosing the desired request and then by selecting the tab Response data > Response Body.
  15. We can then copy the text and use Add from clipboard button in the Response Assertion:
    Figure 1.24: Result in Results Tree
    Figure 1.24: Result in Results Tree
  16. Repeat the operation for all the requests in the same way as you did for the home page.

    In the end, we get this JMeter scenario tree:

Figure 1.25: Our JMeter scenario
Figure 1.25: Our JMeter scenario

Now our scenario is ready, let's proceed to the validation of our script.

Validate Our Script with Only One User

  1. It's easy with the validation mode, as it allows us to execute our script with only one user, one iteration, and without pause time.
  2. To do this, let's select the Thread Group that we want to test, right-click, and select Validate:
    Figure 1.26: Validation of our script
    Figure 1.26: Validation of our script
  3. Validate in the View Results Tree element that all Sample Results are green. If that is the case, we can proceed to the configuration step of our load test.

Setup Our Load Test and Launch It

  1. To set up our load test, select the Thread Group element in order to change the following values:

    Number of Threads (users): 10

    Ramp-Up Period (in seconds): 10

    Loop Count: 100

    This gives 10 virtual users (VU) who arrive in 10 seconds (1 per second), and each one will make 100 executions of the query sequence.

    Figure 1.27: Load test parameters
    Figure 1.27: Load test parameters

    Caution

    Several strategies for setting the load test exists. This point will be discussed deeply in Chapter 2, JMeter Overview.

  2. We could run our load test directly from the JMeter GUI, but this is not recommended as it would not be optimal for performances of injection (although, in our case, with only 10 users, it shouldn't be a problem).
  3. When load testing, it is advisable to monitor the injectors (servers where JMeter runs) at least during the first test at full load to validate the correct behavior of the injectors.

    This ensures that if we get bad response times, the cause is the application being tested and not JMeter.

    Note that this is not specific to JMeter but should be done regardless of the tool you use.

    Note

    An easy and quick solution to monitor JMeter can be to use the Servers Performance Monitoring plugin from the JMeter Plugins (https://jmeter-plugins.org/wiki/PerfMon/).

  4. So, let's use best practices directly and run our test from the command line in CLI mode (also called Non-GUI mode in JMeter).
  5. But before that, to follow our test in real time, we will add the Backend Listener element to enable live monitoring of the progress of the test with Grafana (https://grafana.com/).
  6. To do this, right-click on Test Plan -> Add -> Listener -> Backend Listener:
    Figure 1.28: Add Backend Listener
    Figure 1.28: Add Backend Listener
  7. Let's configure it to send the test results to our InfluxDB database (https://www.influxdata.com/):
Figure 1.29: Backend Listener configuration
Figure 1.29: Backend Listener configuration

Note

In the samplersRegex field, we can use a regular expression to keep only the queries that were recorded by the HTTP(S) Test Script Recorder element (thanks to Prefix: field).

Run Our Load Test and Analyze It

  1. Before launching our test, one last tip is to ask JMeter to generate an HTML report at the end.

    For this, we will use the following command line:

    <JMETER_HOME>/bin/jmeter -n -t [jmx file] -l [results file] -e -o [Path\ to output folder]

  2. Let's run our test and see what happens.

    In our terminal:

    Figure 1.30: Follows a load test in the terminal
    Figure 1.30: Follows a load test in the terminal
  3. In Grafana (the dashboard used is one of those proposed in the Grafana website (https://grafana.com/dashboards/3351)):

    Note

    We can use this dashboard, too: https://grafana.com/dashboards/5496.

    Figure 1.31: Real-time monitoring in Grafana
    Figure 1.31: Real-time monitoring in Grafana
    Figure 1.32: Real-time monitoring in Grafana
    Figure 1.32: Real-time monitoring in Grafana
  4. At the end of our test, we get the HTML dynamic Web Report with 17 graphs, an APDEX (https://en.wikipedia.org/wiki/Apdex) table, a statistics table (showing response times, error rates, network metrics…), a table with an errors summary, and a table with Top5errors per sampler. So, you get everything you need to analyze your load test:
Figure 1.33: HTML report
Figure 1.33: HTML report
Figure 1.34: HTML report
Figure 1.34: HTML report

The icing on the cake is a CSV file we get at the end of our test; this format is usable by many tools to visualize the results differently.

In this chapter, we have seen how to quickly get started with JMeter to perform a simple load test.

Left arrow icon Right arrow icon

Key benefits

  • Gain insights into preparing test environments and selecting the correct use cases to load test
  • Learn to analyze a load test with Backend Listener, HTML Report Dashboard, and View Results Tree
  • Explore how to integrate JMeter in the software factory

Description

Load tests help identify the maximum number of requests a software system can handle. One popular open source tool for load testing is JMeter. By leveraging the features and capabilities of JMeter, you can perform extensive load testing and fix issues in your application before they become problematic. This book is written by JMeter developers and begins by discussing the whole process, including recording a script, setting it up, and launching it, enabling you to almost immediately start load testing. You'll learn the best practices that you must follow while designing test cases. You'll also explore the different protocols offered by JMeter through various real-world examples. Finally, you'll see how to integrate JMeter into the DevOps approach and create professional reports. You'll discover ways to use the eco-system of JMeter to integrate new protocols, enrich its monitoring, and leverage its power through the use of the cloud. By the end of this book, you'll know all that's needed to perform comprehensive load testing on your applications by using all the best practices and features of JMeter.

What you will learn

Explore various JMeter concepts, including Timers scope and Assertions scope Discover the types of test protocols and load tests that JMeter supports Design a realistic test scenario using various tips and best practices Prepare your test environment with injectors and the system under test Learn and apply good practices when recording a script Integrate JMeter with Jenkins using Maven

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Black & white paperback book shipped to your address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Aug 1, 2019
Length 468 pages
Edition : 1st Edition
Language : English
ISBN-13 : 9781839217647
Vendor :
Apache
Category :
Languages :

Table of Contents

14 Chapters
About the Book Chevron down icon Chevron up icon
Quick Start with JMeter Chevron down icon Chevron up icon
JMeter Overview Chevron down icon Chevron up icon
Designing a Test Case Chevron down icon Chevron up icon
Important Concepts in JMeter Chevron down icon Chevron up icon
Preparing the Test Environment (Injectors and Tested Systems) Chevron down icon Chevron up icon
Being Productive with JMeter Chevron down icon Chevron up icon
Load Testing a Website Chevron down icon Chevron up icon
Load Testing Web Services Chevron down icon Chevron up icon
Load Testing a Database Server Chevron down icon Chevron up icon
Load Testing Message-Oriented Middleware (MOM) via JMS Chevron down icon Chevron up icon
Performing a Load Test Chevron down icon Chevron up icon
Visualizing and Analyzing the Load Testing Results Chevron down icon Chevron up icon
Integration of JMeter in the DevOps Tool Chain Chevron down icon Chevron up icon

Customer reviews

Filter icon Filter
Top Reviews
Rating distribution
Empty star icon Empty star icon Empty star icon Empty star icon Empty star icon 0
(0 Ratings)
5 star 0%
4 star 0%
3 star 0%
2 star 0%
1 star 0%

Filter reviews by


No reviews found
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela