Apica ProxySniffer generates load test scripts by pre-recording real end-user actions and converting them into code that efficiently and effectively simulates up to a million simultaneous visitors. Apica ProxySniffer achieves this scale through comprehensive support for a wide range of Web standards and authentication methods making it an ideal tool for analyzing the performance and stability of large-scale Web applications.
Load generation originates from local machines inside the enterprise, from Apica’s load test network, or from heavy-duty, cloud-based, generators available in all seven Amazon data centers: three in the United States and one each in Ireland, Singapore, Tokyo, and Sao Paulo.
Scenario Recorder and Web Crawler
Manual load test scenario recording occurs by “pre-surfing” typical user actions with a proxy-recorder program installed in a Firefox, Safari or Internet Explorer browser. Recordings include AJAX calls, Windows pop-up requests, and XML/SOAP-based Web interactions. Automatic recording occurs using an integrated Web crawler. No programming is required for either the manual or automatic recording options.
Free Graphical User Interface Client
Unlike other load test tools, Apica ProxySniffer utilizes a powerful graphical user interface (GUI) to manage activity occurring at multiple levels. Best of all, it’s free. The first level records raw data from load test scenarios initially retained in virtual memory. The GUI then allows post-processing of the raw data as desired such as adding logins to individual user accounts or handling dynamically exchanged session parameters (e.g., .NET __VIEWSTATE). Implementing post-processing modifications using the GUI is easy with typically only a few mouse clicks.
The second level automatically generates performance-optimized Java code based on the load test defined at level one. Load test programs then run directly from the GUI on any load generator without requiring any further modification.
Complete Standards Support
Comprehensive standards support allows Apica ProxySniffer to achieve near-perfect user simulation without the need for using a full Web browser process per user during load test execution, saving CPU time and memory.
Web standards supported include:
- HTTP and HTTPS: GUI access to structured data including HTML forms, HTML hyperlinks, HTML redirects, CGI parameters, JSON data, XML and SOAP, and WebDAV for extracting and assigning dynamic session parameters at runtime during the execution of a load test.
- HTTP Extensions: client-side caching of network connections (keep alive), support for compressed response data (gzip, deflate), automatic processing of HTTP(S) session cookies, upload and download of files, and support for executing load tests via an outbound HTTP(S) proxy server.
- SSL Protocols: SSL V2, V3 and TLS, as well as configurable client-side caching of SSL sessions (i.e., SSL session timeout).
- J2EE URL Rewriting
Authentication methods supported include:
- HTML form-based login
- HTTP basic authentication
- HTTP digest authentication
- SSL authentication using X509 client certificates in PKCS#12 format
- SSL authentication using smart cards and HSMs (PKCS#11 security devices)
Clustering for Scale
"False Positive" Protection
Apica ProxySniffer automatically protects against "false positive" results during load tests leading to improved test quality with less configuration effort. Apica ProxySniffer does this by automatically comparing current test response data to originally recorded response data using a unique heuristic algorithm. This comparison detects errors at the application level such as malformed Web pages and Web page stack traces, even when correct HTTP response codes (e.g., “200 ok”) are returned.
Real Time Analysis
During load test execution, real time measured values and statistics for all simulated users provide insight into Web application response time behavior and stability. System and error analysis happens in real time as tests occur.
Granular Test Measurements
In-depth values measured during a load test help determine where and at which layer bottlenecks reside. HTTP “keep-alive” efficiency, the percentage of abbreviated SSL handshakes for encrypted HTTPS requests, or the time it takes open a new network connection to a Web server, among other measurements, provide information details needed to identify hard to find performance limits. Response timeouts or empty Web pages combined with other results indicate specific problems located in a firewall, rooter, network connection, Web server TCP/IP stack or Web application.
Tests result summaries include 24 standard charts incorporating statistics at each layer. Custom PDF reports combine standard results with real time comments made during test execution. Comparing test results provides insight into the efficacy of tuning attempts. Visualizing results provides insight into what if scenarios such as response time behavior and stability under varying load conditions.
Slow Network Connection Simulation
Artificial reductions in network bandwidth per simulated user and adjusted uplink and downlink speeds provide insight into the impact of latency on performance.
Tests scheduled in advance allow for coordination between development and operations teams as part of on-going performance optimization and maintenance activities.
E-mail and SMS alerts during load tests provide predefined thresholds to be actively monitored on an on-going basis. Exceeded response times or excessive errors (e.g., session failures) within a given interval trigger notification of selected team members. Scheduled-test status notifications provide operations staff with updates as to when jobs start, finish or crash due to internal error.
Partial Test Execution
Partial test execution provides insight into only specific segments of a load test scenario, such as an airline ticket reservation system whereby the Web browser loops around the same Web page in a wait mode until a response or a final HTTP status code is received. The GUI allows users to define "inner loops" which include only selected Web pages or other aspects of a recorded session. An inner loop could include only the steps after login and before logout, for example. Iterations of an inner loop range from zero to as many as needed, adjusted on a simulated user level by defining “break” and “continue” conditions in the GUI.
Fully Automated Test Generation
Up to 30 available command lines directly automate test generation without using the GUI. Tests automatically execute and generate results including PDF report creation and use of the integrated Web Crawler.
While most users never require use of plug-ins, the option of creating reusable load test functions allows users to meet proprietary and other special requirements. A wizard allows programming to be performed relatively easily, automatically generating a program skeleton. Only core plug-in functionality needs to be programmed by hand in Java.
Plug-in examples include:
- Perform real-time calculations during load test execution to support a proprietary challenge-response authentication algorithm.
- Extract data from HTTP(S) responses and assign self-calculated data to HTTP(S) requests.
- Access external databases during load test execution.
- Assign additional measured load test results data presented in the form of XY-diagrams.