暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

一款简单好用的压测工具

程序员Layne 2022-10-27
668

    

    SuperBenchmarker。一款贼好用超级简单轻便的压测工具。

    以前,为了做一些压力测试,第一反应就是jmeter。但是在日常开发中,我们只是需要简单地进行一下测试,没必要搞这么庞大的工具来进行操作,而且使用起来也太繁琐了。后面有好友推荐了一下SuperBenchmarker,发现这个工具真是太方便了,直接通过命令行的方式就能进行操作。

    工具源码地址:https://github.com/aliostad/SuperBenchmarker。有需求的朋友可以自己拉下来研究研究。运行工具在download文件夹下,下载下来进行简单的配置就能直接运行。具体安装方法就不赘述了,可以自己去上面提供的地址去看看,都有详细的介绍。

    贴下主要命令参数介绍:

参数
描述
-c, --concurrency(Default: 1) Number of concurrent requests
-n, --numberOfRequests(Default: 100) Total number of requests
-N, --numberOfSecondsNumber of seconds to run the test. If specified, -n will be ignored.
-y, --delayInMillisecond(Default: 0) Delay in millisecond
-u, --urlRequired. Target URL to call. Can include placeholders.
-m, --method(Default: GET) HTTP Method to use
-t, --templatePath to request template to use
-l, --logfilePath to the log file storing run stats
-f, --filePath to CSV file providing replacement values for the test
-a, --TSVIf you provide a tab-separated-file (TSV) with -f option instead of CSV
-d, --dryRunRuns a single dry run request to make sure all is good
-e, --timedField

Designates a datetime field in data. If set, requests will be sent according to order and timing of records.

-v, --verboseProvides verbose tracing information
-b, --tokeniseBodyTokenise the body
-k, --cookiesOutputs cookies
-x, --useProxyWhether to use default browser proxy. Useful for seeing request/response in Fiddler.
-q, --onlyRequestIn a dry-run (debug) mode shows only the request.
-h, --headersDisplays headers for request and response.
-z, --saveResponsessaves responses in -w parameter or if not provided in\response_<timestamp>
-w, --responsesFolderfolder to save responses in if and only if -w parameter is set
-?, --helpDisplays this help.
-C, --dontcapDon't Cap to 50 characters when Logging parameters
-R, --responseregexRegex to extract from response. If it has groups, it retrieves the last group.
-j, --jsonCount

Captures number of elements under the path e.g. root/leaf1/leaf2 finds count of leaf2 children - stores in the log as another parameter

-W, --warmUpPeriod

(Default: 0) Number of seconds to gradually increase number of concurrent users. Warm-up calls do not affect stats.

-P, --reportSliceSeconds

(Default: 3) Number of seconds as interval for reporting slices. E.g. if chosen as 5,report charts have 5 second intervals.

-F, --reportFolder

Name of the folder where report files get stored. By default it is in yyyy-MM-dd_HH-mm-ss.ffffff of the start time.

-B, --dontBrowseToReports

By default it, sb opens the browser with the report of the running test. If specified, it wil not browse.

-U, --shuffleDataIf specified, shuffles the dataset provided by -f option.
--helpDisplay this help screen.


    下面我们来进行一些简单的示例操作吧。

注意:我这里使用的操作环境是Windows

  • 简单访问地址

    sb -u "http://127.0.0.1:8080/demo/get"
    • 验证请求是否正常,查看响应信息

      sb -u "http://127.0.0.1:8080/demo/get?message=hello" -d
      • 10个并发,总共请求100次数

        sb -u "http://127.0.0.1:8080/demo/get" -c 10 -n 100
        • 10个并发,总共请求耗时60秒

          sb -u "http://127.0.0.1:8080/demo/get" -c 10 -N 60
          • 10个并发,总共请求耗时60秒,每次请求延迟 1秒

            sb -u "http://127.0.0.1:8080/demo/get" -c 10 -N 60 -y 1000
            • 请求post接口,携带头部参数及body内容

            sb-post.txt内容:

              token:token_message
              Content-Type: application/json


              {"page":1,"size":2000}

              执行命令:

                sb -u "http://127.0.0.1:8080/demo/post" -m POST -t C:\Users\layne\Desktop\sb-post.txt -d
                • 输出每个请求的响应时间到指定文件

                  sb -u "http://127.0.0.1:8080/demo/post" -m POST -t C:\Users\layneliu\Desktop\sb-post.txt -c 10 -N 10 -l C:\Users\layneliu\Desktop\sb-post-log.txt

                  输出内容:

                  响应时间 | 请求索引 | 返回HTTP状态码 | 响应耗时

                  部分请求示例截图:


                  根据相关返回结果描述,我们可以看到相应接口的一些性能指标。这样很方便地能知道接口的性能。

                  好啦,介绍就到这里啦,更多功能可以去上面提供的源码地址去仔细看看。


                  文章转载自程序员Layne,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论