🧪 Test Hub
testing: Demo target v3.0.0 · built-in demo site
←

Run #471 — DEMO-020

passed
📄 Download report

queued 2026-09-25 00:30:11 · started 00:30:13 · finished 00:30:15 · duration 1s · target v3.0.0 · chromium · trigger: group · batch: group: Python and TypeScript, side by side

Step timings every page action is timed automatically

atsteptook
+0.70s ⏱ auth: no key 29 ms
+0.73s ⏱ GET a shipment 30 ms
+0.76s ⏱ POST a quote with SPRING10 18 ms
+0.80s ⏱ rate limit: 6 calls on the trial key 87 ms

Times are when each step began, on the replay's clock. Add your own phases with with ctx.timed("label"):.

Screenshots

No screenshots (use ctx.screenshot("name") in the test).

Artifacts

Run logrun.log
Playwright trace trace.zip open with: playwright show-trace trace.zip
Result JSONresult.json
Folderresults/DEMO-020/20260925-003013-r471/

Full log

Read from the S3 bucket (the last 20 KB; the whole file is the Run log link above).

[harness] test=DEMO-020 browser=chromium headed=False timeout=120s
[harness] target: http://127.0.0.1:8000/demo/
[test] [   0.70s] starting DEMO-020
[timing] auth: no key: 29ms
[timing] GET a shipment: 30ms
[timing] POST a quote with SPRING10: 18ms
[timing] rate limit: 6 calls on the trial key: 87ms
[test] [   0.89s] 0 broken promise(s)
[test] [   0.89s] PASSED
[harness] security: 0 high, 1 medium, 0 low
[harness] saved trace.zip
[harness] result: passed

Security observations what the browser noticed while this ran — not a penetration test

SeverityFindingWhat to do
medium The application is served over plain HTTP
http://127.0.0.1:8000/demo/ is not HTTPS, so anything typed into it travels the network in the clear and can be modified in transit.
On an isolated lab network this may be a deliberate choice -- if so, note it and move on. Anywhere else, terminate TLS in front of the application.
info No document response was observed
The test never loaded a top-level page from the target, so its headers could not be checked.
Have the test call page.goto(ctx.base_url) at least once.
info Cookie 'csrftoken' is readable by JavaScript (expected)
This looks like a CSRF token, which the page's own JavaScript has to read in order to send it back. HttpOnly would break that. Nothing to do -- listed so you know it was checked and not missed.
No action. Do check that SESSION cookies are HttpOnly.

All of these appear together on the Security page.