I personally think that a good software engineer must master certain test skills. Some development engineers may think that testing is a test engineer's business, not a development engineer. This development engineer is missing a leg, leaving the test engineer, how do you prove that your program is not a problem.
Here are the performance test tools I've collected for the next two days, and if you know other tools, you can share them in your responses.
Web Bench is very simple tool for benchmarking WWW or proxy servers. Uses Fork () for simulating multiple clients and can use http/0.9-http/1.1 requests. This benchmark isn't very realistic, but it can test if your HTTPD can realy handle that many clients at once (try to run Some CGIs) without taking your machine down. Displays Pages/min and bytes/sec. Can be used on more aggressive mode with-f switch.
Web Bench is a simple benchmark tool for Web or Web Proxy services. (IT) simulates multiple clients using fork () and can initiate http/0/9-http/1.1 requests. This benchmark is not very realistic, but it can be tested to see if your HTTP service can handle multiple clients at the same time without getting your machine off the hook. This tool can get two metrics for the service: the number of response requests per minute (pages/min) and the amount of data transferred per second (BYTES/SEC). Use the-f option to run in active mode ( without waiting for the server response to send the next request directly ).
Installation Method Reference: (summary) Web Performance Stress Testing tool Webbench detailed
Test the results of Elong,taobao,baidu with webbench (may be affected by computer performance, network factors):
Ab-apache HTTP Server Benchmarking Tool
AB is a tool for benchmarking your Apache hypertext Transfer Protocol (HTTP) server. It is the designed to give a impression of what your current Apache installation performs. This especially shows what many requests per second your Apache installation is capable of serving.
The AB command creates many concurrent access threads, simulating multiple visitors accessing a URL address at the same time. Its test target is URL-based, so it can be used to test the load pressure of Apache, as well as other Web servers such as Nginx, Lighthttp, Tomcat, and IIS. The AB command is very low on the computer that emits the load, does not occupy a high CPU, and does not consume a lot of memory, but it can cause a huge load on the target server, which is similar to the CC attack. The use of their own testing should also be noted, or too much load at a time, may cause the target server due to resource consumption, serious even caused the crash.
some articles on the internet say that after installing apache2, the general situation is under the bin directory of Apache. I tested it on Ubunut 14.04, and that's not true. to use AB on Ubuntu, Apache2-utils is required.
AB's usage reference: Ab-apache HTTP Server Benchmarking Tool, (summary) Web Performance stress test Tools Apachebench (AB) detailed
Siege is an HTTP load testing and benchmarking utility. It is designed to let web developers measure their code under duress, to see how it would stand up to load on the Internet . Siege supports Basic authentication, cookies, HTTP and HTTPS protocols. It lets its user hits a Web server with a configurable number of simulated web browsers. Those browsers place the server "under siege."
Siege (in English means siege) is a stress testing and evaluation tool designed for web development that assesses the affordability of an application under pressure: Multiple concurrent access to a Web site can be configured on a per-user basis, recording the corresponding time of each user's request process, and repeating under a number of concurrent accesses. Siege supports Basic authentication, cookies, HTTP and HTTPS protocols.
Siege installation and usage can be consulted: Siege manual,using Siege to Tune Apache on Gnu/linux, (summary) The Siege of Web performance stress testing tools, the use of pressure test tools Siege
The use of my Ubuntu 14.04 is as follows:
Test the test results for local tomcat:
Apache JMeter is a 100% pure Java Desktop Running program designed specifically for running and server load testing. It was originally designed for web/http testing, but it has been extended to support a wide variety of test modules. It is shipped with modules for HTTP and SQL databases (using JDBC). It can be used to test the operation of a static database or a server in an active database, which can be used to simulate a heavy load on a server or network system to test its resistance, or to analyze all operating conditions under different load types. It also provides a replaceable interface for customizing data display, test synchronization, and test creation and execution.
How JMeter works: JMeter can act as a proxy gateway between Web servers and browsers to capture browser requests and Web server responses, which makes it easy to generate performance test scripts with performance test scripts. JMeter can simulate the actual user's access pressure to the Web server through the thread group, which is basically the same as the LoadRunner works.
Here is the official profile of JMeter:
The Apache jmeter™desktop application is open source software, a 100% pure Java application designed to load test functio NAL Behavior and measure performance. It was originally designed for testing WEB applications but had since expanded to other test functions.
What can I do with it?
Apache JMeter May is used to test performance both on static and dynamic resources (Files, Web dynamic languages-php, Ja VA, ASP, etc.-, Java Objects, Data Bases and Queries, FTP Servers and more). It can used to simulate a heavy load in a server, group of servers, network or object to test its strength or to Analyz E Overall performance under different load types. You can use it for make a graphical analysis of performance or to test your server/script/object behavior under heavy Concu Rrent load.
What does it does?
Apache JMeter features include:
- Ability to load and performance test many different server/protocol types:
- Web-http, HTTPS
- Database via JDBC
- message-oriented Middleware (MOM) via JMS
- MAIL-SMTP (s), POP3 (s) and IMAP (s)
- MongoDB (NoSQL)
- Native commands or shell scripts
- Complete portability and 100% Java purity.
- Full multithreading framework allows concurrent sampling by many threads and simultaneous sampling of different functions By separate thread groups.
- Careful GUI design allows faster Test Plan building and debugging.
- Caching and offline analysis/replaying of test results.
- Highly extensible Core:
- Pluggable samplers allow unlimited testing capabilities.
- Several load statistics is choosen with pluggable timers.
- Data analysis and visualization plugins allow great the extensibility as well as personalization.
- Functions can used to provide dynamic input to a test or provide data manipulation.
- Scriptable samplers (BeanShell, Bsf-compatible languages and Jsr223-compatible languages)
JMeter's user manual: Http://jmeter.apache.org/usermanual/index.html
Recommend a book: "0 cost to achieve Web performance test"
JMeter Script Recording tool: Badboy
Web Polygraph This software is also a tool for testing Web performance, a tool that is a standard test tool for many companies, including Microsoft's use of this tool as a benchmark tool when analyzing its software performance. Many recruitment testers in the ads indicate the need to master the test tool.
Web Polygraph is a freely available performance testing tool for caching proxies, origin server accelerators, L4/7 Switche s, content filters, and other Web intermediaries. Polygraph ' s features include:
- High-performance HTTP Clients and servers
- Realistic HTTP, FTP, and SSL traffic generation
- HTTP and SOCKS5 proxy support, with chaining
- HTTP Basic, NTLM, and Negotiate proxy authentication
- ldap-friendly generation of user credentials
- Flexible content Simulation
- Ready-to-use Standard workloads for benchmarking
- Powerful domain-specific Configuration language
- Portable Open-source Implementation
- Friendly commercial Support
Although the real live flow is important for the test of Internet server applications, it's hard to simulate it as onl INE environments is too complex. To realistic testing of Internet server applications, we propose a live flow reproduction tool–tcpcopy, whi CH could generate the test workload that's similar to the production workload. Tcpcopy consists of the components:the tcpcopy Client (tcpcopy) and the Tcpcopy Server (intercept). The Tcpcopy Client (tcpcopy) is deployed on the production system and it copies live flow data, does necessary modificatio NS and sends them to the test system in real-time. The Tcpcopy Server (intercept) is deployed on the test system and it returns necessary response information to the Tcpcopy Client (tcpcopy). To the test server, the reproduced workload was just from end-users. Currently, tcpcopy have been widely used by companies in China.
Tcpcopy have little influence on the production system except occupying additional CPU, memory and bandwidth. Moreover, the reproduced workload is similar to the production workload in Request diversity, network latency and resource Occupation.
Tsung is an open-source multi-protocol distributed load testing tool
It can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and JABBER/XMPP servers. Tsung is a free software released under the Gplv2license.
The purpose of Tsung is to simulate users on order to test the scalability and performance of IP based Client/server appli Cations. You can use it to do load and stress testing of your servers. Many protocols has been implemented and tested, and it can be easily extended.
It can be distributed on several client machines and are able to simulate hundreds of thousands of virtual users concurrent Ly (or even millions if you have enough hardware ...).
Tsung is developed in Erlang, a Open-source language made by Ericsson for building robust fault-tolerant distributed APPL Ications.
Curl-loader (also known as "Omes-nik" and "Davilka") is a Open-source tool written in C-language, simulating application Load and application behavior of thousands and tens of thousand Http/https and FTP/FTPS clients, each with its own source Ip-address. In contrast to other tools Curl-loader is using real c-written client protocol stacks, namely, HTTP and FTP stacks of libc The URL and Tls/ssl of OpenSSL, and simulates user behavior with support for login and authentication flavors.
The goal of the project is to deliver a powerful and flexible open-source testing solution as a real alternative to Spiren T Avalanche and IXIA IxLoad.
The tool is useful-performance loading of various application services, for testing Web and FTP servers and traffic GE Neration. Activities of each virtual client is logged and collected statistics includes information about resolving, connection EST Ablishment, sending of requests, receiving responses, headers and data received/sent, errors from Network, TLS/SSL and app Lication (HTTP, FTP) level events and errors.
Virtual clients is grouped together to the so-called batches of clients, performing the same sort of activities, like:
- Authentication login;
- User activity simulation by fetching several URLs with configurable timeouts in between;
The tool can be easily extended to generate SFTP, Telnet, tftp, LDAP, SSH, SCP etc Other application protocols, supported By the Great Libcurl Library.
Grinder is an open-source JVM load test framework that facilitates distributed testing with many load syringes. The Jython scripting engine HTTP tests that support the execution of test scripts can be managed through an HTTP proxy. According to the project website, Grinder's main target audience is "the person who understands the code they're measuring--grinder not just a ' black box ' test with a set of correlated response times." Because the testing process can be coded-rather than simply scripted, programmers can test the internal levels of the application, not just the response time through the user interface.
LoadRunner (commercial software) LoadRunner is an industry standard-level load testing tool that predicts system behavior and performance. LoadRunner is able to test the entire enterprise architecture by identifying and locating problems in a way that simulates the concurrent load and real-time performance monitoring of tens of thousands of users. By using LoadRunner, businesses can minimize test time, optimize performance, and accelerate the release cycle of application systems. Enterprise Network application environment must support a large number of users, network architecture includes a variety of application environments, and by different vendors to provide software and hardware products. Unpredictable user loads and increasingly complex application environments keep the company worried about slow user response times, system crashes, and so on. These inevitably lead to loss of corporate earnings. Mercury Interactive's LoadRunner enables businesses to protect their revenue streams without the need to acquire additional hardware to maximize existing IT resources and to ensure that end users have a good assessment of the quality, reliability, and scalability of their test applications across all aspects of the application system. LoadRunner is an automated load testing tool for a variety of architectures that can predict system behavior and optimize system performance. LoadRunner's Test object is the enterprise-wide system that helps you find and discover problems faster by simulating actual user behavior and implementing real-time performance monitoring. In addition, LoadRunner can support a wide range of protocols and technologies to provide special solutions for your particular environment. Kylinpet (domestic business tool)
Kylinpet (performance emulation tool, Kylin Pet) is a powerful performance testing tool, friendly interface, easy to operate, low resource occupancy, with TCP/IP protocol stack, support virtual large IP, support multiple business test of IPV4 and IPV6 Support Web/webservice business with Flex (HTTP), IMS Service (SIP), IPTV service (RTSP/IGMP/MLD), XMPP, socket business, database, JMS, FTP/SFTP, web video (including Flv/mp4 /http Live streaming/http Smooth streaming/http Dynamic streaming), WebSocket, JAVA, support multiple protocol combinations.
Summarize some of the performance testing practices
- To reduce the impact of network latency and bandwidth throttling on performance testing, it is best to test the intranet.
- Performance testing is usually done before and after optimization, testing two rounds, so that can compare the effect before and after optimization.
- Performance testing is best to run for a longer period of time, observing whether the program has a memory leak, resource not released, and so on.
- Some companies in order to avoid affecting the online environment, only in the test environment to do performance testing. My company performance tests are generally done online offline, performance testing on-line to understand the performance of the production environment.
- (summary) Siege of Web performance stress testing tools
- Simulated on-line testing with tcpcopy drainage
- (summary) Webbench of Web performance stress testing tools
- (summary) Apachebench (AB) of Web Performance stress testing tool
- Ten free web stress test tools
- How to test WEB applications in a low-rate network
- How to test and control the sex?
Several performance testing tools