Both are served from
https://app.vikingqa.io and return the same JSON shape.
Authenticate
Every request carries a project API token:VIKINGQA_TOKEN.
- A token belongs to one project. It can start batches in that project and read that project’s batches, and nothing else.
- A project can have as many tokens as you like. Create one per pipeline, so that if one leaks you revoke it without touching the others.
- Revoke takes effect at once. A revoked token gets
401, exactly like a token that never existed. - The API tokens page shows when each token was last used, so you can check nothing still depends on one before you revoke it.
Start a batch
400.
There is no default environment. A request without
environment, or naming
one the project doesn’t have, is refused rather than run somewhere else.
Each of environment, appVersion, name and every tag is text of 200
characters or fewer, and none of them may be empty or only spaces. tags may
name at most 20 tags — a pipeline selects a handful, and a longer list is a
runaway loop in a script rather than a selection. Anything over a limit is
refused with 400, and the message names the field.
202 Accepted straight away, with the new batch:
Run only some of the tests
Givetags to run a part of your suite — a smoke set on every deploy, and the
whole suite once a night:
- A test runs when it carries at least one of the tags you name.
- Write a tag as it is in your code,
@smoke, or without the@,smoke. Both select the same tests. vikingQA shows tags without the@, which is how Playwright reports them. - Upper and lower case are not the same here:
@Smokeand@smokeare two different tags, in your code and in this field. - Leave
tagsout, or send[], to run every test on the branch. - You cannot select tests by folder or by name. Tags are the one way.
empty_selection instead of passing with nothing tested. vikingQA can only
know that after it has read your branch, so it appears on the batch and not as
an error on this call.
PENDING means the batch exists and nothing has run yet. Behind the response,
vikingQA first reads the environment’s branch as it is now, then runs the
suite at that commit. A pipeline usually fires right after a push, so this is
what makes the batch test the code you just pushed, not an older copy. The
commit that ran appears as commitSha once it has been read.
Two calls a second apart start two batches, and both run. There is no rate
limit and no limit on how many batches run at once. The one wait is the read
of the branch: vikingQA reads one branch one step at a time, so a batch started
while that branch is already being read waits for that read to finish, usually
a few seconds and at most a few minutes, before it starts.
Read a batch
200 and the same shape as above. key is the batch key vikingQA
shows in the interface, and url opens that batch’s page.
The batch
Wait on
finished, not on a list of statuses. vikingQA may add status
values later. finished will stay correct when it does, and a script that
lists the final statuses itself would not.
Once finished is true, read status:
While it is not finished,
status is PENDING or RUNNING.
When error is set, its code says what went wrong:
Treat a
code you don’t recognise as a failure to look at, not as a
success. vikingQA adds codes as it learns to report new failures, so match on
the ones your pipeline handles specially and send everything else to the
batch’s url, which always says more than this field can.
Errors
A refused request returns a code you can check and a message for your log:409 is never about other batches that are running.