Запрос POST с wrk?

Я начал попробовать wrk. Он очень прост в использовании и очень сложный на сервере, но я не знаю, как выполнять другие запросы, такие как POST. На самом деле, я даже не знаю, разрешает ли этот инструмент. Документация очень минимальная.

Спасибо

Ответ 1

Это возможно сейчас. Вот пример 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.

Ответ 2

для тех, кто ищет пример типа контента "application/json":

wrk.method = "POST"
wrk.body = "{\"firstKey\": 'somedata', \"secondKey\": 'somedata'}"
wrk.headers["Content-Type"] = "application/json"

Ответ 4

Я рекомендую использовать 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