nix(loadtest): refactor generate_jwt -> generate_target
This makes the next change easier to do, but should be easier to review step-by-step.
This commit is contained in:
@@ -24,12 +24,12 @@ URL = "http://postgrest"
|
|||||||
secret_key = b"reallyreallyreallyreallyverysafe"
|
secret_key = b"reallyreallyreallyreallyverysafe"
|
||||||
|
|
||||||
|
|
||||||
def generate_jwt(
|
def generate_target(
|
||||||
now: int,
|
now: int,
|
||||||
exp_inc: Optional[int],
|
exp_inc: Optional[int],
|
||||||
rsa_private_key: Optional[jwt.algorithms.RSAAlgorithm],
|
rsa_private_key: Optional[jwt.algorithms.RSAAlgorithm],
|
||||||
) -> str:
|
) -> list[str]:
|
||||||
"""Generate an HS256 or RS256 JWT"""
|
"""Generate a target using an HS256 or RS256 JWT"""
|
||||||
payload = {
|
payload = {
|
||||||
"sub": f"user_{random.getrandbits(32)}",
|
"sub": f"user_{random.getrandbits(32)}",
|
||||||
"iat": now,
|
"iat": now,
|
||||||
@@ -45,13 +45,13 @@ def generate_jwt(
|
|||||||
else:
|
else:
|
||||||
key = rsa_private_key
|
key = rsa_private_key
|
||||||
alg = "RS256"
|
alg = "RS256"
|
||||||
return jwt.encode(payload, key, alg)
|
token = jwt.encode(payload, key, alg)
|
||||||
|
|
||||||
|
return [
|
||||||
def append_targets(lines: list[str], token: str):
|
f"OPTIONS {URL}/authors_only",
|
||||||
lines.append(f"OPTIONS {URL}/authors_only")
|
f"Authorization: Bearer {token}",
|
||||||
lines.append(f"Authorization: Bearer {token}")
|
"", # blank line to separate requests
|
||||||
lines.append("") # blank line to separate requests
|
]
|
||||||
|
|
||||||
|
|
||||||
# we use this to chain commands on loadtest.nix
|
# we use this to chain commands on loadtest.nix
|
||||||
@@ -150,14 +150,16 @@ def main():
|
|||||||
run_postgrest_time = 2
|
run_postgrest_time = 2
|
||||||
|
|
||||||
for i in range(ntargets):
|
for i in range(ntargets):
|
||||||
token = generate_jwt(now, run_postgrest_time + i // 1000, rsa_private_key)
|
target = generate_target(
|
||||||
append_targets(lines, token)
|
now, run_postgrest_time + i // 1000, rsa_private_key
|
||||||
|
)
|
||||||
|
lines.extend(target)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
tokens = [generate_jwt(now, None, rsa_private_key) for _ in range(nsamples)]
|
targets = [generate_target(now, None, rsa_private_key) for _ in range(nsamples)]
|
||||||
for i in range(ntargets):
|
for i in range(ntargets):
|
||||||
token = random.choice(tokens)
|
target = random.choice(targets)
|
||||||
append_targets(lines, token)
|
lines.extend(target)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(args.targets_path, "w") as f:
|
with open(args.targets_path, "w") as f:
|
||||||
|
|||||||
Reference in New Issue
Block a user