常见的 Web 应用的压力测试工具
Web 应用压力测试工具有很多,比如 Apache ab,node-ab,Apache JMeter, LoadRunner, httperf。但是这些工具都没能解决一个问题:
如何正确模拟生产环境的流量
如今 Web 应用的架构变得非常复杂,内部包含复杂的各种负载均衡、 服务和 RPC 调用关系,简单的发送 GET 请求到某些 URL 或者 API 接口完全无法模拟真实的流量。假如回放 HTTP 日志,操作又异常麻烦。Tcpcopy 虽然能够复制实时流量,但是操作也很复杂。之前的 亚马逊云平台的迁移 就用到了 Gor 这个工具。
Gor 是 Web 应用压力测试的完美方案
我一直在找一个简单又方便的解决方案,直到找到了 Gor 。Gor 是用 Golang 写的一个 HTTP 实时流量复制工具。只需要在 LB 或者 Varnish 入口服务器上执行一个进程,就可以把生产环境的流量复制到任何地方,比如 Staging 环境、Dev 环境。完美解决了 HTTP 层实时流量复制和压力测试的问题。
Gor 的功能
Gor 支持流量的放大和缩小、频率限制,这样不需要搭建和生产环境一致的服务器集群也可以正确测试。Gor 还支持根据正则表达式过滤流量,这意味着可以单独测试某个 API 服务。还可以修改 HTTP 请求头,比如替换 User-Agent, 或者增加某些 HTTP Header 。
Gor 还可以把请求记录到文件,以备回放和分析。Gor 支持和 ElasticSearch 集成,将流量存入 ES 进行实时分析。
Gor 的常用命令
简单的 HTTP 流量复制:
gor –input-raw :80 –output-http “http://staging.com”
HTTP 流量复制频率控制:
gor –input-tcp :28020 –output-http “http://staging.com|10″
HTTP 流量复制缩小:
gor –input-raw :80 –output-tcp “replay.local:28020|10%”
HTTP 流量记录到本地文件:
gor –input-raw :80 –output-file requests.gor
HTTP 流量回放和压测:
gor –input-file “requests.gor|200%” –output-http “staging.com”
HTTP 流量过滤复制:
gor –input-raw :8080 –output-http staging.com –output-http-url-regexp ^www.
最后
这个 Golang 写的 Gor 是开源的,意味着可以方便的集成到自己的架构中,可以用在压力测试平台、实时流量分析、应用层防火墙等等方面。
有用的链接
https://github.com/buger/gor
https://github.com/doubaokun/node-ab
https://github.com/session-replay-tools/tcpcopy
https://github.com/httperf/httperf
https://github.com/buger/gor/blob/master/ELASTICSEARCH.md
相关推荐
gor可以对公网的流量进行复制、存储、实时转发等
gor 是使用golang实现的类Ruhoh静态博客引擎 Ruhoh like 基本兼容ruhoh 1 x规范 相当于与ruhoh的官方实现 ruby实现 有以下优点: 速度完胜 编译wendal net近200篇博客 仅需要1秒 安装简单 得益于golang的特性 编译后...
gor -- A static websites and blog generator engine written in Go
一款国外行业软件,只是出于脱壳练手,没有其他目的
资源分类:Python库 所属语言:Python 资源全名:gor-0.1.4-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Gor 简单易用的流量回放及复制工具-附件资源
.NET Core是微软开发的一个开源、跨平台的应用程序框架,用于构建各种类型的应用,包括桌面应用、Web应用以及云服务。它支持Windows、Linux、macOS等多个操作系统,并且可以在不同的处理器架构上运行,包括x64(AMD...
性能是最好的,很合适用Raspberry Pi来做服务器,节省资源; 文章可以用Markdown格式来编写,采用Github来做版本控制,我的Blog仓库在 http://github.com/hugozhu/blog ,数据安全很好,误删除也不担心了; 很容易...
油藏工程是石油工程的重要...总之,“油藏工程软件包算法说明(储层流体物性参数计算)”文档将详细解析这些算法的原理、应用和限制,帮助工程师更好地理解和运用相关软件工具,以实现对油藏性能的精确评估和高效开发。
- **开发者支持**:对于开发者而言,WPConnect提供真机调试功能,允许他们直接在物理设备上测试应用程序,检查性能、崩溃报告和日志,以优化应用性能。 - **系统更新**:虽然未直接提及,但WPConnect也可能允许用户...
汽车前端模块是构成现代车辆不可或缺的一部分,它不单是一个...随着这一技术的普及和应用,我们可以预期未来汽车在安全性、舒适性和经济性方面都将得到显著提升,同时也将推动整个汽车行业向更高水平的智能制造迈进。
GoReplay是一个开源网络监视工具,可以记录您的实时流量,并将其用于影子,负载测试,监视和详细分析。关于随着应用程序的增长,测试它所需的工作量也成倍增加。 GoReplay为您提供了一个简单的想法,可以重用现有...
│ 72.3-短链平台Nacos配置中心链路测试.mp4 │ 72.4-短链平台域名解析配置实战.mp4 │ ├─73.短链平台?课-教你如何写?试官喜欢的简历(8节) │ 73.1-没有对比就没有伤害-面试官的你喜欢哪份简历项目.mp4 │...
│ 72.3-短链平台Nacos配置中心链路测试.mp4 │ 72.4-短链平台域名解析配置实战.mp4 │ ├─73.短链平台?课-教你如何写?试官喜欢的简历(8节) │ 73.1-没有对比就没有伤害-面试官的你喜欢哪份简历项目.mp4 │...
│ 72.3-短链平台Nacos配置中心链路测试.mp4 │ 72.4-短链平台域名解析配置实战.mp4 │ ├─73.短链平台?课-教你如何写?试官喜欢的简历(8节) │ 73.1-没有对比就没有伤害-面试官的你喜欢哪份简历项目.mp4 │...
│ 72.3-短链平台Nacos配置中心链路测试.mp4 │ 72.4-短链平台域名解析配置实战.mp4 │ ├─73.短链平台?课-教你如何写?试官喜欢的简历(8节) │ 73.1-没有对比就没有伤害-面试官的你喜欢哪份简历项目.mp4 │...
- FCC 是一种广泛应用于炼油行业的重油转化技术,其主要目标是将重油分解为更轻的燃料,如汽油、柴油和液化石油气(LPG)。 - 为了满足环保要求,FCC 进行了改进,包括脱硫和降烯烃工艺。例如,FCC 进料加氢处理...