我需要对将参数作为输入的REST API进行基准测试。我想知道是否有一种使用wrk的方法。现在我看不到这样的选择:

user@Ubuntu-K56CA:~/wrk$ ./wrk
Usage: wrk <options> <url>
  Options:
    -c, --connections <N>  Connections to keep open
    -d, --duration    <T>  Duration of test
    -t, --threads     <N>  Number of threads to use

    -s, --script      <S>  Load Lua script file
    -H, --header      <H>  Add header to request
        --latency          Print latency statistics
        --timeout     <T>  Socket/request timeout
    -v, --version          Print version details

当我查看此文件时:https://github.com/wg/wrk/blob/master/src/wrk.lua

我没有在任何地方使用params。同样,在params存储库中对wrk进行grepping不会产生任何有用的信息。

我想念什么吗?

最佳答案

您可以将其添加到url中:

./wrk -c1 -t1 -d5s http://server.com/my_path?param_name=param_value

或者,如果您想在测试期间生成它,则可以使用脚本来完成:
./wrk -t1 -c1 -d5s -s ./scripts/my_script.lua http://server.com

其中my_script.lua是:
request = function()
  wrk.headers["Connection"] = "Keep-Alive"
  param_value = math.random(1,100)
  path = "/my_path?param_name=" .. param_value
  return wrk.format("GET", path)
end

09-11 17:48