Best Hub
A Best agent is a machine used to run BEST tests in an isolated environment, ensuring nothing changes. The agent usually runs with an specific best runner (ex: @best/runner-headless
or @best/runner-webdriver
) with the specific config
Starting the agent
Registration with a hub
When the best agent starts, if env.HUB_CONFIG
is set, it will try to auto register with the specified hub.
env.HUB_CONFIG
is a JSON string representing an object in the following form:
const hubConfig = {
hub: {
host: 'http://localhost:6000',
authToken: 'agent token used for authentication with the hub',
pingTimeout: 180000,
},
agentConfig: {
spec: {
browser: 'chrome',
version: '76',
},
host: 'http://localhost:5000',
options: { path: '/best' },
remoteRunner: '@best/runner-headless',
remoteRunnerConfig: {},
},
};
Communication registration process between the agent and the hub
When the agent starts, with a hub config, it will start the communication with the hub in the following protocol:
- Every
hubConfig.pingTimeout
the agent will do a ping request to the hub, and the hub can reply with
- registered=false. In this case the hub will make a request to register with the hub (2)
- registered=true. Nothing to do, the hub already has this agent registered.
- authentication failed. Any further communication is suspended since the connection token is invalid.
- Register agent with hub: the hub will return a status.code 201 in case of success, a different status code on failure to register the agent.