diff --git a/README.md b/README.md index 8df437196..20095123a 100755 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Works with mobile versions too. * Telemetry (optional) * Results sharing (optional) * Multiple Points of Test (optional) +* Responsiveness Under Working Conditions (optional) ![Screenshot](https://speedtest.fdossena.com/mpot_v6.gif) diff --git a/doc.md b/doc.md index 620b30e82..8931152c5 100755 --- a/doc.md +++ b/doc.md @@ -15,6 +15,7 @@ __Features:__ * Telemetry (optional) * Results sharing (optional) * Multiple Points of Test (optional) +* Responsiveness Under Working Conditions __Browser support:__ The test supports any browser that supports XHR Level 2 and Web Workers. JavaScript must be enabled. @@ -627,6 +628,14 @@ Jitter is the variance in ping times. See the code for more implementation details. +#### Responsiveness tests + +The Responsiveness tests follows [this draft](https://datatracker.ietf.org/doc/draft-ietf-ippm-responsiveness/). The goal is to measure ping on loaded connections. You can do in both way upload and download. + +This test also measures the bandwidth. + +See the code for more implementation details. + ### `backend` files #### `garbage.php` Uses OpenSSL to generate a stream of incompressible garbage data for the download test. diff --git a/docker/standalone.php b/docker/standalone.php index bf286933f..b3e6da7f4 100755 --- a/docker/standalone.php +++ b/docker/standalone.php @@ -109,6 +109,10 @@ function updateUI(forced){ drawMeter(I("ulMeter"),mbpsToAmount(Number(uiData.ulStatus*(status==3?oscillate():1))),meterBk,ulColor,Number(uiData.ulProgress),progColor); I("pingText").textContent=format(uiData.pingStatus); I("jitText").textContent=format(uiData.jitterStatus); + I("rpmUlText").textContent=(status==4&&uiData.rpmUlStatus==0)?"...":uiData.rpmUlStatus; + I("rpmUlRatioText").textContent=(status==4&&uiData.rpmUlStatus==0)?"...":uiData.rpmUlRatioStatus; + I("rpmDlText").textContent=(status==5&&uiData.rpmDlStatus==0)?"...":uiData.rpmDlStatus; + I("rpmDlRatioText").textContent=(status==5&&uiData.rpmDlStatus==0)?"...":uiData.rpmDlRatioStatus; } function oscillate(){ return 1+0.02*Math.sin(Date.now()/100); @@ -129,6 +133,10 @@ function initUI(){ I("pingText").textContent=""; I("jitText").textContent=""; I("ip").textContent=""; + I("rpmUlText").textContent=""; + I("rpmUlRatioText").textContent=""; + I("rpmDlText").textContent=""; + I("rpmDlRatioText").textContent=""; }