测试工具 go

发布时间:2024-11-22 00:10

软件测试工程师认证:学习测试理论和工具,通过考试。 #生活技巧# #工作学习技巧# #技能证书学习#

最新推荐文章于 2024-10-11 07:08:30 发布

隙间光点 于 2023-05-26 15:04:38 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

go-stress-testing

简介

go-stress-testing 是一款由go语言实现的压测工具,源码开源、支持二次开发、可以压测http、webSocket请求、私有rpc调用,使用协程模拟单个用户,可以更高效的利用CPU资源

使用方法

测试请求百度页面

./go-stress-testing-mac -c 1 -n 100 -u https://www.baidu.com/ 1

image.png

还蛮好用,并且还支持二次开发

优点总结

使用简单,只需要简单的命令行参数设置即可完成压力测试。支持多种协议,包括 HTTP、TCP、UDP 等。生成的报告直观,易于分析。

缺点总结

功能相对较少,不支持多种高级特性。

fortio

简介

fortio以指定的每秒查询(qps)运行,并通过记录执行时间的直方图来计算百分比。(ex:p99,即响应时间,表示99%的请求所用时间小于该数字)。fortio支持设定运行的持续时间、固定数量的调用或直到中断。
fortio同时非常快,轻量级(其docker镜像仅4MB,具备最小依赖性),并且支持二次开发、支持嵌入的go库以及以命令行工具和服务器进程的形式使用。其服务包括一个简单的web UI 和 REST API 用于触发运行并查看结果的图形表示(包括单个延迟图和多个结果比较的最小值、最大值、平均值、qps和百分位数图)
fortio (类似 httpbin) 的服务器端功能,用来帮助调试和测试:请求回显(包括请求头)、添加具有概率分布的延迟或错误代码、tcp回显、tcp代理、http扇出/分散和收集代理服务器、GRPC回显/健康以及http等

使用和安装

go的版本最低要求是 1.18安装命令 go install fortio.org/fortio@latest 也可以使用 brew 安装 brew install fortio 启动 fortio server 特别注意,这个命令需要在 $GOPATH 目录下运行 遇到的问题

测试运行

image.png

生成的结果

image.png

优点总结

有UI界面操作方便社区活跃,关注度高,质量有保证同样支持二次开发支持多种高级特性,例如分布式压力测试、持久连接测试、TLS 加密支持等。使用简单,提供可视化界面,易于使用和分析。

缺点总结

使用门槛相对较高,全英文需要较多时间学习使用对于一些复杂的场景,需要编写注释来实现。

vegeta

简介

Vegeta是一个通用的HTTP负载测试工具,它是基于对具有恒定请求率的HTTP服务的需要而进行构建的。既可以用作命令行也可以作为库使用。

使用和安装

安装 brew update && brew install vegeta 该命令执行报错可以执行 brew cleanup 或 关闭窗口 或 稍作等待再进行安装 使用 go 的方式安装 go install github.com/tsenart/vegeta@latest如下,安装成功image.png 测试使用 安装成功之后在 $GOPATH/bin 目录下可以看到下载成功的二进制文件进入 $GOPATH/bin 目录下,执行 ./vegeta 查看命令行帮助信息 使用步骤编写测试脚本 编写一个包含所有要测试的请求的文件,例如 test.txt 每一个请求占用一行,格式如下

请求方法 URI1 请求方法 URL2 {"post请求": "请求参数"} 123 运行测试 echo "GET [https://www.baidu.com/"](https://www.baidu.com/) | vegeta attack -duration=5s | tee results.bin | vegeta report解释:[https://www.baidu.com/](https://www.baidu.com/) 发起一个为期 5 秒的 GET 请求,并将结果记录在 results.bin 文件中,然后显示有关请求的报告测试结果如下image.png可以在当前目录看到生成的 results.bin 文件

优点总结

灵活性强,可以通过简单的配置文件实现多种复杂场景的压力测试。支持 HTTP/1.1、HTTP/2 和 TCP 协议。生成的报告详细,易于分析。

缺点总结

学习曲线较陡峭,需要一定的学习成本。没有可视化界面,不太易于使用。

总结

选择那一种压力测试工具,需要根据具体的需求和场景来决定。如果需要支持多种高级特性和分布式压力测试,则 fortio 较为适合。如果需要灵活性较强的测试工具,则可以选择 vegeta;如果需求比较简单,则可以选择 go-stress-testing

完结撒花

祝你生活愉快

参考

https://github.com/link1st/go-stress-testing
https://github.com/fortio/fortio
https://github.com/tsenart/vegeta

网址:测试工具 go https://www.yuejiaxmz.com/news/view/182272

相关内容

测试工具之压力测试工具推荐
压力测试工具
软件测试工具:11类41款主流测试工具盘点
压力测试+接口测试(工具jmeter)
gpu压力测试工具
[性能测试] Benchmarks(压力测试工具汇总)
常用压力测试工具锦集 · 测试之家
八个高效测试工具
InfluxDB 压力测试工具:Influx
HR常用的人才测评工具:职业能力测试,职业性格测试工具

随便看看