DeepSeek Harness Hub
← 返回列表

freerpa/Hrequest

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

轻量级 Node.js 多线程 API 压测工具,支持代理轮询、请求参数随机化注入和实时进度监控。

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/2 · 已提供中文文档
综合分
29.1
GitHub 分
29.1
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add freerpa/Hrequest
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

Hrequest

轻量级 Node.js 多线程 API 压测工具,支持代理轮询、请求参数随机化注入和实时进度监控。

项目结构

Hrequest/
├── src/
│   ├── index.js          # 主入口:加载配置、创建工作线程、输出结果
│   ├── worker.js         # Worker 线程:发起 HTTP 请求
│   └── utils/
│       ├── config.js     # 配置文件加载与校验
│       ├── helpers.js    # 通用工具:随机字符串、代理加载
│       ├── logger.js     # 统一日志输出
│       ├── progress.js   # 进度条管理
│       └── stats.js      # 统计指标聚合
├── config.json           # 压测配置文件(复制为 config.dev.json 等自定义)
├── .gitignore
├── package.json
└── README.md

快速开始

1. 安装依赖

npm install

2. 配置压测参数

编辑 config.json(或传入自定义路径):

{
"req": {
"url": "http://localhost:8080/api/test",
"method": "POST",
"headers": {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
"data": {
"userId": "${random8}",
"timestamp": "${random}"
}
},
"proxy": "./proxy.txt",
"worker": 10,
"interval": 10,
"duration": 60000,
"timeout": 5000
}

3. 运行压测

使用默认 config.json
npm start

指定自定义配置文件
npm start -- ./config.dev.json

配置项说明

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| req.url | string | ✅ | 目标 API 地址 |
| req.method | string | ❌ | HTTP 方法,默认 GET |
| req.headers | object | ❌ | 请求头 |
| req.data | object | ❌ | 请求体(POST/PUT/PATCH 时生效) |
| proxy | string | ❌ | 代理列表:本地文件路径或 HTTP URL;留空则不使用代理 |
| worker | number | ✅ | 工作线程数 |
| interval | number | ✅ | 每个线程的请求间隔(毫秒) |
| duration | number | ✅ | 压测总时长(毫秒) |
| timeout | number | ❌ | 单个请求超时时间(毫秒),默认 5000 |

并发数估算

并发数 ≈ worker × (1000 / interval)

例如:worker=10, interval=10 → 约 1000 并发请求

代理文件

代理文件 proxy.txt 格式(每行一个):

43.224.116.188:25251
36.91.68.147:8080
http://103.153.247.118:8387

也可通过 HTTP URL 动态拉取代理列表:

"proxy": "http://your-proxy-service/proxies.txt"

随机字符注入

在 req.url、req.headers、req.data 中任意位置使用:

| 语法 | 效果 |
|------|------|
| ${random} | 生成 8 位随机字符串 |
| ${random8} | 生成 8 位随机字符串 |
| ${random16} | 生成 16 位随机字符串 |
| ${randomN} | 生成 N 位随机字符串 |

示例:

{
"url": "https://api.example.com/user/${random8}",
"headers": {
"X-Request-ID": "req-${random16}"
},
"data": {
"username": "user_${random10}"
}
}

运行指标

压测过程中终端实时显示:

进度 |████████░░░░░░░░░░░░░░░░░░| 40% || 5000 请求 || 成功率: 98.2% || 线程: 10/10 || 超时: 3 || 401: 0 || 403: 2

测试结束后的统计报告:

=== API压测统计 ===
总请求数: 5000
成功请求: 4925 (98.50%)
失败请求: 75
平均响应时间: 123.45ms
请求速率: 492.50 req/s
运行时间: 10.15s
401/403: 0/2
超时: 3
=====================

依赖说明

| 包名 | 用途 |
|------|------|
| axios | HTTP 请求库 |
| cli-progress | 终端进度条 |
| https-proxy-agent | HTTPS 代理支持 |

常见问题

请求成功率低
- 检查目标 API 是否正常
- 减小 worker 或增大 interval
- 确认代理服务器有效(可先手动测试)

代理不生效
- 确认代理文件格式正确(ip:port 或 http://ip:port)
- 每行一个代理,不要有空行
- 测试代理是否可连通目标服务器

内存占用过高
- 减少 worker 数量
- 缩短 duration
- 检查代理存活率,无效代理会导致重试堆积

401/403 错误增多
- Token 可能已过期,更新 Authorization 头
- 检查接口权限配置

注意事项
- 请勿将含真实代理地址的文件提交至代码仓库
- duration 单位是毫秒,60000 = 60秒
- 工作线程数建议不超过 CPU 核心数的 2~4 倍

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群