Comprehensive Data for App Execution

Appetizer automatically instruments APK binary to collect comprehensive data during the app runtime, including crashes, uncaught exceptions, lengthy operations, UI lags, HTTP/HTTPS requests and responses, CPU/Java Heap usage, etc.

The data collection capability is hightly optimized and has less than 1% performance impact on the app. Collected data is first stored locally on the device and then uploaded to Appetizer servers for detailed analysis, which generates a report containing app defects and performance issues.

Appetizer reports can be exported in JSON, CSV, HTML and integrated into popular data analytics engine and continous delivery/integration platforms.

Metrics that Matter

In this panel, a report shows four aspects of the app execution. Coverage shows how many application windows are covered in this tests, with detailed Activity class names. Test time summarizes foreground/background time for the tests. On the network side, the report shows the total network traffic consumed, average latency and content download speed across all HTTP requests. Finally, the issue distribution chart summarizes app defects and performance issues detected during the test.

Details for Pro

All issues shown in the report have detailed technical details. For instance, Appetizer collects and displays the URL, Time-To-First-Packet, content download time, HTTP method and detailed request/response headers for a single network issue. These data entries can be exported, filtered and analyzed by customized scripts and analysis frameworks.

Deep Dive into the Execution

Appetizer captures the dynamics of app execution by visualizing from innovative aspects. This timeline chart shows the app execution on multiple dimension (UI lags, network and CPU usage, etc). Understand bugs and issues with a more concrete context.

In addition to the default data collection capability, Appetizer also allows app developers to add additional data with the Cauldron SDK. Cauldron allows apps to redirect data such as app-specific environment configuration, business activity switches, etc.

Model Generation

Appetizer can construct the business logic model from app execution data. Ever think of a Model-Based-Testing tool? Appetizer is a good start for this.

Data Analytics

Appetizer integrates with powerful data analytics to enable interactive, customized and deep analysis for the collected data. This is a case study of leveraging ELK (ElasticSearch-Logstash-Kibana) Engine to analyze app network performance. Thanks to the great aggregation, sorting and filtering capability of ELK, Appetizer data can be analyzed with depth and breath.

Batch Control and Automated Testing

No more bothering for testing on multiple devices. Appetizer lets repected work done in a batch, like running a shell command, launching/closing apps, taking screenshots, simulating inputs.

Appetizer uses Replaykit to record and replay screen operations on Android devices. Just record from one device and replay it to multiple devices, automating more work repating standard app operations. Touchscreen operations can not only work on apps based on standard widgets, but also on games (check out our video for game operation automationhigh-precision replay for music games). One can also replay screen operations in real time. (see controlling four devices from one device).

Batch ADB commands

Connect multiple devices and command them with Appetizer commandline. One command for all the devices.

Touchscreen operation Record and Replay

Record touchscreen operations from one device and replay back to many devices in parallel. Record-and-replay helps to establish a standard set for testing app functioinality. Also, Appetizer supports complicated gestures and full multi-finger gestures. Use this powerful tool to normalize Android settings, access non-accessiblility-friendly widgets and complement shortage of UI automation frameworks. Plus, the record-and-replay feature can be used from Python.

Organize complicated test steps

Put multiple test steps together for a long, automated regression test. No more repeatative work, one procedure for many devices.