0
点赞
收藏
分享

微信扫一扫

SuperBenchmarker 压测工具

夜空一星 2022-02-11 阅读 79

SuperBenchmarker 压测工具

一.使用 chocolatey 安装

使用管理员权限打开 Power Shell

输入 choco 查看是否安装了chocolatey

choco

在这里插入图片描述

二.安装 chocolatey

输入:

cinst SuperBenchmarker

在这里插入图片描述

三.sb工具参数

参数全称指令含义
-c–concurrency并发请求书(默认: 1)
-n–numberOfRequests请求总数(默认: 100)
-N–numberOfSeconds运行测试的秒数。如果指定,-n将被忽略。
-y–delayInMillisecond延迟的毫秒数(默认值:0)
-u–url必需的, 要调用的目标URL。可以包含占位符。
-m–method使用的HTTP方法(默认值:GET)
-t–template请求使用的模板的路径(设置请求头或者参数)
-p–plugin插件(DLL)的名称,它提供了一种用于替换占位符或覆盖状态码的类型。必须位于相同的文件夹中。
-l–logfile存储运行状态的日志文件的路径
-f–file为测试提供替换值的CSV文件的路径
-a–TSV如果您使用-f选项而不是CSV选项来提供制表符分隔文件(TSV)
-d–dryRun运行一次试运行请求以确保一切正常
-e–timedField指定数据中的datetime字段。如果设置,请求将按照顺序发送记录的时间。
-g–TlsVersion使用TLS协议的版本。对于TLS 1.0、TLS 1.1和TLS 1.2,接受值为0、1、2和3和SSL3
-v–verbose提供详细跟踪信息
-b–tokeniseBodyTokenise the body
-k–cookies输出的cookies
-x–useProxy是否使用默认浏览器代理。用于在Fiddler中查看请求/响应。
-q–onlyRequest在干运行(调试)模式下,只显示请求。
-h–headers显示请求和响应的报头。
-z–saveResponses保存响应在-w参数或如果没有提供\response_<时间戳>
-w–responsesFolder当且仅当设置了-z参数时保存响应的文件夹
-C–dontcap记录参数时不要限制在50个字符
-R–responseRegex要从响应中提取的正则表达式。如果它有组,它将检索最后一个组。
-j–jsonCount捕获路径下的元素数量,例如root/leaf1/leaf2查找leaf2子元素的数量——将其作为另一个参数存储在日志中。如果数组在JSON的根目录,使用空格:-j ’ ’
-W–warmUpPeriod逐步增加并发用户数的秒数。热身呼叫不影响统计数据(默认值:0)。
-P–reportSliceSeconds报告片的间隔秒数。例如,如果选择5,报告图表有5秒的间隔(默认值:3)。
-F–reportFolder存储报告文件的文件夹的名称。缺省值为yyyy-MM-dd_HH-mm-ss。开始时间FFFFFF。
-B–dontBrowseToReports默认情况下,某人会打开浏览器并显示正在运行的测试报告。如果指定,则不会浏览。
-U–shuffleData如果指定,将打乱由-f选项提供的数据集。

四.常用示例

1. 发送1000个请求调用api

sb -u http://localhost:8087/api/space_coords -n 1000

在这里插入图片描述

2. 发送1000个请求调用api, 且并发量为 50

sb -u http://localhost:8087/api/space_coords -n 1000 -c 50

在这里插入图片描述

3. 发送50个并发请求调用api, 且并时间限定为 30 秒

sb -u http://localhost:8087/api/space_coords -c 50 -N 30 

在这里插入图片描述

4. 发送50个并发请求调用api, 且并时间限定为 30 秒, 且模拟实际应用, 每个请求延迟 100 毫秒

sb -u http://localhost:8087/api/space_coords -c 50 -N 30 -y 100

在这里插入图片描述
在这里插入图片描述

5. 测试带header信息的接口

利用 -t 参数, template.txt 中为header中的验证信息
在这里插入图片描述

sb -u http://localhost:8065/data/v/message/find_count -c 50 -N 30 -t template.txt

6. 测试请求方法为Post请求且带参数的接口

利用 -t 参数, template.txt 中为header中的信息和请求参数, 请求头与参数之间有空行

Content-Type: application/json

{
"name": "15211116565",
"age": "123456"
}
sb -u http://localhost:8065/datamiddle/v1/user/login -c 50 -N 30 -m POST -t template.txt

7. 测试请求方法为Get的接口且模拟随机参数

{{{number:RAND_INTEGER:[1:1000000]}}} 为随机生成 1 - 1000000 的数字

sb -u http://localhost:8087/api/add?number={{{number:RAND_INTEGER:[1:1000000]}}} -c 50 -N 30 

8. 测试请求方法为Get的接口, 且随机参数设定为固定的几个值

利用 -f 参数, 文件为csv或者txt, 例如 param.txt

number,
110,
120,
119,
114,
sb -u http://localhost:8087/api/add?number={{{number}}} -c 50 -N 30 -f param.txt

9. 测试请求方法为Post的接口, 且随机参数设定为固定的几个值

此时既要利用 -f 参数, 也要利用 -t 参数

-t 的 template.txt 文件:

Content-Type: application/json

{
    "name": {{{name}}},
    "age": {{{age}}}
}

-f 的 param.txt 文件, 字符串要加双引号:

name,age,
"小红",11,
"小绿",12,
"小黄",13,

sb -u http://localhost:8087/api/add_post -c 50 -N 30 -m POST -t template.txt -f param.txt
举报

相关推荐

0 条评论