Open-source API testing tool, supports multiple network protocols, covers interface, performance, etc. testing types

1. Project Overview
HttpRunner is an open-source API testing tool, supports HTTP(S)/HTTP2/WebSocket/RPC and other network protocols, covers interface testing, performance testing, digital experience monitoring and other types of testing. Simple and easy to use, powerful functions, rich plugin mechanism and high extensibility.
2. Open Source License
Licensed under Apache-2.0
3. Screenshots

4. Feature Overview
Design philosophy
Compared to other API testing tools, HttpRunner's biggest difference is in its design philosophy.
- Convention over configuration: test cases are standardized and structured, with uniform formats, easy for collaboration and maintenance
- Standard openness: based on open standards, supports integration with HAR/Postman/Swagger/Curl/JMeter and other tools, easy to generate and convert test cases
- One-time investment, multi-dimensional reuse: a single script can support multiple API testing requirements, such as interface automation testing, performance testing, digital experience monitoring and so on
- Integration with best engineering practices: not just a testing tool, but also integrates best engineering practices, achieving a one-stop testing solution for network protocols
Core Features
- Network Protocol: Fully supports HTTP(S)/HTTP2/WebSocket, and can be extended to support TCP/UDP/RPC and more protocols
- Multi-format options: Supports YAML/JSON/go test/pytest formats, and can convert between formats
- Dual execution engines: Supports both golang/python execution engines, combining the high performance of Go and the rich ecosystem of pytest
- Recording & Generation: Can generate test cases using HAR/Postman/Swagger/curl, and can also quickly write test cases using chain call method hints
- Complex scenarios: Can easily create complex test scenarios using variables/extract/validate/hooks mechanisms
- Plugin mechanism: Has a rich built-in function library, and can also write custom functions in mainstream programming languages (go/python/java) to easily implement more capabilities
- Performance testing: Can implement stress testing without additional work; a single machine can easily support 10,000+ VUM, and can implement massive pressure testing with distributed load capabilities
- Network performance collection: Can collect network link performance indicators (DNS resolution, TCP connection, SSL handshake, network transmission, etc.) in addition to scenario-based interface testing
- One-key deployment: Uses a binary command-line tool for distribution, without environment dependencies, and can complete installation and deployment on macOS/Linux/Windows with a single command
User voice
Based on the statistical results of 252 survey questionnaires, the overall satisfaction rating of HttpRunner users is 4.3/5, and the most liked features include:
- Simple and easy to use: Supports YAML/JSON standard formats for test cases, and can quickly generate test cases through recording, making it easy to get started and use
- Powerful functions: Supports flexible custom functions and hook mechanisms, including parameter variables, data-driven, result assertions, and more, making it easy to adapt to various complex scenarios
- Design concept: Supports hierarchical design for test case organization, with unified formats, making it easy to maintain and reuse test cases
5. Tech Stack
One-click deployment
HttpRunner binary command line tool has been uploaded to Alibaba Cloud OSS, and the following command can be executed in the system terminal to complete the installation and deployment.
$ bash -c "$(curl -ksSL https://httprunner.com/script/install.sh)"
After successful installation, you will obtain a hrp command line tool, and you can execute hrp -h to view the parameter help description.
$ hrp -h
██╗ ██╗████████╗████████╗██████╗ ██████╗ ██╗ ██╗███╗ ██╗███╗ ██╗███████╗██████╗
██║ ██║╚══██╔══╝╚══██╔══╝██╔══██╗██╔══██╗██║ ██║████╗ ██║████╗ ██║██╔════╝██╔══██╗
███████║ ██║ ██║ ██████╔╝██████╔╝██║ ██║██╔██╗ ██║██╔██╗ ██║█████╗ ██████╔╝
██╔══██║ ██║ ██║ ██╔═══╝ ██╔══██╗██║ ██║██║╚██╗██║██║╚██╗██║██╔══╝ ██╔══██╗
██║ ██║ ██║ ██║ ██║ ██║ ██║╚██████╔╝██║ ╚████║██║ ╚████║███████╗██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝
HttpRunner is an open source API testing tool that supports HTTP(S)/HTTP2/WebSocket/RPC
network protocols, covering API testing, performance testing and digital experience
monitoring (DEM) test types. Enjoy! ✨ ? ✨
License: Apache-2.0
Website: https://httprunner.com
Github: https://github.com/httprunner/httprunner
Copyright 2017 debugtalk
Usage:
hrp [command]
Available Commands:
boom run load test with boomer
build build plugin for testing
completion generate the autocompletion script for the specified shell
convert convert to JSON/YAML/gotest/pytest testcases
help Help about any command
pytest run API test with pytest
run run API test with go engine
startproject create a scaffold project
wiki visit https://httprunner.com
Flags:
-h, --help help for hrp
--log-json set log to json format
-l, --log-level string set log level (default "INFO")
--venv string specify python3 venv path
-v, --version version for hrp
Use "hrp [command] --help" for more information about a command.
Interface Testingis a type of testing that tests system components' interfaces. Interface testing is mainly used to detect the interaction points between external systems and systems, as well as between internal sub-systems. The focus of testing is to check data exchange, transmission, and control management processes, as well as the logical dependencies between systems.
Performance Testingis a type of testing that uses automated testing tools to simulate various normal, peak, and abnormal load conditions to test the performance indicators of a system. Load testing and stress testing are both types of performance testing, and they can be combined. Through load testing, the performance of a system under various workloads can be determined, with the goal of testing the changes in system performance indicators as the workload gradually increases. Stress testing is used to determine a system's bottleneck or unacceptable performance point, in order to obtain the maximum service level that a system can provide.
Digital Experience Monitoring (Digital Experience Monitoring, DEM)is a type of active black box monitoring. The purpose of DEM is not to capture metrics, events, traffic, or alerts from devices, but to simulate the experience of a terminal user with the infrastructure, application, or service.
DEM essentially has two levels: network and application. The former measures how the network supports the application or service, while the latter adds transactional elements at the application level, which are typically scripted (such as logging in, adding items to a digital shopping cart, etc.), to simulate how humans (or machines) perceive the performance of an application or service.