Skip to content

Repository files navigation

ganhuo-adspower-budianji

把 AdsPower 多链接重复测试,从逐条慢慢点,变成按轮并行、自动计数、可审计。

指定一个 AdsPower 环境、若干完整链接和轮数;技能会先检查 LocalAPI,再在每一轮同时打开全部链接,等待、关闭,并确认环境回到 Inactive

Node.js 18+ AdsPower LocalAPI Claude + Codex License: MIT GitHub stars

English · 30 秒上手 · 复制 Prompt · 下载 Skill

用于已获授权的链接可达性和重复稳定性测试,不用于制造流量、广告互动或归因数据。

它解决什么问题

人工测试多个长链接时,最浪费时间的不是“打开页面”,而是重复处理这些细节:AdsPower 有没有启动、环境号是否正确、多个链接能不能同时测、每一轮是否完整关闭、失败发生在哪个链接、报告会不会泄露查询参数。

这个 Skill 把整套流程固定下来:

  • 先检查,再执行:自动探测 127.0.0.1:5032550326,LocalAPI 不通就停止。
  • 环境精确匹配:按 serial_number 找环境;环境已在使用时拒绝接管,避免误关现有会话。
  • 同轮真并行:一轮内全部链接通过 Promise.all 同时打开和等待,不做 链接数 × 30 秒 的串行排队。
  • 完整一轮语义:启动环境 → 并行打开 → 等待 → 关闭页面 → 停止环境 → 回读 Inactive,全部完成才计一轮。
  • 默认等待 30 秒:适合加载较慢或需要观察跳转后的页面,也可通过参数调整。
  • 失败可定位:保留轮次、链接序号、HTTP 状态或错误;单条失败不会掩盖其余结果。
  • 隐私优先:报告只保留脱敏 URL 和短哈希,不保存查询参数值、Cookie、代理凭据或 API Key。
  • Claude / Codex 双兼容:标准 SKILL.mdagents/openai.yaml,同一份仓库可被两端识别。

运行模型

flowchart LR
    A["检测 AdsPower LocalAPI"] --> B["精确查找环境号"]
    B --> C["启动环境"]
    C --> D["同轮并行打开全部链接"]
    D --> E["每页等待 30 秒"]
    E --> F["关闭页面与环境"]
    F --> G{"已回到 Inactive?"}
    G -- 是 --> H["计为完整一轮并写入报告"]
    G -- 否 --> I["标记本轮不完整"]
    H -->|还有轮次| C
Loading

一轮的耗时接近“最慢链接的加载时间 + 30 秒 + 环境启动/关闭时间”,而不是所有链接等待时间相加。

真实验收记录

2026-07-14 在本地 AdsPower 环境完成了脱敏验收:

项目 结果
测试规模 6 个链接 × 3 轮 = 18 次导航
执行方式 每轮 6 个链接并行
页面停留 每页 30 秒
导航结果 18 / 18 通过
完整轮次 3 / 3 通过
环境状态 每轮结束后均回读为 Inactive
隐私检查 报告未保存原始查询参数值

这是一条单机验收记录,不代表所有网络、代理或目标站点都会得到相同结果。

30 秒上手

安装

克隆一次,同时链接给 Codex 和 Claude:

git clone https://github.com/yuanyuanyuan430/ganhuo-adspower-budianji.git "$HOME/ganhuo-adspower-budianji"
mkdir -p "$HOME/.codex/skills" "$HOME/.claude/skills"
ln -s "$HOME/ganhuo-adspower-budianji" "$HOME/.codex/skills/ganhuo-adspower-budianji"
ln -s "$HOME/ganhuo-adspower-budianji" "$HOME/.claude/skills/ganhuo-adspower-budianji"

也可以从 Releases 下载 ganhuo-adspower-budianji.skill

对 Agent 说

使用 $ganhuo-adspower-budianji。
先检测 AdsPower LocalAPI;用环境号 1001 测试下面 3 个完整链接,共跑 5 轮。
每一轮同时打开全部链接,每页等待 30 秒;全部页面关闭且环境回到 Inactive 才算一轮。

https://example.com/a?case=one
https://example.com/b?case=two
https://example.com/c?case=three

更多可直接复制的中文和英文用法见 PROMPTS.md

直接使用命令行

先 dry-run,确认 LocalAPI、环境号、链接数和轮数:

node scripts/run.mjs \
  --profile-no 1001 \
  --rounds 3 \
  --url 'https://example.com/a?case=one' \
  --url 'https://example.com/b?case=two' \
  --dry-run \
  --json

确认无误后执行:

node scripts/run.mjs \
  --profile-no 1001 \
  --rounds 3 \
  --url 'https://example.com/a?case=one' \
  --url 'https://example.com/b?case=two' \
  --execute \
  --json

参数

参数 必填 默认值 说明
--profile-no AdsPower 环境号,即 serial_number
--url 完整 URL;可重复传入多个,原样保留
--rounds 1 完整测试轮数,范围 1–1000
--dry-run / --execute dry-run 语义 只检查计划,或真实执行
--settle-ms 30000 每个并行页面加载后的停留时间
--navigation-timeout-ms 30000 单链接导航超时
--between-rounds-ms 1500 两轮之间的间隔
--api 自动探测 指定 AdsPower LocalAPI 地址
--report-dir .adspower-safe-reports 本地 JSON 报告目录

如 LocalAPI 开启鉴权,通过环境变量 ADSPOWER_API_KEY 提供密钥;不要把密钥写进命令或仓库。

环境要求

  • Node.js 18 或更高版本
  • 已启动并允许 LocalAPI 的 AdsPower
  • 本机可用的 Playwright;找不到时可设置 PLAYWRIGHT_NODE_MODULES
  • 目标 AdsPower 环境必须处于 Inactive
  • 你有权访问并重复测试目标链接

输出与隐私

每次 dry-run 或执行都会生成权限为 0600 的 JSON 报告,包括:

  • LocalAPI 连接结果和实际地址
  • 环境号、链接数、轮数、计划导航次数
  • parallel_per_round 执行模式和并行标签页数
  • 完整轮数、成功轮数、失败轮数
  • 失败项的轮次、链接序号、状态或错误
  • URL 路径、脱敏查询标记和短哈希

查询参数值、Cookie、代理凭据和 API Key 不会写入报告。公开提交 Issue 前,仍请自行检查并删除环境名称、环境 ID 和本地路径。

自检

node scripts/run.mjs --self-test

自检覆盖 URL 校验、查询参数脱敏、轮数计算、同轮并行、30 秒默认值和 API 地址拼接,不会启动 AdsPower 环境。

项目结构

SKILL.md                         # Claude / Agent 技能说明
agents/openai.yaml               # Codex 展示与默认调用信息
scripts/run.mjs                  # LocalAPI + Playwright 执行器
evals/evals.json                 # 触发与行为评测样例
examples/                        # 安全、可复制的演示
dist/ganhuo-adspower-budianji.skill
PROMPTS.md                       # 中英文复制即用 Prompt
llms.txt / llms-full.txt         # AI 可读项目入口

常见问题

为什么不接管已经打开的环境?

脚本每一轮都会停止环境。接管已有会话可能误关你正在使用的浏览器,所以检测到 Active 会立即停止。

10 个链接会等待 10 × 30 秒吗?

不会。同一轮中的链接并行打开和等待;只有轮次之间是顺序执行,以保证每轮都有独立的启动、关闭和状态验证。

链接失败会自动重试到成功吗?

不会用重试掩盖失败率。单条失败会被记录,其余链接和后续轮次继续执行;LocalAPI 的短暂限频会做有限重试。

贡献与安全

欢迎提交 Issue 和 Pull Request。请先阅读 CONTRIBUTING.mdSECURITY.md,不要提交真实追踪链接、Cookie、代理凭据、API Key 或未经脱敏的报告。

如果这个项目替你省下了重复测试时间,欢迎点一个 Star,也欢迎把它分享给同样在做 AdsPower 自动化测试的人。

License

MIT

About

AdsPower parallel, round-based link reachability and repeat-stability testing Skill with LocalAPI preflight, 30s waits, redacted reports, and Claude + Codex support.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages