说到 webApi 管理和测试工具其实已经非常多的了, Postman,Swagger 等在管理和维护上都非常出色; 在性能测试方面也有不少的工具如: wrk,bombardier,http_load 和 ab 等等. 不过这些工具都具有单一性, 管理和维护好的在性能测试上比较低效, 对于性能测试好的在管理和维护上不理想! 以下主要介绍一款基于 dotnet core 开发的 WebApiBenchmarks 工具, 这个工具可以对 webapi 进行管理和维护并提供高效的性能测试能力, 接下来来先预览一下这个小工具再进行详细介绍.
功能
支持简单的服务管理, 可以随时对不同服务的 API 进行单元和压力测试
支持分类的方式管理测试用例, 用例支持定义 GET,POST,DELETE 和 PUT 等操作的定义
提供高效的性能测试支持, 在 4 核的 PC 上可以达到 20W rps 的测试效能;
支持多 API 同时压测, 并显示相关性能指标数据进行参考和对比
部署
工具可以运行在安装有. net core 2.1 或更高版本的 Linux 和 Windows 下, 工具以 http 服务的方式启动, 通过浏览器访问进行相关操作. 下载工具: https://github.com/IKende/WebApiBenchmark
运行
- Linux
- dotnet BeetleX.WebApiBenchmarks.dll
- or
- ./webapibenchmark.sh
- Windows
- dotnet BeetleX.WebApiBenchmarks.dll
- or
- webapibenchmark.bat
端口冲突
工具默认使用 9090 端口, 如果端口被占则无法启用服务, 这个时候需要修改 HttpConfig.JSON 文件中的端口配置
- "Host": "",
- "Port": 9090,
- "SSL": false,
打开工具
工具运行后可以浏览器访问相关地址打开工具, 本机访问 http://localhost:9090 / 其他电脑访问 http://ipaddress:9090/
添加服务地址
工具可以维护多个服务地址, 所有的测试都必须选择对应的地址才能运行测试.
地址必须是一个可用的 http 服务 Url
添加测试用例
工具支持 GET,POST,DELETE 和 PUT 请求定义, 可以根据实际情况定义 QueryString 和 Header 值, 并针对 POST 和 PUT 设置相应的 Body 内容. 具体操作界面如下:
在编辑界面下面有个测试按钮, 可以即刻测试 API 的调用情况; 选择相应的服务地址点击测试即可在下方看到完整的返回结果:
批量单元测试
工具支持批量执行测试用例, 并在测试用例上显示具体的执行结果; 只要选择需要测试的用例点击单元测试即可:
性能测试
性能测试是组件提供的最重要功能, 为了确保性能测试的效率; 组件重写了一个轻量化的 HttpClient, 通过这个 HttpClient 即使在低配置的电脑上也可以进行高效率的压力测试. 测试前需要选择相应的服务地址和单元测试用例
测试参数设置
工具提供两种测试方式, 分别是基于时间和总请求数据, 选择对应的测试方式设置相应的测试数值即可; 用户数是指同时请求的数量, 工具限制设置最大 2000, 设置完成后点击开始按钮即可进行测试
测试结果
工具会实时反映测试的情况, 主要包括 HTTP 响应状态和响应延时分布情况, 如果同时压测多个 API, 则明细里会实时显示每个 API 的响应状态和响应延时情况. 具体如下:
来源: https://www.cnblogs.com/smark/p/10500551.html