You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
59 lines
1.5 KiB
-- Default to 1 request / second
|
|
wrk.method = "POST"
|
|
wrk.body = "10\n"
|
|
wrk.headers["Content-Type"] = "text/plain"
|
|
local delay_val = 1000
|
|
|
|
function init(args)
|
|
if #args == 0 then
|
|
io.write("[wrk stuff] -- --delay [delay in ms] [args ...]\n")
|
|
os.exit();
|
|
end
|
|
|
|
local current_arg = 1
|
|
while current_arg <= #args do
|
|
if args[current_arg] == "--delay" then
|
|
delay_val = args[current_arg + 1]
|
|
current_arg = current_arg + 2;
|
|
io.write(string.format("Delay: %s\n", delay_val))
|
|
else
|
|
-- Concatenate all remaining args
|
|
local buffer = ""
|
|
for i = current_arg, #args, 1 do
|
|
buffer = buffer .. args[i]
|
|
end
|
|
io.write(string.format("Buffer: %s\n", buffer))
|
|
wrk.body = buffer
|
|
-- And exit loop
|
|
break;
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Uncomment to dynamically generate a different request each time
|
|
-- function request()
|
|
-- return wrk.format(nil, nil, nil,tostring(math.random(10, 23)) .."\n")
|
|
-- end
|
|
|
|
-- Wrk calls a function name delay to get the delay between requests (in ms)
|
|
function delay()
|
|
return delay_val
|
|
end
|
|
|
|
function response(status, headers, body)
|
|
-- io.write(string.format("%s: %s\n", status, body))
|
|
end
|
|
|
|
-- Done Phase
|
|
|
|
-- Called when complete, presenting aggregate results
|
|
function done(summary, latency, requests)
|
|
io.write("Percentile, Latency\n");
|
|
for i = 1, 99 do
|
|
io.write(string.format("%d, %d\n", i, latency:percentile(i)))
|
|
end
|
|
end
|
|
|
|
|
|
|