e2e framework benchmark — ios 2026-10-25

Run eas-ios-tester-army, started 2026-10-25T23:39:37.573Z

Host
VirtualMac2,1, Apple M4 Pro (Virtual), 10 cores, 40.0 GB RAM, macOS 26.5.2
Toolchain
Xcode 26.6, Java 17.0.19, Node 22.23.1, bun 1.3.14, warden 0.3.1
Host load at start
2.42
Device
warden-iphone-17-1 (ios, iOS 26.5), udid 6E375570-E6F4-4EE3-9442-5E83CD919B12
App
nz.co.delacour.warden.example, hash import:c283eae41c7a, sha256 c283eae41c7a, 96.4 MB
Options
runs 5, retries 0, reboot between no, caffeinated yes
Frameworks
tester-army e2e 0.20.0

Fairness rules

Summary

FrameworkStatusVersionSuite median (warm)p95RatioCold rep 1Cold-start costPrepareTeardownOverheadPass rateFlakeResidueFootprint (LOC / deps)
tester-army✓ oke2e 0.20.0132.52 s132.89 s1.00×150.63 s18.11 s0 ms495 ms2.24 s100%0%0 proc / 1 app / 1 path307 LOC / 0 B

Warm suite wall time

Bar = warm median. Whisker = p95. Dot = cold rep 1. Lower is faster; ratios are against the fastest framework.

Warm suite median per framework with p95 whisker and cold rep 1 markertester-army e2e 0.20.0: tester-army 132.52 s · 1.00×050 s100 s150 s200 stester-army e2e 0.20.0tester-army: 132.52 s · 1.00× (p95 132.89 s, cold rep 1 150.63 s)132.52 s · 1.00×

Per-test medians (ms)

Testtester-army
onboarding steps through to sign-in5964 (1.00×)
invalid email and short password show field errors21119 (1.00×)
a locked account shows the form alert12914 (1.00×)
valid credentials land on todos14850 (1.00×)
add, complete and filter todos21230 (1.00×)
open a todo, mark it done, then delete it18121 (1.00×)
deep link opens a todo by id18094 (1.00×)
settings shows the account, toggles switches and signs out18075 (1.00×)

Median per test

Warm median per test and framework, in millisecondsonboarding steps through to sign-in: tester-army 5964 ms · 1.00×. invalid email and short password show field errors: tester-army 21119 ms · 1.00×. a locked account shows the form alert: tester-army 12914 ms · 1.00×. valid credentials land on todos: tester-army 14850 ms · 1.00×. add, complete and filter todos: tester-army 21230 ms · 1.00×. open a todo, mark it done, then delete it: tester-army 18121 ms · 1.00×. deep link opens a todo by id: tester-army 18094 ms · 1.00×. settings shows the account, toggles switches and signs out: tester-army 18075 ms · 1.00×010 s20 s30 sonboarding steps through to sign-intester-army: 5964 ms · 1.00×5964 ms · 1.00×invalid email and short password show field errorstester-army: 21119 ms · 1.00×21119 ms · 1.00×a locked account shows the form alerttester-army: 12914 ms · 1.00×12914 ms · 1.00×valid credentials land on todostester-army: 14850 ms · 1.00×14850 ms · 1.00×add, complete and filter todostester-army: 21230 ms · 1.00×21230 ms · 1.00×open a todo, mark it done, then delete ittester-army: 18121 ms · 1.00×18121 ms · 1.00×deep link opens a todo by idtester-army: 18094 ms · 1.00×18094 ms · 1.00×settings shows the account, toggles switches and signs outtester-army: 18075 ms · 1.00×18075 ms · 1.00×

Spread across warm reps

Whisker = min to max. Shaded box = min to p95. Tick = median. A distribution carries no quartiles, so the box is not an interquartile range.

Warm rep spread per test: min to max whisker, min to p95 box, median tickonboarding steps through to sign-in: tester-army tester-army 5.96 s. invalid email and short password show field errors: tester-army tester-army 21.12 s. a locked account shows the form alert: tester-army tester-army 12.91 s. valid credentials land on todos: tester-army tester-army 14.85 s. add, complete and filter todos: tester-army tester-army 21.23 s. open a todo, mark it done, then delete it: tester-army tester-army 18.12 s. deep link opens a todo by id: tester-army tester-army 18.09 s. settings shows the account, toggles switches and signs out: tester-army tester-army 18.07 s010 s20 s30 sonboarding steps through to sign-intester-army: tester-army 5.96 s (p95 6.03 s, min 5942, max 6029, n 4)tester-army 5.96 sinvalid email and short password show field errorstester-army: tester-army 21.12 s (p95 21.14 s, min 21059, max 21141, n 4)tester-army 21.12 sa locked account shows the form alerttester-army: tester-army 12.91 s (p95 12.94 s, min 12676, max 12942, n 4)tester-army 12.91 svalid credentials land on todostester-army: tester-army 14.85 s (p95 15.01 s, min 14655, max 15013, n 4)tester-army 14.85 sadd, complete and filter todostester-army: tester-army 21.23 s (p95 21.26 s, min 21206, max 21263, n 4)tester-army 21.23 sopen a todo, mark it done, then delete ittester-army: tester-army 18.12 s (p95 18.34 s, min 17925, max 18340, n 4)tester-army 18.12 sdeep link opens a todo by idtester-army: tester-army 18.09 s (p95 18.20 s, min 18019, max 18198, n 4)tester-army 18.09 ssettings shows the account, toggles switches and signs outtester-army: tester-army 18.07 s (p95 18.13 s, min 17934, max 18132, n 4)tester-army 18.07 s

Per-step latency

Whisker = min to max. Shaded box = min to p95. Tick = median. Only frameworks that report steps appear.

Step latency per frameworktester-army (592 steps): tester-army 481 ms · p95 3.21 s02 s4 s6 stester-army (592 steps)tester-army: 481 ms · p95 3.21 s481 ms · p95 3.21 s
FrameworkStepsMedianp95Max
tester-army592481 ms3.21 s4.01 s

Where step time goes

Step scopes differ per tool: warden's one fill step spans the focus tap, select-all, typing and read-back confirm, argent reports a separate idle step and into …, agent-device reports fill and type separately, and tester.army reports locator steps. Compare a verb's share within a tool, not its median across tools.

tester-army

VerbnShareMedianp95Max
getbytestid49669.5%267 ms3.23 s4.01 s
dismiss5222.3%2.26 s2.33 s2.33 s
(unlabelled)326.3%1.03 s1.05 s1.06 s
accept41.6%2.02 s2.03 s2.03 s
warden-example40.2%290 ms295 ms295 ms
getbytext40.1%65 ms66 ms66 ms

Resources

CPU

CPU use per frameworkHost CPU average: tester-army 13.8%. Host CPU peak: tester-army 611.2%. Simulator CPU average: tester-army 84.1%. Simulator CPU peak: tester-army 248.1%0%200%400%600%800%Host CPU averagetester-army: 13.8%13.8%Host CPU peaktester-army: 611.2%611.2%Simulator CPU averagetester-army: 84.1%84.1%Simulator CPU peaktester-army: 248.1%248.1%

Memory

Peak resident memory per frameworkHost RSS peak: tester-army 2.5 GB. Simulator RSS peak: tester-army 11.4 GB0 B4.7 GB9.3 GB14.0 GBHost RSS peaktester-army: 2.5 GB2.5 GBSimulator RSS peaktester-army: 11.4 GB11.4 GB
FrameworkScopeCPU-s / repCPU avgCPU peakRSS avgRSS peak
tester-armyhost17.74 s13.8%611.2%598.2 MB2.5 GB
tester-armysim—84.1%248.1%11.1 GB11.4 GB

CPU-s / rep is the host CPU time of the timed run (warm median) and the headline. CPU avg and peak are ps %cpu, a decaying average on macOS: they move with suite length, do not judge on them.

Where the CPU goes

One table per framework, from the warm-median rep's timed run (the rep whose host CPU-seconds is the lower median). Rows are processes grouped by label (top 12 per scope, the rest in other); host is the framework's own process tree, sim the simulator's launchd_sim tree (iOS only). Share is of the scope's CPU-seconds. RSS is the label's summed RSS per 500 ms tick (0 where it had no process). Spawns counts distinct pids a tick saw: a process that lives between two ticks is only seen through the (exit charge) rows (CPU of a child the bench ran, booked at its exit), so many short-lived xcrun simctl calls read low in Spawns and in CPU.

tester-army

ProcessScopeCPU-sShareRSS avgRSS peakSpawns
xcodebuildhost14.70 s83.0%221.6 MB223.0 MB1
node entry.jshost1.18 s6.7%85.2 MB94.4 MB1
node e2e (exit charge)host0.76 s4.3%0 B0 B0
snapshot-bridgehost0.62 s3.5%116.4 MB116.6 MB1
node e2ehost0.43 s2.4%104.8 MB134.0 MB1
other (exit charge)host0.03 s0.2%0 B0 B0
simctlhost0.00 s0.0%20.5 MB20.5 MB1
DTServiceHubhost0.00 s0.0%16.8 MB16.8 MB1
(ps)host0.00 s0.0%5.0 KB1.3 MB1
(clang)host0.00 s0.0%0 B0 B0
(pgrep)host0.00 s0.0%0 B0 B0
(plutil)host0.00 s0.0%0 B0 B0
otherhost0.00 s0.0%0 B0 B0
wardenexamplesim50.77 s41.4%381.6 MB441.3 MB9
iOSsim50.70 s41.4%10.1 GB10.1 GB112
AgentDeviceRunnerUITests-Runnersim16.40 s13.4%271.0 MB271.1 MB1
bun cli.tssim2.46 s2.0%264.5 MB270.9 MB1
CoreSimulatorBridgesim0.62 s0.5%81.5 MB81.6 MB1
simctlsim0.61 s0.5%563.5 KB20.7 MB9
launchd_simsim0.42 s0.3%37.7 MB37.7 MB1
(launchctl)sim0.14 s0.1%62.1 KB15.9 MB1
pssim0.14 s0.1%1.8 MB1.8 MB262
(managedappdistri)sim0.13 s0.1%68.6 KB17.6 MB1
xpcproxy_simsim0.11 s0.1%119.0 KB13.4 MB4
launchctlsim0.07 s0.1%10.4 KB2.7 MB1
othersim0.00 s0.0%87.2 MB87.2 MB3

Residue

Unsupported / failed

None.