【问题标题】:POST request with wrk?使用 wrk 发布请求?
【发布时间】:2013-02-22 02:03:49
【问题描述】:

我开始尝试wrk。它在服务器上使用起来非常简单,但我不知道如何执行其他类型的请求,例如 POST。事实上,我什至不知道这个工具是否允许它。文档非常少。

谢谢

【问题讨论】:

    标签: benchmarking wrk


    【解决方案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 脚本中,并使用 -s 标志将其传递到您的命令行测试中。

    【讨论】:

    • 哇!让我检查一下。如果我能设法使它起作用,我会将答案切换到您的答案。感谢您回到那个帖子。
    • 您先生,是救生员!正是我想要的。一种简单而优雅的方式来测试我的帖子 API。 +1
    【解决方案2】:

    这是一个用于发布二进制文件的示例 lua 脚本 post_binary.lua"Content-Type:application/octet-stream"

    wrk.method = "POST"
    wrk.headers["Content-Type"] = "application/octet-stream"
    
    file = io.open("dog.jpg", "rb")
    wrk.body = file:read("*a")
    

    那就试试:wrk "your_url" -s post_binary.lua --latency -t 1 -c 1 -d 30s -R 1

    【讨论】:

    • 正是我想要的!
    【解决方案3】:

    对于那些寻找内容类型“应用程序/json”示例的人:

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

    【讨论】:

    • 要发布 json 数据,这种格式实际上对我有用:wrk.body = '{"firstKey": "somedata", "secondKey": "somedata"}'
    【解决方案4】:

    我会推荐使用wrk2 而不是wrk,因为wrk2 为并发请求提供了更好的支持。当content-type 标头为application/json 时,请使用\\n 和所有其他特殊字符来转义\n 等特殊字符。不这样做会向上游 API 发送一个无效的 json,这会浪费你调试的时间。

    创建一个扩展名为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
    

    【讨论】:

      猜你喜欢
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 2013-07-15
      • 2015-02-16
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多