This document will grow over time. Each test case must describe
- what one-time initialisation is needed
- what operation to do
- which responses to treat as temporary errors
- what retry and backoff strategy to use
- which responses to treat as immediate failures
The idea is that tests run continuously and for the whole duration of the test. They can be stopped temporarily and resumed later.
-
Initially, use
POST /_api/collectionwith body
{ "name": "readtest", "numberOfShards": 3, "replicationFactor": 2 }to create a collection and write 100000 documents using
POST /_api/document/readtestwith body
{ "_key": "doc00000", "value": 0, "astring": "abc", "good": true }and similarly for the other 9999.
-
Continuously read a document via
GET /_api/document/readtest/doc00000varying the number between 00000 and 99999 in some way. Use any of the coordinators and switch from one to another continuously.
Expect to get HTTP 200 OK.
-
Connection failures and other HTTP error conditions should lead to retry (on a different coordinator). If an HTTP 200 OK can be achieved within 1 min the test script can ignore the issue (maybe with a log entry which counts as harmless).
-
Simple retry different coordinators for a minute.
-
A HTTP 404 "not found" or 307 "redirect" is an immediate failure. Failure to get an HTTP 200 within a minute is a test failure.