e2e framework benchmark — ios 2026-10-25

Run eas-ios-tester-army, started 2026-10-25T12:16:14.841Z

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.1.1
Host load at start
3.93
Device
warden-iphone-17-1 (ios, iOS 26.5), udid 3C5306E2-29B8-4814-A251-945E2183431E
App
nz.co.delacour.warden.example, hash import:2d35643eda49, sha256 2d35643eda49, 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.34 s133.43 s1.00×151.03 s18.69 s0 ms523 ms2.21 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.34 s · 1.00×050 s100 s150 s200 stester-army e2e 0.20.0tester-army: 132.34 s · 1.00× (p95 133.43 s, cold rep 1 151.03 s)132.34 s · 1.00×

Per-test medians (ms)

Testtester-army
onboarding steps through to sign-in6032 (1.00×)
invalid email and short password show field errors20867 (1.00×)
a locked account shows the form alert12799 (1.00×)
valid credentials land on todos14889 (1.00×)
add, complete and filter todos21196 (1.00×)
open a todo, mark it done, then delete it18171 (1.00×)
deep link opens a todo by id18056 (1.00×)
settings shows the account, toggles switches and signs out18070 (1.00×)

Median per test

Warm median per test and framework, in millisecondsonboarding steps through to sign-in: tester-army 6032 ms · 1.00×. invalid email and short password show field errors: tester-army 20867 ms · 1.00×. a locked account shows the form alert: tester-army 12799 ms · 1.00×. valid credentials land on todos: tester-army 14889 ms · 1.00×. add, complete and filter todos: tester-army 21196 ms · 1.00×. open a todo, mark it done, then delete it: tester-army 18171 ms · 1.00×. deep link opens a todo by id: tester-army 18056 ms · 1.00×. settings shows the account, toggles switches and signs out: tester-army 18070 ms · 1.00×010 s20 s30 sonboarding steps through to sign-intester-army: 6032 ms · 1.00×6032 ms · 1.00×invalid email and short password show field errorstester-army: 20867 ms · 1.00×20867 ms · 1.00×a locked account shows the form alerttester-army: 12799 ms · 1.00×12799 ms · 1.00×valid credentials land on todostester-army: 14889 ms · 1.00×14889 ms · 1.00×add, complete and filter todostester-army: 21196 ms · 1.00×21196 ms · 1.00×open a todo, mark it done, then delete ittester-army: 18171 ms · 1.00×18171 ms · 1.00×deep link opens a todo by idtester-army: 18056 ms · 1.00×18056 ms · 1.00×settings shows the account, toggles switches and signs outtester-army: 18070 ms · 1.00×18070 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 6.03 s. invalid email and short password show field errors: tester-army tester-army 20.87 s. a locked account shows the form alert: tester-army tester-army 12.80 s. valid credentials land on todos: tester-army tester-army 14.89 s. add, complete and filter todos: tester-army tester-army 21.20 s. open a todo, mark it done, then delete it: tester-army tester-army 18.17 s. deep link opens a todo by id: tester-army tester-army 18.06 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 6.03 s (p95 6.06 s, min 5989, max 6064, n 4)tester-army 6.03 sinvalid email and short password show field errorstester-army: tester-army 20.87 s (p95 21.02 s, min 20766, max 21025, n 4)tester-army 20.87 sa locked account shows the form alerttester-army: tester-army 12.80 s (p95 12.92 s, min 12687, max 12921, n 4)tester-army 12.80 svalid credentials land on todostester-army: tester-army 14.89 s (p95 15.18 s, min 14719, max 15175, n 4)tester-army 14.89 sadd, complete and filter todostester-army: tester-army 21.20 s (p95 21.27 s, min 21143, max 21273, n 4)tester-army 21.20 sopen a todo, mark it done, then delete ittester-army: tester-army 18.17 s (p95 18.27 s, min 18128, max 18272, n 4)tester-army 18.17 sdeep link opens a todo by idtester-army: tester-army 18.06 s (p95 18.51 s, min 17940, max 18508, n 4)tester-army 18.06 ssettings shows the account, toggles switches and signs outtester-army: tester-army 18.07 s (p95 18.33 s, min 17952, max 18333, 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 494 ms · p95 3.18 s01 s2 s3 s4 stester-army (592 steps)tester-army: 494 ms · p95 3.18 s494 ms · p95 3.18 s
FrameworkStepsMedianp95Max
tester-army592494 ms3.18 s3.98 s

Resources

CPU

CPU use per frameworkHost CPU average: tester-army 13.9%. Host CPU peak: tester-army 508.1%. Simulator CPU average: tester-army 118.9%. Simulator CPU peak: tester-army 560.4%0%200%400%600%Host CPU averagetester-army: 13.9%13.9%Host CPU peaktester-army: 508.1%508.1%Simulator CPU averagetester-army: 118.9%118.9%Simulator CPU peaktester-army: 560.4%560.4%

Memory

Peak resident memory per frameworkHost RSS peak: tester-army 2.0 GB. Simulator RSS peak: tester-army 37.0 GB0 B9.3 GB18.6 GB27.9 GB37.3 GBHost RSS peaktester-army: 2.0 GB2.0 GBSimulator RSS peaktester-army: 37.0 GB37.0 GB
FrameworkScopeCPU-s / repCPU avgCPU peakRSS avgRSS peak
tester-armyhost17.01 s13.9%508.1%599.5 MB2.0 GB
tester-armysim—118.9%560.4%36.8 GB37.0 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.26 s84.0%217.0 MB218.2 MB1
node entry.jshost1.05 s6.2%84.9 MB92.8 MB1
snapshot-bridgehost0.63 s3.7%116.2 MB116.3 MB1
(node) (exit charge)host0.62 s3.7%0 B0 B0
node e2ehost0.35 s2.1%109.4 MB132.3 MB1
(node)host0.03 s0.2%0 B0 B0
other (exit charge)host0.03 s0.2%0 B0 B0
(ps)host0.01 s0.1%27.9 KB1.7 MB5
simctlhost0.00 s0.0%20.5 MB20.5 MB1
DTServiceHubhost0.00 s0.0%16.8 MB16.8 MB1
(pgrep)host0.00 s0.0%0 B0 B0
(simctl)host0.00 s0.0%0 B0 B0
otherhost0.00 s0.0%0 B0 B0
iOSsim107.48 s60.4%35.1 GB35.2 GB289
wardenexamplesim49.85 s28.0%380.4 MB441.8 MB9
AgentDeviceRunnerUITests-Runnersim15.86 s8.9%271.0 MB271.2 MB1
bun cli.tssim2.56 s1.4%254.0 MB264.4 MB1
CoreSimulatorBridgesim0.57 s0.3%80.6 MB80.6 MB1
simctlsim0.54 s0.3%534.1 KB20.8 MB8
launchd_simsim0.46 s0.3%51.8 MB51.8 MB1
mlhostdsim0.24 s0.1%135.3 KB14.3 MB3
trialdsim0.16 s0.1%96.6 MB96.7 MB1
storekitdsim0.15 s0.1%128.2 MB128.2 MB1
launchctlsim0.10 s0.1%36.7 KB9.4 MB1
pssim0.06 s0.0%1.9 MB1.9 MB263
othersim0.07 s0.0%446.4 MB870.8 MB8

Residue

Unsupported / failed

None.