This is a creation in Article, where the information may have evolved or changed.
Alex
Alex is a stress test web UI based on the Vegeta library and boom package. The Vegeta provides a stable QPS pressure source, and Boom provides a stable number of concurrent pressure sources.
GitHub Address Https://github.com/ireaderlab/alex
中文版
Alex Frame Composition
Alex Main Features
Save pressure test parameters for repeated pressure measurement
Save stress test reports for subsequent viewing and sharing
Provides simple, straightforward graphics and text reporting
Multiple HTTP interfaces can be stress tested at the same time
Multiple host:port pairs in the cluster can be measured simultaneously
Use multiple sets of call parameters to avoid data hotspot issues during pressure measurement
Use step settings to generate progressive pressure sources
Provides a simple real-time display of the system status of the pressure measurement machine
Alex Limitations
Alex is running in a single process, and if you need a distributed pressure-sensing environment, you have to deploy multiple nodes, requiring multiple simultaneous operations for the pressure measurement.
The Vegeta does not provide an immediate stopping method in the case of pressure overload. This requires you to carefully design the pressure measurement step, carefully observe the system state to avoid overloading the system.
The QPS and concurrency numbers shouldn't be too large. I used the Alex tool single process to test the HelloWorld Web program to spit out 1500 bytes per request, the QPS can reach up to 60000, basically let gigabit network card full.
Under large pressure tests, try to avoid gzip decompression. Decompression can consume a lot of CPU resources, which can result in inaccurate test reports. You can perform large stress tests by deploying multiple nodes.
Only HTTP protocols are supported. The HTTPS protocol is not intended to be supported because encryption and decryption also consumes a lot of CPU resources, resulting in inaccurate reporting.
The report simply provides a performance reference, and it is the courage to challenge the report.
Alex has so many limitations that it doesn't affect its daily use.
Installation
install mongodbinstall golang # 1.4+ is requiredgo get github.com/go-martini/martinigo get github.com/tsenart/vegetago get gopkg.in/mgo.v2go get github.com/shirou/gopsutil# godep restoregit clone https://github.com/shellquery/alex.gitcd alexgo build./alex./alex -c config.jsonopen browserhttp://localhost:8000/
Configure Config.json
{ "BindAddr": "localhost:8000", "MongoUrl": "mongodb://localhost:27017/alex", "Teams": [ "python", "java", "php", "go" ]}
Reference
Great Vegeta Https://github.com/tsenart/vegeta.
Simple and direct Boom Https://github.com/rakyll/boom
Screen Cutting