Baton

HTTP 负载测试工具
授权协议 Apache 2.0
开发语言 Google Go
所属分类 开发工具、 性能测试和优化
软件类型 开源软件
地区 不详
投 递 者 颛孙正谊
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Baton 是一个用 Go 编写的 HTTP 负载测试工具,目前支持 GET、POST、PUT 和 DELETE 请求。

安装

$ go get -u github.com/americanexpress/baton

使用

目前支持以下选项

  -b string
    	Body (use instead of -f)
  -c int
    	Number of concurrent requests (default 1)
  -f string
    	File path to file to be used as the body (use instead of -b)
  -i	Ignore TLS/SSL certificate validation
  -m string
    	HTTP Method (GET,POST,PUT,DELETE) (default "GET")
  -o	Supress output, no results will be printed to stdout
  -r int
    	Number of requests (use instead of -t) (default 1)
  -t int
    	Duration of testing in seconds (use instead of -r)
  -u string
    	URL to run against
  -w int
    	Number of seconds to wait before running test
  -z string
    	Read requests from a file

下面是使用 10 个终端发送 200,000 个请求的基本示例:

 

$ baton -u http://localhost:8080/test -c 10 -r 200000

可以指定发送请求的时间(以秒为单位),而不是请求的数量,Baton 会等收到所有响应之后才报告结果。

请求文件

如果从 -z filename指定加载请求的文件,文件必须为 CSV 格式。

<method>,<url>,[<body>],[<header-key>:<header-value>, ...]
...

可以在末尾有一个或多个标题,用 隔开,比如:

POST,http://localhost:8888,body,Accept: application/xml,Content-type: Secret
GET,http://localhost:8888,,,

输出示例

====================== Results ======================
Total requests:                               1254155
Time taken to complete requests:        10.046739294s
Requests per second:                           124832
Max response time (ms):                           440
Min response time (ms):                            55
Avg response time (ms):                        156.70
===================== Breakdown =====================
Number of connection errors:                        0
Number of 1xx responses:                            0
Number of 2xx responses:                      1254155
Number of 3xx responses:                            0
Number of 4xx responses:                            0
Number of 5xx responses:                            0
=====================================================
  • Baton Relay Game Time Limit : 1 sec, Memory Limit : 131072 KB Japanese バトンリレーゲーム アカベ高校では、毎年全校生徒が参加するゲームを行っています。まず、校庭に N 人の全校生徒が円形に並びます。図のように、各生徒は 0 から N-1 までの番号が書かれたゼッケンを付けています。 ゲームではバトンを1本使い、最初はゼッケン

  • Clarke and baton    Accepts: 14    Submissions: 79  Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) 问题描述 克拉克是一名人格分裂患者。某一天,克拉克fork出了nn个自己,序号从11到nn。 他们准备玩一个减肥游戏,每一

  • Problem Description Clarke is a patient with multiple personality disorder. One day, Clarke split into nn guys, named 11 to nn. They will play a game called Lose Weight. Each of Clarkes has a weight a

  • Clarke and baton    Accepts: 1    Submissions: 126  Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) 问题描述 克拉克是一名人格分裂患者。某一天,克拉克fork出了nn个自己,序号从11到nn。 他们准备玩一个减肥游戏,每一

  • 这道题比赛的时候看了一下题,以为用优先队列能过,没想到常数过大,所以T了= = 题意: 现在有n个人,每个人有一个体重值w[i],然后,每次都可以使体重最大的那个人的体重值减少1,如果有多个体重值相同的人,那么就使序号最小的那个人体重值减少1,然后就这样进行q次,最后让你输出它们变化后的体重+它们的序号的异或和。 思路: 1)我是按照官方题解写的,首先开两个可变数组a,b,a是用来存体重是i的人的

  • Clarke and baton    Accepts: 1    Submissions: 126  Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) 问题描述 克拉克是一名人格分裂患者。某一天,克拉克fork出了nn个自己,序号从11到nn。 他们准备玩一个减肥游戏,每一

  • 传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5565 题意: 一堆数字,每次最大的数减1,如果最大的有多个,则取序号最小的,问最终序列? 其实这道题目还是蛮有意思的,一想肯定复杂度和q有关,而且肯定要从值入手,那么想每次减少的值肯定是从目前的和从上一个值降下来的取序号最小的,那么很显然就可以开两个vector来实现了! 这道题真的是醉了,交c++才

 相关资料
  • 主要内容:1. 项目依赖文件配置,2. @Test(invocationCount =?),3. @Test(invocationCount = ? threadPoolSize = ?),4. 负载测试示例在本教程中,我们将演示如何使用属性和在网站上执行负载测试或压力测试。 使用的工具 : TestNG 6.8.7 Selenium 2.39.0 Maven 3 我们使用库自动化浏览器来访问网站。创建一个用于测试的Maven项目:TestngSelenium 。 1. 项目依赖文件配置 获取T

  • 我的客户机正在使用EventHub的HTTPendpoint发布事件,这实际上意味着当客户机希望发布事件时,它会向一个特殊的URL发送HTTPS POST请求,例如: 我可以很容易地从本地机器上加载测试这个服务(例如,使用Apache JMeter),但不幸的是,本地机器的资源有限,所以我不能生成很大的负载来测试我的服务。 我说大负荷是什么意思? 如果没有,我如何加载测试我的基于EventHub的

  • 使用 Apache Ant 和 Apache JMeter 频繁进行负载测试 负载测试通常在开发周期的后期执行,但是并不一定要这样。在 让开发自动化的这一期,自动化专家 Paul Duvall 将向您描述如何创建一个运行 JMeter 测试的预订集成构建,发现和修复开发周期中出现的问题。 您的软件系统可供多少用户同时访问?在不引起性能下降的前提下可以加载多少数据?您的系统有多大的吞吐量需求?间隔多

  • 我们目前对应用程序的负载测试是使用jMeter完成的,到目前为止运行良好。我们有三个不同的线程组,可以通过命令行标志分别启用和配置。还可以从命令行配置线程数和目标吞吐量。 我正在寻找的是为每个线程组编程负载场景的可能性。通常jMeter启动所有线程,然后尝试达到其目标吞吐量速率。我想要实现的如下:我配置目标吞吐量速率为每秒500个请求,启动速率为20,增量为20,持续时间为5分钟。jMeter应该

  • 问题内容: 我已经构建了一个对资源需求(即http访问次数)做出反应的应用程序。为了测试它,我想使用ApacheJMeter以编程方式生成http GET请求。不幸的是,我找不到在测试用例的预定义段期间生成不同数量的http GET的任何可能性。例如,测试应如下所示: 希望有可能,谢谢。 问题答案: 吞吐量整形计时器插件允许以不同的速率设置多个流量段 https://jmeter-plugins.

  • 假设我需要编写一个gatling负载测试脚本,它需要调用两个api A1和A2。它首先需要调用A1,A1将返回一个JSON负载,它需要在JSON负载中提取一个字段,并在调用第二个API时使用该字段值。有人能告诉我怎么做吗?此脚本用于负载测试通过HTTP的服务器restful API。

  • 嗨,由于我不知道负载测试,我在学习时有疑问。希望如果它是一个无效的也请让我帮助。 在jmeter中,我们可以简单地记录并正确地进行负载测试。如果是这样的话,如果我从我的客户端加载一些未知的应用程序,可能会导致服务器崩溃。然后,如果未知人员负载测试的服务器崩溃,他们该怎么办。 有没有什么具体的事情要做负载测试,或者只是我们可以在任何网站上做负载测试。请让我知道这件事,即使我的查询也不是有效的……提前

  • 分布式负载测试 该教程描述如何在Kubernetes中进行分布式负载均衡测试,包括一个web应用、docker镜像和Kubernetes controllers/services。关于分布式负载测试的更多资料请查看Distributed Load Testing Using Kubernetes 。 准备 不需要GCE及其他组件,你只需要有一个kubernetes集群即可。 如果你还没有kuber