Battery Surf Bench is a WordPress plugin that measures your device's real-world battery drain. It unleashes a simulated web surfer on a course of content pages, samples your battery for the whole run, and projects an honest drain rate from what it actually measured.
No lab hardware and no server of your own: just your browser, your battery, and a surfer that never gets tired.
https://www.youtube.com/watch?v=X8CwzH_P4-g
Made for WordPress Playground
Battery Surf Bench is built to run in WordPress Playground, which runs a complete WordPress site, server and database included, inside your browser tab. Open this link and Playground starts a fresh site with the plugin installed and its cockpit open, with no server to rent, nothing to install and no account to create:
https://playground.wordpress.net/?plugin=battery-surf-bench&url=/wp-admin/admin.php?page=bsbench-start-benchmark
A battery benchmark should be something anyone with a laptop can run, not only people who already run a WordPress site. It measures the device in front of you, so the whole test, site included, runs on that device. Every Playground starts from the same clean WordPress, which keeps results comparable across laptops and browsers and keeps benchmarking away from any real site you run. The site, its database and your recorded sessions stay in your browser.
Playground autosaves your recent sites in the browser; choose Save in browser storage to keep a site and its sessions for good. In Playground the page server runs on your device too, so a run also counts the work of serving each page: compare Playground runs with other Playground runs. The plugin installs on any WordPress site as well, if you'd rather use your own.
An experiment in browser-native software
Battery Surf Bench is also an experiment. Software that needs a server usually needs someone to host it, and software that doesn't usually has to stay small. We wanted to find out whether a desktop-grade application, with live dashboards, real-time charts, settings and a database of results, can skip that trade-off. WordPress provides the application platform, WordPress Playground handles everything a server and a database would, and you open a link and use the app.
Highlights
- A surfer, not a script. The simulated visitor makes its own decisions as it browses. No two runs play out the same.
- A live cockpit. A dedicated dashboard shows the whole run as it happens: battery readouts, projections, and the surfer itself browsing in a live viewport.
- Honest math. Drain rates come from regression over the sampled battery curve, and no number is reported before the data can support one.
- Every run remembered. Each benchmark is saved as a session you can browse, reopen, and compare.
- Yours to shape. Choose the workload, the surfer's personality, the run mode, and the pace.
A benchmark that browses like a person
The surfer is not a scripted macro. At every moment, its possible behaviors compete for its attention, weighted by its personality and by what the current page actually offers, and the winner plays out. The behavior profile is tuned from published battery-benchmark methodologies and real-user browsing telemetry, and it shows:
- It reads. Genuine reading pauses on text-dense pages, with occasional scroll-backs to re-read something it passed.
- It watches. Video pages get real watch time through the actual embedded player, started, watched, and paused by the surfer itself.
- It admires. Content images earn a lingering dwell, cursor and all.
- It fidgets. Idle cursor drift, micro-scrolls, even the occasional absent-minded text selection.
- It gets bored. Leaving a page is a decision the surfer makes, not a timer expiring.
Ready-made surfer personalities cover the spectrum, from a patient, text-hungry scholar to a restless doomscroller. Want something more specific? Open the customizer and shape your own visitor against a fixed budget: how briskly it moves, how long it stays put, how strongly text pulls at it, how strongly images and video do, and how twitchy it gets when idle.
A course worth surfing
Five bundled pages give the surfer a balanced, realistic workload out of the box: a long-form article, an image gallery, a skimmable listicle, a video feature, and a link hub. Each carries its own self-contained design, so the workload stays consistent no matter which theme the site runs. Prefer your own content? The settings screen lets you build a custom course from any of your site's posts and pages (those render through your theme, exactly as visitors see them), reorder it freely, and mix in the bundled pages wherever you like. Pages later removed or unpublished quietly drop out of the rotation without breaking your saved configuration.
The cockpit
Every run happens in the cockpit, a purpose-built dashboard that stays out of the data's way:
- Two run modes: benchmark for a fixed duration (5 minutes to 4 hours), or until the battery drops a chosen number of percentage points.
- Three speeds: run at true-to-life 1x, or compress time at 4x or 10x for demos and quick checks.
- Live readouts: battery level, a responsive 10-minute drain rate, a stable whole-session rate, and projected time-to-empty, all updating as the samples come in.
- A watchable run: the surfer browses inside a live viewport, with playful captions narrating what it's up to.
- Run protection built in: a screen wake-lock keeps the display from sleeping mid-run, a leave-confirmation guard saves you from an accidental tab close, and a finish chime announces a run that completes on its own (mutable, and it remembers your choice).
- Charger-aware: a benchmark won't start while you're plugged in. If the charger connects mid-run, the run pauses automatically and resumes when you unplug, with the plugged-in time excluded from the math.
Numbers you can trust
- Regression, not guesswork. Battery level is sampled continuously and fitted with least-squares regression, so a brief plateau or a noisy reading doesn't skew the verdict.
- No premature verdicts. The plugin waits for enough distinct battery steps before quoting a rate. It would rather say "calibrating" than make something up.
- Clear projections. Time-to-empty is projected live and drawn on the summary chart: the measured drain staircase against a dashed full-discharge projection.
- A summary worth keeping. Every finished run produces an illustrated postcard-style summary with the verdict, the drain chart, and stat tiles for elapsed time, battery levels at start and end, points dropped, both drain rates, and time-to-empty.
Every run remembered
Every run, whether it finished, was stopped early, or got interrupted, is stored as a benchmark session:
- Sessions screen: a sortable admin grid of every past run with status, mode, browser, battery span, drain rates, and duration.
- Session detail: reopen any session to its full summary, rebuilt from the stored samples.
- Portable data: each session keeps the browser and OS it ran on, the exact run configuration, and the complete sample log, all available over the site's own REST API for your own analysis.
- One-click start: launch a fresh benchmark straight from the admin bar, anywhere in wp-admin.
Private by design
- Operator-only, everywhere. The cockpit, the surf pages, the sessions, the settings: all require WordPress's
manage_options capability, which administrators have. Public visitors can't reach any of it.
- No footprint. Course pages are served as ephemeral, in-memory pages, so nothing new appears on your site. All they leave behind is WordPress's usual cache of the video page's YouTube embed code, as any embed does.
- No telemetry. All sampling and math happen locally in your browser, and sessions save only to your own site. The one outside contact is YouTube, which serves the video on the bundled course's video page (see External services below).
Speaks your language
Fully translation-ready. Help translate Battery Surf Bench into your language on
translate.wordpress.org.
The quickest way to run a benchmark is WordPress Playground, with nothing to install: open
https://playground.wordpress.net/?plugin=battery-surf-bench&url=/wp-admin/admin.php?page=bsbench-start-benchmark, unplug your laptop, and start a benchmark from the cockpit.
To install it on your own site:
- Upload the plugin to
wp-content/plugins/battery-surf-bench, or install it through the Plugins screen.
- Activate the plugin through the Plugins screen in WordPress.
- Unplug your laptop, open the Battery Surf Bench admin menu (or the Start Benchmark shortcut in the admin bar), and start a benchmark from the cockpit.