106 lines
2.5 KiB
Lua
106 lines
2.5 KiB
Lua
-- Helper Functions:
|
|
|
|
-- Resource: http://lua-users.org/wiki/TypeOf
|
|
function typeof(var)
|
|
local _type = type(var);
|
|
if(_type ~= "table" and _type ~= "userdata") then
|
|
return _type;
|
|
end
|
|
local _meta = getmetatable(var);
|
|
if(_meta ~= nil and _meta._NAME ~= nil) then
|
|
return _meta._NAME;
|
|
else
|
|
return _type;
|
|
end
|
|
end
|
|
|
|
-- Resource: https://gist.github.com/lunixbochs/5b0bb27861a396ab7a86
|
|
local function string(o)
|
|
return '"' .. tostring(o) .. '"'
|
|
end
|
|
|
|
local function recurse(o, indent)
|
|
if indent == nil then indent = '' end
|
|
local indent2 = indent .. ' '
|
|
if type(o) == 'table' then
|
|
local s = indent .. '{' .. '\n'
|
|
local first = true
|
|
for k,v in pairs(o) do
|
|
if first == false then s = s .. ', \n' end
|
|
if type(k) ~= 'number' then k = string(k) end
|
|
s = s .. indent2 .. '[' .. k .. '] = ' .. recurse(v, indent2)
|
|
first = false
|
|
end
|
|
return s .. '\n' .. indent .. '}'
|
|
else
|
|
return string(o)
|
|
end
|
|
end
|
|
|
|
local function var_dump(...)
|
|
local args = {...}
|
|
if #args > 1 then
|
|
var_dump(args)
|
|
else
|
|
print(recurse(args[1]))
|
|
end
|
|
end
|
|
|
|
-- @end: Helper Functions
|
|
|
|
max_requests = 0
|
|
counter = 1
|
|
|
|
function setup(thread)
|
|
thread:set("id", counter)
|
|
|
|
counter = counter + 1
|
|
end
|
|
|
|
init = function(args)
|
|
io.write("[init]\n")
|
|
|
|
-- Check if arguments are set
|
|
if not (next(args) == nil) then
|
|
io.write("[init] Arguments\n")
|
|
|
|
-- Loop through passed arguments
|
|
for index, value in ipairs(args) do
|
|
io.write("[init] - " .. args[index] .. "\n")
|
|
end
|
|
end
|
|
end
|
|
|
|
response = function (status, headers, body)
|
|
io.write("------------------------------\n")
|
|
io.write("Response ".. counter .." with status: ".. status .." on thread ".. id .."\n")
|
|
io.write("------------------------------\n")
|
|
|
|
io.write("[response] Headers:\n")
|
|
|
|
-- Loop through passed arguments
|
|
for key, value in pairs(headers) do
|
|
io.write("[response] - " .. key .. ": " .. value .. "\n")
|
|
end
|
|
|
|
io.write("[response] Body:\n")
|
|
io.write(body .. "\n")
|
|
|
|
-- Stop after max_requests if max_requests is a positive number
|
|
if (max_requests > 0) and (counter > max_requests) then
|
|
wrk.thread:stop()
|
|
end
|
|
|
|
counter = counter + 1
|
|
end
|
|
|
|
done = function (summary, latency, requests)
|
|
io.write("------------------------------\n")
|
|
io.write("Requests\n")
|
|
io.write("------------------------------\n")
|
|
|
|
io.write(typeof(requests))
|
|
|
|
var_dump(summary)
|
|
var_dump(requests)
|
|
end |