Using STF and Minicap for Efficient Mobile Web Page Load Testing
This article explains the problems of manual mobile web page load testing, introduces STF and its Minicap screenshot tool, details their features, installation prerequisites, step‑by‑step setup commands, and demonstrates how to run and access STF for automated, low‑latency testing.
The previous article described how to use STF and Sikuli to achieve low‑cost, high‑efficiency, and precise timing for testing mobile web page first‑screen load times; this article focuses on solving the drawbacks of manual device operation and provides a usage guide and features of STF.
1. Current problems and solutions Traditional high‑speed camera methods suffer from lighting variations and inconsistent image selection, leading to inaccurate results. STF, with its Minicap tool, replaces the native screencap and greatly speeds up screenshots, outputting screen data via a socket for remote control without requiring root.
Minicap works on most Android devices, using ScreenshotClient for older versions and virtual display APIs for newer ones. However, because it relies on private APIs, some devices (e.g., Xiaomi HM NOTE 1W, Huawei G750‑U10, Lenovo B6000‑F) cannot capture screens.
Performance varies: older Android devices achieve 10‑20 FPS, while newer ones reach 30‑40 FPS. To maximize FPS, keep the device at native resolution; USB transfer adds about 30 ms latency, which has minimal impact on testing.
2. STF features
Supports Android 2.3 to 5.1.
Allows mouse/keyboard control of devices from a PC.
Enables copy‑paste between PC and device.
Real‑time screenshot saving to server.
Drag‑and‑drop app installation.
Access devices via any browser URL.
Live system log with filtering.
Remote shell command execution.
Remote debugging via Android Studio or Chrome DevTools.
iPhone Safari can control Android devices.
3. Installation and usage
Prerequisite environment:
Node.js >=0.12
ADB properly set up
RethinkDB >= 2.2
GraphicsMagick (for resizing screenshots)
ZeroMQ libraries installed
Protocol Buffers libraries installed
yasm installed (for compiling libjpeg‑turbo)
pkg-config (so Node.js can find the libraries)
On macOS, install dependencies with:
rew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-configInstall Node.js from https://nodejs.org/download/ , then run:
./configure make sudo make install sudo ln -s /usr/local/bin/node /usr/bin/node sudo ln -s /usr/local/bin/npm /usr/bin/npmVerify installation:
node -v npm -vInstall STF (requires VPN or proxy):
sudo npm install -g stfStart services:
Start RethinkDB.
Run stf local to launch the STF server.
Access the client via a browser at http://public-ip:7100/ , log in with username and email, and control devices remotely.
STF streams device screens to the web client and sends web interactions back to the device; combined with Sikuli, it enables full automation of mobile operations, which will be covered in the next article.
For more details, visit the STF website: https://www.stf.sk.ca/ .
360 Quality & Efficiency
360 Quality & Efficiency focuses on seamlessly integrating quality and efficiency in R&D, sharing 360’s internal best practices with industry peers to foster collaboration among Chinese enterprises and drive greater efficiency value.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.