Skip to content

Commit b43ec9d

Browse files
committed
Added core load test script
1 parent 9f0a399 commit b43ec9d

File tree

1 file changed

+165
-0
lines changed

1 file changed

+165
-0
lines changed
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
import http from 'k6/http';
2+
3+
const CORE_API_TOKEN = "UID2-O-L-999-dp9Dt0.JVoGpynN4J8nMA7FxmzsavxJa8B9H74y9xdEE=";
4+
const CORE_BASE_URL = 'http://localhost:8088';
5+
6+
const AUTH_HEADERS = { headers: { 'Authorization': `Bearer ${CORE_API_TOKEN}` }};
7+
const HEADERS = { headers: { ...AUTH_HEADERS.headers, 'X-UID2-AppVersion': 'uid2-operator=0.0.0' }};
8+
9+
const STAGE_DURATION = '30s';
10+
const STAGE_LOAD_MULTIPLIER = [
11+
1,
12+
2,
13+
5,
14+
10,
15+
20,
16+
50,
17+
100,
18+
];
19+
20+
export const options = {
21+
scenarios: {
22+
ops_healthcheck: {
23+
executor: 'ramping-arrival-rate',
24+
exec: 'opsHealthcheck',
25+
startRate: 4,
26+
timeUnit: '1s',
27+
preAllocatedVUs: 1000,
28+
maxVUs: 1000,
29+
stages: getStages(4),
30+
},
31+
32+
attest: {
33+
executor: 'ramping-arrival-rate',
34+
exec: 'attest',
35+
startRate: 1,
36+
timeUnit: '1s',
37+
preAllocatedVUs: 1000,
38+
maxVUs: 1000,
39+
stages: getStages(1),
40+
},
41+
42+
clients_refresh: {
43+
executor: 'ramping-arrival-rate',
44+
exec: 'clientsRefresh',
45+
startRate: 1,
46+
timeUnit: '1s',
47+
preAllocatedVUs: 1000,
48+
maxVUs: 1000,
49+
stages: getStages(16),
50+
},
51+
keysets_refresh: {
52+
executor: 'ramping-arrival-rate',
53+
exec: 'keysetRefresh',
54+
startRate: 1,
55+
timeUnit: '1s',
56+
preAllocatedVUs: 1000,
57+
maxVUs: 1000,
58+
stages: getStages(16),
59+
},
60+
keyset_keys_refresh: {
61+
executor: 'ramping-arrival-rate',
62+
exec: 'keysetKeysRefresh',
63+
startRate: 1,
64+
timeUnit: '1s',
65+
preAllocatedVUs: 1000,
66+
maxVUs: 1000,
67+
stages: getStages(16),
68+
},
69+
salt_refresh: {
70+
executor: 'ramping-arrival-rate',
71+
exec: 'saltRefresh',
72+
startRate: 1,
73+
timeUnit: '1s',
74+
preAllocatedVUs: 1000,
75+
maxVUs: 1000,
76+
stages: getStages(16),
77+
},
78+
79+
sites_refresh: {
80+
executor: 'ramping-arrival-rate',
81+
exec: 'sitesRefresh',
82+
startRate: 1,
83+
timeUnit: '1s',
84+
preAllocatedVUs: 1000,
85+
maxVUs: 1000,
86+
stages: getStages(9),
87+
},
88+
cstg_refresh: {
89+
executor: 'ramping-arrival-rate',
90+
exec: 'clientSideKeypairsRefresh',
91+
startRate: 1,
92+
timeUnit: '1s',
93+
preAllocatedVUs: 1000,
94+
maxVUs: 1000,
95+
stages: getStages(9),
96+
},
97+
services_refresh: {
98+
executor: 'ramping-arrival-rate',
99+
exec: 'servicesRefresh',
100+
startRate: 1,
101+
timeUnit: '1s',
102+
preAllocatedVUs: 1000,
103+
maxVUs: 1000,
104+
stages: getStages(9),
105+
},
106+
service_links_refresh: {
107+
executor: 'ramping-arrival-rate',
108+
exec: 'serviceLinksRefresh',
109+
startRate: 1,
110+
timeUnit: '1s',
111+
preAllocatedVUs: 1000,
112+
maxVUs: 1000,
113+
stages: getStages(9),
114+
},
115+
},
116+
};
117+
118+
function getStages(qps) {
119+
return STAGE_LOAD_MULTIPLIER.map(loadMultiplier => ({
120+
duration: STAGE_DURATION,
121+
target: qps * loadMultiplier
122+
}));
123+
}
124+
125+
// Scenarios
126+
export async function opsHealthcheck(data) {
127+
http.get(`${CORE_BASE_URL}/ops/healthcheck`);
128+
}
129+
130+
export async function attest(data) {
131+
const validTrustedAttestationRequest = '{"attestation_request":"AA==","public_key":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl7kXK1wf15V9HgkQhbMK2nfJGbudmdXNrX7MZjFm07z6eEjaQsuqMteQumLRwn+RxEcXKVaxBAE3RQTFL9XsZc2OtRKOU+oMIQep8tmPFMgh83BzjLs5O5HZf510geFJO6qRqc3UHJT3ACxE7IkmRx1JIKFKPzTrthHdb2+D7bdJBPsVbwk7y+a36f5jvELGGzMC89LAvd7JpOmGsCAj6jwiEAKmmLId9bfe0YeLuebl95VfSzrQVdz82oGGQKXuJgKZtc/Xp1omZ9spm+zzVFJzsimxDdGdnaWMnas43VoTE04JDt+pucJTTbftIvu05frwkbZh3sQ2yBu5gBP7YwIDAQAB","application_name":"uid2-operator","application_version":"5.27.10-3f25586306","components":{"uid2-attestation-api":"2.0.0-f968aec0e3","uid2-shared":"7.2.4-SNAPSHOT"}}';
132+
http.post(`${CORE_BASE_URL}/attest`, validTrustedAttestationRequest, AUTH_HEADERS);
133+
}
134+
135+
export async function clientsRefresh(data) {
136+
http.get(`${CORE_BASE_URL}/clients/refresh`, HEADERS);
137+
}
138+
139+
export async function keysetRefresh(data) {
140+
http.get(`${CORE_BASE_URL}/key/keyset/refresh`, HEADERS);
141+
}
142+
143+
export async function keysetKeysRefresh(data) {
144+
http.get(`${CORE_BASE_URL}/key/keyset-keys/refresh`, HEADERS);
145+
}
146+
147+
export async function saltRefresh(data) {
148+
http.get(`${CORE_BASE_URL}/salt/refresh`, HEADERS);
149+
}
150+
151+
export async function sitesRefresh(data) {
152+
http.get(`${CORE_BASE_URL}/sites/refresh`, HEADERS);
153+
}
154+
155+
export async function clientSideKeypairsRefresh(data) {
156+
http.get(`${CORE_BASE_URL}/client_side_keypairs/refresh`, HEADERS);
157+
}
158+
159+
export async function servicesRefresh(data) {
160+
http.get(`${CORE_BASE_URL}/services/refresh`, HEADERS);
161+
}
162+
163+
export async function serviceLinksRefresh(data) {
164+
http.get(`${CORE_BASE_URL}/service_links/refresh`, HEADERS);
165+
}

0 commit comments

Comments
 (0)