optimize fixtures, better user_list tests
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
This commit is contained in:
@ -15,8 +15,7 @@ django.setup()
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from authentik.core.models import Group, User
|
from authentik.core.models import Group, User
|
||||||
from authentik.stages.authenticator_static.models import (StaticDevice,
|
from authentik.stages.authenticator_static.models import StaticToken
|
||||||
StaticToken)
|
|
||||||
from authentik.tenants.models import Domain, Tenant
|
from authentik.tenants.models import Domain, Tenant
|
||||||
|
|
||||||
settings.CELERY["task_always_eager"] = True
|
settings.CELERY["task_always_eager"] = True
|
||||||
@ -29,14 +28,15 @@ def user_list():
|
|||||||
(100, 0, 0),
|
(100, 0, 0),
|
||||||
(1000, 0, 0),
|
(1000, 0, 0),
|
||||||
(10000, 0, 0),
|
(10000, 0, 0),
|
||||||
(10, 20, 0),
|
(100, 3, 0),
|
||||||
|
(1000, 3, 0),
|
||||||
|
(10000, 3, 0),
|
||||||
(100, 20, 0),
|
(100, 20, 0),
|
||||||
(1000, 20, 0),
|
(1000, 20, 0),
|
||||||
(10000, 20, 0),
|
(10000, 20, 0),
|
||||||
(10, 20, 10),
|
(100, 20, 3),
|
||||||
(100, 20, 10),
|
(1000, 20, 3),
|
||||||
(1000, 20, 10),
|
(10000, 20, 3),
|
||||||
(10000, 20, 10),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
for tenant in tenants:
|
for tenant in tenants:
|
||||||
@ -49,17 +49,28 @@ def user_list():
|
|||||||
Domain.objects.create(tenant=t, domain=f"{tenant_name}.localhost")
|
Domain.objects.create(tenant=t, domain=f"{tenant_name}.localhost")
|
||||||
|
|
||||||
with t:
|
with t:
|
||||||
for _ in range(groups_per_user * 5):
|
Group.objects.bulk_create([Group(name=uuid4()) for _ in range(groups_per_user * 5)])
|
||||||
group = Group.objects.create(name=uuid4())
|
for group in Group.objects.exclude(name="authentik Admins"):
|
||||||
for _ in range(parents_per_group):
|
for _ in range(parents_per_group):
|
||||||
new_group = Group.objects.create(name=uuid4())
|
new_group = Group.objects.create(name=uuid4())
|
||||||
group.parent = new_group
|
group.parent = new_group
|
||||||
group.save()
|
group.save()
|
||||||
group = new_group
|
group = new_group
|
||||||
for _ in range(user_count):
|
User.objects.bulk_create(
|
||||||
user = User.objects.create(username=uuid4(), name=uuid4())
|
[
|
||||||
|
User(
|
||||||
|
username=uuid4(),
|
||||||
|
name=uuid4(),
|
||||||
|
)
|
||||||
|
for _ in range(user_count)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
if groups_per_user:
|
||||||
|
for user in User.objects.exclude_anonymous().exclude(username="akadmin"):
|
||||||
user.ak_groups.set(
|
user.ak_groups.set(
|
||||||
Group.objects.exclude(name="authentik Admins").order_by("?")[:groups_per_user]
|
Group.objects.exclude(name="authentik Admins").order_by("?")[
|
||||||
|
:groups_per_user
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -82,7 +93,7 @@ def login():
|
|||||||
device = user.staticdevice_set.create()
|
device = user.staticdevice_set.create()
|
||||||
# Multiple token with same token for all the iterations in the test
|
# Multiple token with same token for all the iterations in the test
|
||||||
device.token_set.bulk_create(
|
device.token_set.bulk_create(
|
||||||
[StaticToken(device=device, token=f"staticToken") for _ in range(10000)]
|
[StaticToken(device=device, token=f"staticToken") for _ in range(100000)]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@ export const options = {
|
|||||||
obj,
|
obj,
|
||||||
{
|
{
|
||||||
executor: "constant-vus",
|
executor: "constant-vus",
|
||||||
vus: 10,
|
vus: 12,
|
||||||
duration: "300s",
|
duration: "300s",
|
||||||
startTime: `${315 * i}s`,
|
startTime: `${315 * i}s`,
|
||||||
env: {
|
env: {
|
||||||
@ -42,6 +42,10 @@ export default function () {
|
|||||||
check(res, {
|
check(res, {
|
||||||
"status is 200": (res) => res.status === 200,
|
"status is 200": (res) => res.status === 200,
|
||||||
});
|
});
|
||||||
|
if (res.status !== 200) {
|
||||||
|
fail("Endpoint did not return 200.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
const component = res.json()["component"];
|
const component = res.json()["component"];
|
||||||
let payload = {};
|
let payload = {};
|
||||||
@ -55,7 +59,7 @@ export default function () {
|
|||||||
};
|
};
|
||||||
} else if (component === "ak-stage-authenticator-validate") {
|
} else if (component === "ak-stage-authenticator-validate") {
|
||||||
payload = {
|
payload = {
|
||||||
code: `staticToken`,
|
code: "staticToken",
|
||||||
};
|
};
|
||||||
} else if (component === "xak-flow-redirect") {
|
} else if (component === "xak-flow-redirect") {
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -15,19 +15,20 @@ export const options = {
|
|||||||
[100, 0, 0, 100],
|
[100, 0, 0, 100],
|
||||||
[1000, 0, 0, 100],
|
[1000, 0, 0, 100],
|
||||||
[10000, 0, 0, 100],
|
[10000, 0, 0, 100],
|
||||||
[10, 20, 0, 20],
|
[100, 3, 0, 20],
|
||||||
|
[1000, 3, 0, 20],
|
||||||
|
[10000, 3, 0, 20],
|
||||||
[100, 20, 0, 20],
|
[100, 20, 0, 20],
|
||||||
[1000, 20, 0, 20],
|
[1000, 20, 0, 20],
|
||||||
[10000, 20, 0, 20],
|
[10000, 20, 0, 20],
|
||||||
[10, 20, 10, 20],
|
[100, 20, 3, 20],
|
||||||
[100, 20, 10, 20],
|
[1000, 20, 3, 20],
|
||||||
[1000, 20, 10, 20],
|
[10000, 20, 3, 20],
|
||||||
[10000, 20, 10, 20],
|
|
||||||
].map((obj, i) => [
|
].map((obj, i) => [
|
||||||
`${obj[0]}_${obj[1]}_${obj[2]}_${obj[3]}`,
|
`${obj[0]}_${obj[1]}_${obj[2]}_${obj[3]}`,
|
||||||
{
|
{
|
||||||
executor: "constant-vus",
|
executor: "constant-vus",
|
||||||
vus: 10,
|
vus: 12,
|
||||||
duration: "300s",
|
duration: "300s",
|
||||||
startTime: `${315 * i}s`,
|
startTime: `${315 * i}s`,
|
||||||
env: {
|
env: {
|
||||||
|
|||||||
Reference in New Issue
Block a user