add user group creation

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
This commit is contained in:
Marc 'risson' Schmitt
2024-04-22 17:16:14 +02:00
parent d19c692f81
commit cde4e395e9
2 changed files with 78 additions and 0 deletions

View File

@ -292,6 +292,16 @@ class EventList(TestSuite):
)
class UserGroupCreate(TestSuite):
TEST_NAME = "user-group-create"
TEST_CASES = [
(),
]
def create_data(self):
pass
def main(action: str, selected_suite: str | None = None):
testsuites = TestSuite.__subclasses__()
testcases = []

View File

@ -0,0 +1,68 @@
import exec from "k6/execution";
import http from "k6/http";
import { check } from "k6";
const host = __ENV.BENCH_HOST ? __ENV.BENCH_HOST : "localhost";
const VUs = __ENV.VUS ? __ENV.VUS : 8;
export const options = {
vus: VUs,
duration: "150s",
tags: {
testid: `user-group-create`,
},
};
export default function () {
const domain = `user-group-create.${host}:9000`;
const params = {
headers: {
Authorization: "Bearer akadmin",
"Content-Type": "application/json",
Accept: "*/*",
},
};
const random = (length = 32) => {
let chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
let str = "";
for (let i = 0; i < length; i++) {
str += chars.charAt(Math.floor(Math.random() * chars.length));
}
return str;
};
let user_res = http.post(
http.url`http://${domain}/api/v3/core/users/`,
JSON.stringify({
username: random(16),
name: random(16),
}),
params,
);
check(user_res, {
"user status is 201": (res) => res.status === 201,
});
let group_res = http.post(
http.url`http://${domain}/api/v3/core/groups/`,
JSON.stringify({
name: random(16),
}),
params,
);
check(group_res, {
"group status is 201": (res) => res.status === 201,
});
let user_group_res = http.post(
http.url`http://${domain}/api/v3/core/groups/${group_res.json()["pk"]}/add_user/`,
JSON.stringify({
pk: user_res.json()["pk"],
}),
params,
);
check(user_group_res, {
"user group status is 204": (res) => res.status === 204,
});
}