Skip to content

Commit

Permalink
fix(web-connectivity): explain input more in detail (#287)
Browse files Browse the repository at this point in the history
I think the spec was lacking too much detail and did not explain to a
technical user the big picture of what happens when they run Web
Connectivity.

I know this choice is going to put more burden on the maintainer of the
spec but I am the maintainer and I am happy about carrying this burden.

See ooni/probe#2666.
  • Loading branch information
bassosimone authored Feb 9, 2024
1 parent fbba757 commit 911c06c
Showing 1 changed file with 54 additions and 10 deletions.
64 changes: 54 additions & 10 deletions nettests/ts-017-web-connectivity.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@

## Specification name

Web connectivity
Web Connectivity (`web_connectivity`)

## Test preconditions

* An internet connection
* An internet connection;

* The ability to reach the web connectivity test helper
* The ability to reach the Web Connectivity test helper (TH).

## Expected impact

Expand All @@ -23,19 +23,63 @@ the reason for them not being reachable.

## Expected inputs

A list of URLs to be tested.
In OONI Probe CLI, you typically run Web Connectivity without any input as follows:

### Semantics
```bash
ooniprobe run websites
```

which is equivalent to running the corresponding "websites" group in the Android,
iOS, and Desktop OONI Probe applications.

When you run Web Connectivity like this, it connects to the OONI backend before the beginning
of the experiment and fetches the list of URLs to be tested. In such a case, you're getting
a list of URLs based on [the citizenlab/test-lists repository](https://github.com/citizenlab/test-lists)
that depend on your contry code, network, and URL prioritization algorithms.

It is also possible for you to manually specify which URLs to test from the command line:

```bash
ooniprobe run websites --input https://www.example.com/
```

It is also possible for you to create a file containing one line for each URL, e.g.:

```text
https://example.com/
https://example.it/path/
https://example.fr/a/longer/path/
https://example.org/
https://93.184.216.34/
https://[2606:2800:220:1:248:1893:25c8:1946]:443/
```

One URL per line:
and run it as follows:

```bash
ooniprobe run websites --input-file FILE_NAME.txt
```
http://example-1.com/
http://example-2.com/path1/
http://example-3.com/path2/

URLs may contain IP addresses rather than domain names. IPv6 addresses should be quoted using `[`
and `]` when there's a need to also specify a port (as illustrated above).

When using the `miniooni` research client, you run Web Connectivity as follows:

```bash
miniooni web_connectivity
```

URLs may contain IP addresses rather than domain names.
You measure a specific URL as follows:

```bash
miniooni web_connectivity --input https://www.example.com/
```

You measure a list of URLs as follows:

```bash
miniooni web_connectivity --input-file INPUT_FILE.txt
```

## Test description

Expand Down

0 comments on commit 911c06c

Please sign in to comment.