我目前正试图对一个允许简单用户登录、注销和其他功能的web应用程序进行压力测试,但我真的很难正确地编写一个脚本,它允许我将多个请求链接在一起。
例如,我想编写一个脚本,随机让传入的线程执行以下操作之一:
1.
应用程序使用基于表单的身份验证并维护会话。目前,我甚至不知道如何对我的/login路由执行正确的post请求,以便应用程序能够正确地为应用程序中的表单填写用户名和密码。应用程序在浏览器中工作正常,但是我一直在试图用wrk脚本来实现这个功能。目前,我已经尝试过这样的方法:
function request_0 ()
headers = {}
headers["Content-Type"] = "multipart/form-data"
local body = '{"username": "user0", "password": "pass0"}'
return wrk.format("POST", "/login", headers, body)
end
function request_1 ()
headers = {}
headers["Content-Type"] = "multipart/form-data"
local body = '{"username": "user1", "password": "pass1"}'
return wrk.format("POST", "/login", headers, body)
end
requests = {}
requests[0] = request_0
requests[1] = request_1
request = function()
return requests[math.random(0,1)]()
end至少模拟多个可能的传入请求,但是我的应用程序没有注册给定的用户名或密码。如果有人能够为请求提供适当的语法帮助,如何将多个请求链接在一起,以及如何处理身份验证,这将是非常感谢的。
发布于 2022-10-21 03:13:05
我对Lua几乎一无所知,但是对于链接+身份验证,请将此作为一个简单的示例:https://github.com/wg/wrk/blob/master/scripts/auth.lua
另外,对于body,尝试将JSON封装在双方括号中,而不是单个quotes...like --这是:[[{"key": "value"}]]
但是,对于复杂的场景,我建议您查看Gatling。下面是一个示例:https://www.youtube.com/watch?v=3txt29cG3VM
https://stackoverflow.com/questions/73938551
复制相似问题