mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Fix lint error in types.ts * Bump eslint and its deps to latest * Add eslintignore and remove not needed eslintrcs * Change webpack configs eslint config * Update package.jsons and removed unused eslintrc files * Chore yarn lint --fix 💅 * Add devenv to eslintignore * Remove eslint disable comments for rules that are not used * Remaining eslint fixes 💅 * Bump grafana/eslint-config 💥 * Modify package.json No need for duplicate checks. * Modify eslintignore to ignore data and dist folders * Revert removing .eslintrc to make sure not to use certain packages * Modify package.json to remove not needed command * Use gitignore for ignoring paths
77 lines
2.4 KiB
JavaScript
77 lines
2.4 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 slowQuery = __ENV.SLOW_QUERY && __ENV.SLOW_QUERY.length > 0 ? parseInt(__ENV.SLOW_QUERY, 10) : 5;
|
|
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 slow test (queries between 1 and ${slowQuery} seconds)`, () => {
|
|
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: 'slow_query',
|
|
stringInput: `${Math.floor(Math.random() * slowQuery) + 1}s`,
|
|
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 => {};
|