Nodejs 简单的 HTTP 压力测试工具 node-ab, 安装 sudo npm install -g node-ab
Nodejs 简单的 HTTP 压力测试工具 node-ab, 安装 sudo npm install -g node-ab
源码: https://github.com/doubaokun/node-ab
欢迎 Fork 和指正。
Node.js 简单的 HTTP 压力测试工具 node-ab
安装
首先,你需要安装 node-ab
这个简单的 HTTP 压力测试工具。你可以通过以下命令全局安装:
sudo npm install -g node-ab
安装完成后,你就可以在命令行中直接使用 node-ab
来进行压力测试了。
使用说明
node-ab
的基本用法非常简单,它模仿 ApacheBench (ab) 的命令行选项,提供了一种简单的方式来对 HTTP 服务器进行压力测试。以下是一些常见的用法示例:
-
发送 100 个请求
node-ab -n 100 http://example.com/
-
并发 10 个请求
node-ab -c 10 -n 100 http://example.com/
-
持续时间测试
node-ab -t 60 http://example.com/
-
并发 20 个请求并持续时间测试
node-ab -c 20 -t 60 http://example.com/
示例代码
如果你想在 Node.js 脚本中使用 node-ab
进行压力测试,可以参考以下示例代码:
const ab = require('node-ab');
// 发送 100 个请求
ab({
url: 'http://example.com/',
number: 100,
concurrency: 1
}, (err, result) => {
if (err) throw err;
console.log(result);
});
// 并发 10 个请求,发送 100 个请求
ab({
url: 'http://example.com/',
number: 100,
concurrency: 10
}, (err, result) => {
if (err) throw err;
console.log(result);
});
源码
你可以查看 node-ab
的源码和更多的用法示例,访问其 GitHub 仓库:
结语
node-ab
是一个轻量级的 HTTP 压力测试工具,适用于快速评估 HTTP 服务的性能。如果你有任何问题或建议,欢迎 Fork 并提出改进意见。
希望以上内容对你有所帮助!
Node.js 提供了多种工具来进行 HTTP 压力测试。这里我们介绍一个基于 Node.js 的简单 HTTP 压力测试工具 node-ab
。node-ab
是对 Apache Bench (ab) 的 Node.js 实现,可以帮助开发者进行简单的性能测试。
安装
你可以通过以下命令全局安装 node-ab
:
sudo npm install -g node-ab
安装完成后,就可以使用 node-ab
来运行压力测试了。
使用示例
node-ab
的用法与 Apache Bench 类似。以下是一些基本用法示例:
- 运行 100 次请求:
node-ab -n 100 http://example.com/
- 同时运行 50 个并发请求:
node-ab -c 50 -n 100 http://example.com/
- 设置请求时间(秒):
node-ab -t 60 http://example.com/
示例代码
这里提供一个简单的 Node.js 脚本来模拟 node-ab
的功能。该脚本会发送多个请求到指定的 URL,并输出一些基本的统计信息。
const http = require('http');
const url = 'http://example.com/'; // 请替换为目标 URL
const options = {
hostname: 'example.com', // 请替换为实际的主机名
port: 80,
path: '/',
method: 'GET',
};
function sendRequest() {
const req = http.request(options, res => {
let data = '';
res.on('data', chunk => {
data += chunk;
});
res.on('end', () => {
console.log(`Response received: ${data.length} bytes`);
});
});
req.on('error', error => {
console.error(`Problem with request: ${error.message}`);
});
req.end();
}
// 发送 100 个请求
for (let i = 0; i < 100; i++) {
sendRequest();
}
以上代码创建了一个简单的 HTTP 请求客户端,可以发送多个请求到指定的 URL。你可以根据需要调整请求次数和并发度。