mirror of https://github.com/hashicorp/consul
54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import http from 'k6/http';
|
|
import { uuidv4 } from "https://jslib.k6.io/k6-utils/1.0.0/index.js";
|
|
import { check, fail } from 'k6';
|
|
|
|
let data = JSON.parse(open('service.json'));
|
|
|
|
|
|
export default function() {
|
|
|
|
const key = uuidv4();
|
|
const ipaddress = `http://${__ENV.LB_ENDPOINT}:8500`;
|
|
const kv_uri = '/v1/kv/';
|
|
const value = { data: uuidv4() };
|
|
const kv_address = `${ipaddress + kv_uri + key}`
|
|
|
|
//Put valid K/V
|
|
let kvres = http.put(kv_address, JSON.stringify(value));
|
|
if (
|
|
!check(kvres, {
|
|
'kv status code MUST be 200': (kvres) => kvres.status == 200,
|
|
})
|
|
) {
|
|
fail(`registry check status code was *not* 200. error: ${kvres.error}. body: ${kvres.body}`)
|
|
}
|
|
|
|
//Register Service
|
|
data["Name"] = key;
|
|
const service_uri = '/v1/agent/service/register';
|
|
|
|
const service_address = `${ipaddress + service_uri }`
|
|
let servres = http.put(service_address, JSON.stringify(data));
|
|
if (
|
|
!check(servres, {
|
|
'register service status code MUST be 200': (servres) => servres.status == 200,
|
|
})
|
|
) {
|
|
fail(`registry check status code was *not* 200. error: ${servres.error}. body: ${servres.body}`)
|
|
}
|
|
}
|
|
|
|
export let options = {
|
|
// 25 virtual users
|
|
vus: 25,
|
|
// 10 minute
|
|
duration: "10m",
|
|
// 95% of requests must complete below 2.5s
|
|
thresholds: { http_req_duration: ["p(95)<2500"] },
|
|
};
|