Web 应用性能和压力测试工具 Gor

常见的 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 流量复制:


  1. gor –input-raw :80 –output-http “http://staging.com”

HTTP 流量复制频率控制:


  1. gor –input-tcp :28020 –output-http “http://staging.com|10″

HTTP 流量复制缩小:


  1. gor –input-raw :80 –output-tcp “replay.local:28020|10%”

HTTP 流量记录到本地文件:


  1. gor –input-raw :80 –output-file requests.gor

HTTP 流量回放和压测:


  1. gor –input-file “requests.gor|200%” –output-http “staging.com”

HTTP 流量过滤复制:


  1. gor –input-raw :8080 –output-http staging.com –output-http-url-regexp ^www.

最后

这个 Golang 写的 Gor 是开源的,意味着可以方便的集成到自己的架构中,可以用在压力测试平台、实时流量分析、应用层防火墙等等方面。

有用的链接

时间: 2024-02-26 01:50:13

Web 应用性能和压力测试工具 Gor的相关文章

Windows开源Web服务器性能和压力测试工具

linux有很多开源工具用来测试服务器负载,而windows上非常少,几乎没有除了几个复杂的JMeter WET等 将两个好用的工具是Linux版本通过Cygwin移植过来,方便广大windows人员使用,经过初步测试效果一致,是命令行简单易用的测试软件 1 http_load 程序非常小,http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求. 源码官方下载

Web服务器性能压力测试工具

Web服务器性能压力测试工具 http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载. 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死. 还可以测试HTTPS类的网站请求. 下载地址:http_load-12mar2006.tar.gz 安装很简单 tar zxvf http_load-12mar2006.tar.gz cd http_load-12mar2006 make && m

Web性能压力测试工具——Siege详解

Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行. Siege可以从您选择的预置列表中请求随机的URL.所以siege可用于仿真用户请求负载,而ab则不能.但不要使用siege来执行最高性能基准调校测试,这方面ab就准确很多. 一.安装 编译安装 wget http://www.joedog.org/pub/siege/siege-latest.ta

web压力测试工具apache

现在很多web压力测试工具都是收费的,但是apache却自带了一个免费的压力测试工具,即ab工具(命令).具体可在Apache的根目录下的bin目录里面,找到一个ab.exe文件就是.用它可以粗略检测一下自己的程序性能如何. 具体用法如下,摘抄自网上.如有错误,还请指正. 格式 ab [options] [http://]hostname[:port]/path 参数 -n requests     Number of requests to perform //在测试会话中所执行的请求个数.默

Web压力测试工具:http_load、webbench、ab、Siege使用方法_服务器其它

前言:常在网络飘,哪有不挨刀?做网站的站长说不准哪天得罪了XX人,二话不说直接操着DDOS就上来搞你了,黑不了你,哥就D死你,遇到这样的无赖,还真没办法,因此经常性的给自己的网站做做压力测试,看看服务器的承载能力是很有必要的一件事. 一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求. 下载地址:h

linux下web压力测试工具webbench

一直比较喜欢Ubuntu,也突然发现好长时间没有折腾ubuntu 了,哈哈,好长时间不搞,手痒了,技术这东东,还是需要经常折腾的. 其实以前做压力测试,AB使用的比较多,后来在张宴大哥的博客上看到webbench,然后自己也倒腾了下,还可以吧. 为什么要进行压力测试,说白了,就是测试你的代码的执行承载力,可能小的网站没有什么感触,因为他们每天的IP也就几千而已,一般服务器不经过优化,也可以罩得住, 但是大型网站是非常注重这些压力测试,因为他们注重的都是百万级的访问量, Webbench是什么呢?

十个免费的Web压力测试工具

两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能.我相信,北京奥组委的订票网站的开发团队并不知道有这样的测试工具. Grinder – Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利. 支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行管

QA Center Edition 5.0压力测试工具的功能与性能

QA Center Edition 5.0压力测试工具 工具的功能与性能: QACenter是完整的跨企业的自动测试产品,专为提高软件质量而设计. QACenter可以在整个开发生命周期.跨越多种平台.自动执行测试任务. 1)能够模拟成百的用户执行关键业务 2)能够直接向服务器发送请求 3)能够模仿用户的操作 4)能够测试系统的响应时间,包括: Script:测试执行时的脚本文件名字 PId:检测点号码 Checkpoint description:检测点描述 #Trans:检测点的总交易数 M

javaweb-java web应用压力测试工具

问题描述 java web应用压力测试工具 应用程序在chrome浏览器上运行,请问使用什么工具可以对该应用进行压力测试啊?