QD 是一款基于 HAR 编辑器和 Tornado 服务端的开源 HTTP 定时任务自动化框架,支持通过抓包生成的 HAR 文件构建任务模板,实现 HTTP 请求的自动化执行。其核心设计目标是为开发者提供轻量级、高灵活性的定时任务管理能力,适用于数据采集、系统监控、API 测试、自动签到等场景。QD 通过模板化配置和可视化编辑,降低了 HTTP 请求链路的开发复杂度,尤其适合需要周期性执行网络操作的应用需求。
2.1 多场景支持
QD 可应用于多种自动化场景:
2.2 模板化配置
用户可通过 HAR 文件快速生成任务模板,并基于 Jinja2 语法实现动态变量替换(如 `{{ username }}`),支持环境变量抽取、日志记录和断言校验。
2.3 任务调度能力
支持灵活配置任务间隔(如每日、每小时)和执行时间,提供任务组管理功能,便于批量操作与监控。
3.1 硬件需求
3.2 软件依赖
4.1 Docker 部署(推荐)
bash
克隆仓库
git clone
cd qd
启动服务
docker-compose up -d
服务默认运行于 `
4.2 本地环境部署
bash
安装依赖
pip install -r requirements.txt
npm install
启动应用
python app.py
5.1 HAR 文件获取
通过浏览器开发者工具(Chrome/Firefox)或抓包工具(Fiddler/Stream)录制 HTTP 请求流程,导出为 HAR 格式文件。关键步骤包括:
5.2 模板配置与变量管理
1. 上传 HAR:在 QD 管理界面创建新模板并上传 HAR 文件。
2. 动态替换:将固定参数(如用户名、密码)替换为 `{{ variable }}` 形式。
3. 断言配置:设置成功/失败条件(如响应状态码或关键词匹配)。
示例模板片段:
yaml
method: POST
url: /login
headers:
Cookie: "sessionid={{ session_id }}
data:
username: "{{ user }}
password: "{{ passwd }}
extract:
token: regex('access_token=(.?)&')
5.3 任务创建与调度
6.1 自动签到系统
1. 使用 Chrome 开发者工具录制签到流程,导出 HAR。
2. 在 QD 中替换用户凭证变量,设置每日 8:00 执行。
3. 配置失败重试策略,并通过邮件通知异常状态。
6.2 API 健康检查
1. 定义多个接口的请求模板,设置 5 分钟间隔轮询。
2. 使用正则表达式抽取关键指标(如响应时间)。
3. 集成 Prometheus 导出监控数据,实现可视化告警。
通过以上配置与应用实践,QD 能够显著提升 HTTP 自动化任务的开发效率与可靠性。其模块化设计与社区模板共享机制(如“社区模板”功能)进一步降低了使用门槛,是中小型自动化需求的理想解决方案。
发表评论
2025-05-18 07:28:02回复
2025-05-18 06:55:08回复