Skip to content

Commit eca95e4

Browse files
author
kmsoln
committed
[JMeter] Last Decision
1 parent d6a89a8 commit eca95e4

12 files changed

Lines changed: 256 additions & 0 deletions

docs/en/jmeter/lab-work.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# JMeter Lab Work
2+
3+
Welcome to the JMeter Lab Work! The goal of this series of tasks is to help you practice and master JMeter, a powerful tool for performance testing and measuring the performance of web applications. Whether you're a beginner or looking to enhance your skills, these hands-on tasks will guide you through various aspects of using JMeter for load testing, recording, and analyzing HTTP requests.
4+
5+
## Goal of the Lab Work
6+
7+
The primary goal of this lab work is to provide you with practical experience and proficiency in using JMeter for performance testing. JMeter is widely utilized for testing the performance of web applications and services, and through these tasks, you will gain valuable insights into its configuration, scripting, recording, and analysis features.
8+
9+
## Practice Tasks <a name="practice-tasks"></a>
10+
11+
- [Lesson 1: Introduction to JMeter and Basic Setup](lessons/introduction-to-jmeter-and-basic-setup.md)
12+
- [Lesson 2: Setting Up HTTP(S) Test Script Recorder](lessons/setting-up-http-test-script-recorder.md)
13+
- [Lesson 3: Configuring and Using the Proxy Server](lessons/configuring-and-using-the-proxy-server.md)
14+
- [Lesson 4: Configuring Browser to Use the Proxy Server](lessons/configuring-browser-to-use-the-proxy-server.md)
15+
- [Lesson 5: Recording and Managing HTTP Requests](lessons/recording-and-managing-http-requests.md)
16+
- [Lesson 6: Organizing Recorded Requests](lessons/organizing-recorded-requests.md)
17+
- [Lesson 7: Creating a Test Scenario](lessons/creating-a-test-scenario.md)
18+
- [Lesson 8: Parameterizing HTTP Requests](lessons/parameterizing-http-requests.md)
19+
- [Lesson 9: Adding Listeners and Running Tests](lessons/adding-listeners-and-running-tests.md)
20+
- [Lesson 10: Executing Load Testing](lessons/executing-load-testing.md)
21+
- [Lesson 11: Analyzing Test Results](lessons/analyzing-test-results.md)
22+
23+
## Lab Work Tasks <a name="lab-work-tasks"></a>
24+
25+
idk :D
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Lesson 9: Adding Listeners and Running Tests
2+
3+
## Goal
4+
The goal of this lesson is to add listeners to view test results and to run the test scenarios in JMeter.
5+
6+
## Steps
7+
8+
### 9.1. Adding a Listener
9+
1. **View Results Tree**
10+
- Right-click on the **Thread Group**.
11+
- Select **Add > Listener > View Results Tree**.
12+
13+
### 9.2. Saving the Test Plan
14+
1. **Saving**
15+
- Click on the **Test Plan** node.
16+
- Go to **File > Save Test Plan as**.
17+
- Choose a location, enter a filename, and save the test plan.
18+
19+
### 9.3. Running the Test Scenario
20+
1. **Execution**
21+
- Click **Run > Start** to begin the test.
22+
- View the results in the **View Results Tree** listener.
23+
- Ensure there are no errors in the test results.
24+
25+
---
26+
27+
# [Next: Executing Load Testing](executing-load-testing.md)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Lesson 11: Analyzing Test Results
2+
3+
## Goal
4+
The goal of this lesson is to analyze test results using electronic spreadsheets and to prepare for subsequent test runs in JMeter.
5+
6+
## Steps
7+
8+
### 11.1. Utilizing Electronic Spreadsheets
9+
1. **Exporting and Analyzing Data**
10+
- Export the results from the **Aggregate Report** listener to a CSV file.
11+
- Use a spreadsheet application (e.g., Excel) to analyze the average response times and other metrics.
12+
13+
### 11.2. Clearing Statistics for Subsequent Runs
14+
1. **Clearing Data**
15+
- Before running a new test, clear the previous results by selecting **Run > Clear All**.
16+
17+
---
18+
19+
# [Next: Tasks](../lab-work.md)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Lesson 3: Configuring and Using the Proxy Server
2+
3+
## Goal
4+
The goal of this lesson is to configure the Proxy Server in JMeter and demonstrate how to use it for recording HTTP(S) requests.
5+
6+
## Steps
7+
8+
### 3.1. Configuring the Proxy Server
9+
1. **Setting Port and URL Patterns**
10+
- In the **HTTP(S) Test Script Recorder** window, set the **Port** field to `9090`.
11+
- In the **URL Patterns to Exclude** section, click **Add** and enter patterns such as `.*\.gif`, `.*\.js`, and `.*\.css`.
12+
13+
### 3.2. Starting the Proxy Server
14+
1. **Starting Recording**
15+
- Click the **Start** button at the bottom of the **HTTP(S) Test Script Recorder** window.
16+
17+
---
18+
19+
# [Next: Recording and Managing HTTP Requests](recording-and-managing-http-requests.md)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Lesson 4: Configuring Browser to Use the Proxy Server
2+
3+
## Goal
4+
The goal of this lesson is to configure your browser to use the Proxy Server set up in JMeter for recording HTTP(S) requests.
5+
6+
## Steps
7+
8+
### 4.1. Configuring Browser Settings
9+
1. **Setting Up Proxy in Browser**
10+
- Open your browser settings and navigate to the proxy settings.
11+
- Set the proxy server address to `localhost` and the port to `9090`.
12+
- Save the settings and restart the browser if necessary.
13+
14+
---
15+
16+
# [Next: Organizing Recorded Requests](organizing-recorded-requests.md)
17+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Lesson 7: Creating a Test Scenario
2+
3+
## Goal
4+
The goal of this lesson is to create a test scenario by organizing recorded requests and adding dynamic value extraction in JMeter.
5+
6+
## Steps
7+
8+
### 7.1. Adding a Simple Controller
9+
1. **Organizing Requests**
10+
- Right-click on the **Thread Group**.
11+
- Select **Add > Logic Controller > Simple Controller**.
12+
- Rename the Simple Controller to match the function you are testing.
13+
- Drag and drop all recorded HTTP requests from the **Recording Controller** to the **Simple Controller**.
14+
15+
### 7.2. Adding a Regular Expression Extractor
16+
1. **Dynamic Value Extraction**
17+
- Right-click on the HTTP request that requires a dynamic value (e.g., `javax.faces.ViewState`).
18+
- Select **Add > Post Processors > Regular Expression Extractor**.
19+
- Configure the extractor:
20+
- **Reference Name:** `jsfViewState`
21+
- **Regular Expression:** `<input type="hidden" name="javax\.faces\.ViewState" value="(.*?)"`
22+
- **Template:** `$1$`
23+
- **Match No.:** `0`
24+
25+
---
26+
27+
# [Next: Parameterizing HTTP Requests](parameterizing-http-requests.md)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Lesson 10: Executing Load Testing
2+
3+
## Goal
4+
The goal of this lesson is to configure and execute load testing in JMeter.
5+
6+
## Steps
7+
8+
### 10.1. Adjusting Thread Settings
9+
1. **Load Testing Configuration**
10+
- Click on the **Thread Group**.
11+
- Set the **Number of Threads** (users), **Ramp-Up Period** (seconds), and **Loop Count** as needed for your load test.
12+
13+
### 10.2. Adding an Aggregate Report Listener
14+
1. **Summary Report**
15+
- Right-click on the **Simple Controller**.
16+
- Select **Add > Listener > Aggregate Report**.
17+
- Disable the **View Results Tree** listener to improve performance during load testing.
18+
19+
### 10.3. Running the Load Test
20+
1. **Execution**
21+
- Click **Run > Start** to begin the load test.
22+
- View the summarized results in the **Aggregate Report** listener.
23+
24+
---
25+
26+
# [Next: Analyzing Test Results](analyzing-test-results.md)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Lesson 1: Introduction to JMeter and Basic Setup
2+
3+
## Goal
4+
The goal of this lesson is to introduce JMeter and guide you through the basic setup process, including starting JMeter and adding a Thread Group to your Test Plan.
5+
6+
## Steps
7+
8+
### 1.1. Starting JMeter
9+
1. **Download and Install JMeter**
10+
- Visit the [official JMeter website](https://jmeter.apache.org/download_jmeter.cgi) and download the latest version.
11+
- Extract the downloaded archive.
12+
- Navigate to the `bin` directory and start JMeter by running the `jmeter.bat` file (Windows) or `jmeter.sh` (macOS/Linux).
13+
14+
### 1.2. Adding a Thread Group
15+
1. **Creating a Test Plan**
16+
- Open JMeter.
17+
- Right-click on the **Test Plan** node.
18+
- Select **Add > Threads (Users) > Thread Group**.
19+
20+
---
21+
# [Next: Setting Up HTTP Test Script Recorder](setting-up-http-test-script-recorder.md)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Lesson 6: Organizing Recorded Requests
2+
3+
## Goal
4+
The goal of this lesson is to organize the recorded HTTP requests in JMeter for better management and test execution.
5+
6+
## Steps
7+
8+
### 6.1. Disabling the Recording Controller
9+
1. **Disabling**
10+
- Right-click on the **Recording Controller** in JMeter.
11+
- Select **Disable** to stop capturing further requests.
12+
13+
### 6.2. Adding an HTTP Cookie Manager
14+
1. **Session Management**
15+
- Right-click on the **Thread Group**.
16+
- Select **Add > Config Element > HTTP Cookie Manager**.
17+
18+
---
19+
20+
# [Next: Creating a Test Scenario](creating-a-test-scenario.md)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Lesson 8: Parameterizing HTTP Requests
2+
3+
## Goal
4+
The goal of this lesson is to parameterize HTTP requests in JMeter using extracted dynamic values.
5+
6+
## Steps
7+
8+
### 8.1. Modifying HTTP Requests
9+
1. **Using Extracted Values**
10+
- In each HTTP request that uses the parameter `javax.faces.ViewState`, replace the value with `${jsfViewState}`.
11+
- Ensure the **Encode** checkbox is selected if needed.
12+
13+
---
14+
15+
# [Next: Adding Listeners and Running Tests](adding-listeners-and-running-tests.md)

0 commit comments

Comments
 (0)