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 和指正。

2 回复

Node.js 简单的 HTTP 压力测试工具 node-ab

安装

首先,你需要安装 node-ab 这个简单的 HTTP 压力测试工具。你可以通过以下命令全局安装:

sudo npm install -g node-ab

安装完成后,你就可以在命令行中直接使用 node-ab 来进行压力测试了。

使用说明

node-ab 的基本用法非常简单,它模仿 ApacheBench (ab) 的命令行选项,提供了一种简单的方式来对 HTTP 服务器进行压力测试。以下是一些常见的用法示例:

  1. 发送 100 个请求

    node-ab -n 100 http://example.com/
    
  2. 并发 10 个请求

    node-ab -c 10 -n 100 http://example.com/
    
  3. 持续时间测试

    node-ab -t 60 http://example.com/
    
  4. 并发 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-abnode-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。你可以根据需要调整请求次数和并发度。

回到顶部