mirror of
https://github.com/grafana/grafana.git
synced 2024-11-29 20:24:18 -06:00
3555997f98
better ha setup for many mysql connections prometheus now scrapes mysql metrics in ha setup ha setup provisions mysql dashboard adds configurable virtual users for load test run script
72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
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) => {}
|