25

任何人都知道像“Apache Bench”这样的负载测试工具来发送可变 URL。(相同的服务器,但不同的查询字符串)

例如,

ab -text list.txt -n 1000 http://test.com/search?

列表.txt

name=abc&age=10
name=pqr&age=20
anything=anything&age=30
......

注意:实际上apache bench中没有这样的选项-text

4

6 回答 6

22

尝试围攻,因为它提供了您需要的东西。您可以创建使用类似 bash 的参数的 url 文件,这样您就不必重复自己了。它还支持基本身份验证、POST、登录 url 等等。

siege -f urls.txt 

网址.txt:

URL=https://www.example.com/
$(URL)index.php?ab=1
$(URL)site.php?different=12

你可以在这里找到更多:http: //www.joedog.org/siege-home/

于 2014-11-09T18:56:54.187 回答
7

您可以将以下项目 apachebench 用于多个 url Apache Bench for Multiple URL

支持 ApacheBench 的多 URL 请求。您可以将 URL 列表设置为“-L 文件名”,并确认每个请求的文档长度的响应。

于 2012-12-11T02:44:34.177 回答
4

从 Windows 中的命令行:

for /F %q in (list.txt) DO ab -n 1000 https://test.com/search?%q

我不知道 Apache Bench 也不知道它是如何收集数据的。我的方法可能会为 list.txt 中的每一行开始一个新的数据集合,这是您可能不想要的。您必须手动汇总不同运行的结果。

(调试:

for /F %q in (list.txt) DO echo ab -n 1000 https://test.com/search?%q

这将在控制台上输出将要执行的语句)

于 2012-01-12T10:51:24.320 回答
1

如果您准备获取 Apache 源代码并将http://chrismiles.livejournal.com/21720.html上的补丁移植到 Apache 的 ab.c 源的当前版本(需要一些 C 的舒适度,但不多),您应该-text在 ab 中获得与您的参数等效的参数(实际上,您可以附加到您的请求中,这对于您只想更改参数子集的基准 POST 很有用)。

我目前正在自己​​尝试这个,所以陪审团还在外面......但早期的迹象表明这种方法效果很好。

于 2012-10-18T07:35:53.323 回答
0

我找到了这个 SuperBenchmark 工具。它位于 Dotnet 之上,甚至可以安装在 Mac OS 或 Ubuntu 服务器上。我将它安装在后一个上。

https://github.com/alostad/SuperBenchmarker

于 2020-08-15T13:43:32.380 回答
-2

Apache Bench for Multiple URL 不适用于长 URL。

于 2013-04-20T00:23:03.230 回答