Я начал попробовать wrk. Он очень прост в использовании и очень сложный на сервере, но я не знаю, как выполнять другие запросы, такие как POST. На самом деле, я даже не знаю, разрешает ли этот инструмент. Документация очень минимальная.
Спасибо
Я начал попробовать wrk. Он очень прост в использовании и очень сложный на сервере, но я не знаю, как выполнять другие запросы, такие как POST. На самом деле, я даже не знаю, разрешает ли этот инструмент. Документация очень минимальная.
Спасибо
Это возможно сейчас. Вот пример https://github.com/wg/wrk/blob/master/scripts/post.lua.
wrk.method = "POST"
wrk.body = "foo=bar&baz=quux"
wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"
сохранить это в *.lua script и передать его в свой тест командной строки с флагом -s.
для тех, кто ищет пример типа контента "application/json":
wrk.method = "POST"
wrk.body = "{\"firstKey\": 'somedata', \"secondKey\": 'somedata'}"
wrk.headers["Content-Type"] = "application/json"
По словам создателя wrk... Это невозможно и не удастся выполнить другой HTTP-метод, чем GET. http://github.com/wg/wrk/issues/22#issuecomment-14677726
Я рекомендую использовать wrk2
вместо wrk
поскольку wrk2 обеспечивает лучшую поддержку для одновременных запросов. Если заголовок content-type
равен application/json
тогда, пожалуйста, избегайте специальных символов, таких как \n
с \\n
и всеми другими специальными символами. Если этого не сделать, недопустимый json отправится в вышестоящий API, что приведет к потере времени на отладку.
Создайте файл с расширением lua
и вставьте в него следующее. Сохраните его и передайте вместе с флагом -s
команде wrk2.
wrk.method = "POST"
wrk.body = "{\"firstKey\": 'somedata', \"secondKey\": 'somedata'}"
wrk.headers["Content-Type"] = "application/json"
Также вы можете добавить несколько заголовков как
wrk.headers["Header1"] = "Header1_Val"
wrk.headers["Header2"] = "Header2_Val"
wrk.headers["Header3"] = "Header3_Val"
wrk.headers["Header4"] = "Header4_Val"
wrk2 -t500 -c1000 -d160s -R10000 -s ~/Documents/luaTestScript.lua http://localhost:8080/test_endpoint