import { sleep, check, group } from 'k6'; import { createClient, createBasicAuthClient } from './modules/client.js'; import { createTestOrgIfNotExists, createTestdataDatasourceIfNotExists } from './modules/util.js'; export let options = { noCookiesReset: true }; let endpoint = __ENV.URL || 'http://localhost:3000'; const client = createClient(endpoint); export const setup = () => { const basicAuthClient = createBasicAuthClient(endpoint, 'admin', 'admin'); const orgId = createTestOrgIfNotExists(basicAuthClient); const datasourceId = createTestdataDatasourceIfNotExists(basicAuthClient); client.withOrgId(orgId); return { orgId: orgId, datasourceId: datasourceId, }; } export default (data) => { group("user auth token test", () => { if (__ITER === 0) { group("user authenticates thru ui with username and password", () => { let res = client.ui.login('admin', 'admin'); check(res, { 'response status is 200': (r) => r.status === 200, 'response has cookie \'grafana_session\' with 32 characters': (r) => r.cookies.grafana_session[0].value.length === 32, }); }); } if (__ITER !== 0) { group("batch tsdb requests", () => { const batchCount = 20; const requests = []; const payload = { from: '1547765247624', to: '1547768847624', queries: [{ refId: 'A', scenarioId: 'random_walk', intervalMs: 10000, maxDataPoints: 433, datasourceId: data.datasourceId, }] }; requests.push({ method: 'GET', url: '/api/annotations?dashboardId=2074&from=1548078832772&to=1548082432772' }); for (let n = 0; n < batchCount; n++) { requests.push({ method: 'POST', url: '/api/tsdb/query', body: payload }); } let responses = client.batch(requests); for (let n = 0; n < batchCount; n++) { check(responses[n], { 'response status is 200': (r) => r.status === 200, }); } }); } }); sleep(5) } export const teardown = (data) => {}