mohaidr/lps

Load Testing Tool

C#

29

418 commits

updated Sep 7, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

We built a load-testing tool to address some gaps we experienced. We need your honest feedback (r/SideProject)

Hi everyone, We have built an open-source load, performance, and stress testing tool called **LPS**, and we would like feedback from people working in QA and performance testing. The project started from gaps we experienced with different tools. Depending on the tool or product tier, features such…

1

Sep 20, 2026

README

πŸš€ Introduction

Welcome to the LPS Tool – your ultimate companion for Load, Performance, and Stress testing!

πŸ› οΈ The LPS Tool (Load, Performance, and Stress Testing Command Tool) is a flexible framework for testing your web application's performance under simulated load.

🌟 Key Highlights

  • πŸ” Built on Rounds and Iterations for structured testing
  • πŸŽ›οΈ Offers flexible Iteration Modes to simulate real-world traffic
  • πŸ“Š Helps evaluate system scalability, endurance, and resilience
  • βš™οΈ Empowers developers and QA engineers with powerful testing scenarios

πŸ’» Installation Guide

🧭 LPS Tool is cross-platform – it works on Windows, Linux, and macOS!

You can now install the LPS Tool directly from NuGet as a global .NET CLI tool:

dotnet tool install --global lps

βœ… Requirements:
Make sure you have .NET 8 SDK or Runtime installed on your machine.

After installation, you can run LPS from anywhere using:

lps --version

✨ That’s it! You’re ready to start load testing with LPS Tool.


⚑ Quick Test Examples

1️⃣ Ramp up 1000 clients gradually

lps --url https://www.example.com --numberofclients 1000 --arrivaldelay 100

πŸ“Ž Starts 1000 clients gradually with a 100 ms delay between client arrivals


2️⃣ Simple GET Request

lps --url https://www.example.com -rc 1000

πŸ“Ž Sends 1000 GET requests to the specified URL


3️⃣ POST Request with Inline Payload

lps --url https://www.example.com -rc 1000 --httpmethod "POST" --payload "Inline Payload"

πŸ“Ž Sends 1000 POST requests with a plain text payload


4️⃣ POST Request with File Payload

lps --url https://www.example.com -rc 1000 --httpmethod "POST" --payload "Path:C:\Users\User\Desktop\LPS\urnice.json"

πŸ“Ž Sends 1000 POST requests using a JSON file as payload


5️⃣ POST Request with Payload URL

lps --url https://www.example.com -rc 1000 --httpmethod "POST" --payload "URL:https://www.example.com/payload"

πŸ“Ž Sends 1000 POST requests where the payload is fetched from a URL


🌐 Distributed Load Testing

🌍 Distributed testing is supported starting from v2.0.2_preview.

πŸ“– Learn more in the Distributed Load Testing Article


πŸ“š LPS Documentation

Explore full docs in the πŸ“– LPS Docs Repo

Key Sections:

🚨 Important Notice

⚠️ Warning: This documentation applies only to version 2.0_Preview and above of the LPS Tool. For earlier versions, please visit the readme.md in each version's directory.

⚠️ Note: Version 2.x is NOT backward compatible with 1.x.

πŸ”„ Breaking Change in v3.0.2.6: The failureCriteria and old terminationRules formats have been permanently removed. The last version supporting the old format was v3.0.2.5. See the Migration Guide for details on the new failureRules and terminationRules inline metric expression format.


Contributors

mohaidr

417 commits

mohaidr/lps

Load Testing Tool

C#

29

418 commits

updated Sep 7, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

We built a load-testing tool to address some gaps we experienced. We need your honest feedback (r/SideProject)

Hi everyone, We have built an open-source load, performance, and stress testing tool called **LPS**, and we would like feedback from people working in QA and performance testing. The project started from gaps we experienced with different tools. Depending on the tool or product tier, features such…

1

Sep 20, 2026

README

πŸš€ Introduction

Welcome to the LPS Tool – your ultimate companion for Load, Performance, and Stress testing!

πŸ› οΈ The LPS Tool (Load, Performance, and Stress Testing Command Tool) is a flexible framework for testing your web application's performance under simulated load.

🌟 Key Highlights

  • πŸ” Built on Rounds and Iterations for structured testing
  • πŸŽ›οΈ Offers flexible Iteration Modes to simulate real-world traffic
  • πŸ“Š Helps evaluate system scalability, endurance, and resilience
  • βš™οΈ Empowers developers and QA engineers with powerful testing scenarios

πŸ’» Installation Guide

🧭 LPS Tool is cross-platform – it works on Windows, Linux, and macOS!

You can now install the LPS Tool directly from NuGet as a global .NET CLI tool:

dotnet tool install --global lps

βœ… Requirements:
Make sure you have .NET 8 SDK or Runtime installed on your machine.

After installation, you can run LPS from anywhere using:

lps --version

✨ That’s it! You’re ready to start load testing with LPS Tool.


⚑ Quick Test Examples

1️⃣ Ramp up 1000 clients gradually

lps --url https://www.example.com --numberofclients 1000 --arrivaldelay 100

πŸ“Ž Starts 1000 clients gradually with a 100 ms delay between client arrivals


2️⃣ Simple GET Request

lps --url https://www.example.com -rc 1000

πŸ“Ž Sends 1000 GET requests to the specified URL


3️⃣ POST Request with Inline Payload

lps --url https://www.example.com -rc 1000 --httpmethod "POST" --payload "Inline Payload"

πŸ“Ž Sends 1000 POST requests with a plain text payload


4️⃣ POST Request with File Payload

lps --url https://www.example.com -rc 1000 --httpmethod "POST" --payload "Path:C:\Users\User\Desktop\LPS\urnice.json"

πŸ“Ž Sends 1000 POST requests using a JSON file as payload


5️⃣ POST Request with Payload URL

lps --url https://www.example.com -rc 1000 --httpmethod "POST" --payload "URL:https://www.example.com/payload"

πŸ“Ž Sends 1000 POST requests where the payload is fetched from a URL


🌐 Distributed Load Testing

🌍 Distributed testing is supported starting from v2.0.2_preview.

πŸ“– Learn more in the Distributed Load Testing Article


πŸ“š LPS Documentation

Explore full docs in the πŸ“– LPS Docs Repo

Key Sections:

🚨 Important Notice

⚠️ Warning: This documentation applies only to version 2.0_Preview and above of the LPS Tool. For earlier versions, please visit the readme.md in each version's directory.

⚠️ Note: Version 2.x is NOT backward compatible with 1.x.

πŸ”„ Breaking Change in v3.0.2.6: The failureCriteria and old terminationRules formats have been permanently removed. The last version supporting the old format was v3.0.2.5. See the Migration Guide for details on the new failureRules and terminationRules inline metric expression format.


Contributors

mohaidr

417 commits

Languages

C#

99.8%