# AnotherFasterRunner
**Repository Path**: lihuacai/AnotherFasterRunner
## Basic Information
- **Project Name**: AnotherFasterRunner
- **Description**: 基于HttpRunner+Python+DRF+Vue的接口自动化测试平台
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://fast.huacai.one/fastrunner/login
- **GVP Project**: No
## Statistics
- **Stars**: 67
- **Forks**: 19
- **Created**: 2020-12-25
- **Last Updated**: 2025-09-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[](https://github.com/HttpRunner/FasterRunner/blob/master/LICENSE)
# FasterRunner
🚀 让接口测试更简单,让自动化更快速!
- [X] 🚀 **落地实战** - 已在 5+ 个公司中落地实战,效果显著
- [X] 🔄 **无缝同步** - 支持一键同步 YAPI(Swagger,Postman)接口数据,告别手动录入的繁琐
- [X] 💪 **强大引擎** - 基于Pythone3 + Requests 打造,轻松应对各类 HTTP(S) 测试场景,稳定可靠
- [X] 🔐 **灵活扩展** - 通过 debugtalk.py 自定义函数,轻松实现接口签名、加解密等自定义功能
- [X] 🎯 **完美联动** - 强大的 hook 机制,优雅处理接口间的token依赖和参数传递,打通测试全流程
- [X] ⏰ **智能调度** - 内置 crontab 定时任务,无学习成本,帮你实现自动化监控
- [X] 📊 **数据驱动** - 支持测试用例参数化,释放测试人员生产力
- [X] 🔄 **持续集成** - 完美对接 Gitlab-CI、Jenkins 等CI工具,助力研发效能提升
- [X] 📈 **清晰报告** - 简洁美观的测试报告,包含详尽的统计信息和日志记录,一目了然
- [X] 📱 **即时通知** - 自动推送测试报告至飞书、钉钉、企业微信,随时掌握测试动态

# 📐 系统架构
```mermaid
graph TB
%% 用户层
subgraph "用户层"
User[👤 测试用户]
Browser[🌐 浏览器]
CI[🔄 CI/CD工具
Jenkins/GitLab CI]
end
%% 前端层
subgraph "前端层"
Web[📱 Vue.js Web界面
端口: 80]
Admin[⚙️ Django Admin
端口: 8000]
end
%% 负载均衡
subgraph "负载均衡层"
WebNginx[🔀 Web Nginx
静态资源服务]
AdminNginx[🔀 Admin Nginx
管理接口代理]
end
%% 应用层
subgraph "应用服务层"
Django[🐍 Django REST API
认证/授权/业务逻辑]
subgraph "核心模块"
FastRunner[📋 FastRunner
测试用例管理]
FastUser[👥 FastUser
用户管理]
MockServer[🎭 Mock Server
接口模拟]
System[🔧 System
系统监控]
end
end
%% 任务调度层
subgraph "任务调度层"
CeleryBeat[⏰ Celery Beat
定时任务调度]
CeleryWorker[⚡ Celery Worker
异步任务执行]
HttpRunner[🏃 HttpRunner
测试执行引擎]
end
%% 消息队列
subgraph "消息队列"
RabbitMQ[🐰 RabbitMQ
消息代理
端口: 5672/15672]
end
%% 数据层
subgraph "数据存储层"
Database[(🗄️ MariaDB/MySQL
业务数据存储
端口: 3306)]
Files[📁 本地文件
日志/静态资源/报告]
end
%% 外部服务
subgraph "外部集成"
YAPI[📡 YAPI接口
接口同步]
Swagger[📄 Swagger/Postman
接口导入]
Notification[📢 通知服务
飞书/钉钉/企业微信]
Email[📧 邮件服务
SMTP]
Loki[📊 Grafana Loki
日志聚合]
end
%% 连接关系
User --> Browser
User --> CI
Browser --> Web
Browser --> Admin
CI --> Django
Web --> WebNginx
Admin --> AdminNginx
WebNginx --> Django
AdminNginx --> Django
Django --> FastRunner
Django --> FastUser
Django --> MockServer
Django --> System
Django --> Database
Django --> CeleryBeat
CeleryBeat --> RabbitMQ
RabbitMQ --> CeleryWorker
CeleryWorker --> HttpRunner
HttpRunner --> Database
HttpRunner --> Files
Django --> YAPI
Django --> Swagger
CeleryWorker --> Notification
CeleryWorker --> Email
Django --> Loki
%% 样式
classDef frontend fill:#e1f5fe,stroke:#0277bd,stroke-width:2px
classDef backend fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef database fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
classDef queue fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef external fill:#fce4ec,stroke:#c2185b,stroke-width:2px
class Web,Admin,WebNginx,AdminNginx frontend
class Django,FastRunner,FastUser,MockServer,System,CeleryBeat,CeleryWorker,HttpRunner backend
class Database,Files database
class RabbitMQ queue
class YAPI,Swagger,Notification,Email,Loki external
```
## 🏗️ 架构说明
### 分层架构设计
- **用户层**: 支持Web界面操作和CI/CD集成
- **前端层**: Vue.js单页应用 + Django Admin管理界面
- **负载均衡层**: Nginx反向代理,处理静态资源和API请求
- **应用服务层**: Django REST框架,模块化设计
- **任务调度层**: Celery分布式任务队列,支持定时和异步任务
- **数据存储层**: MariaDB关系数据库 + 本地文件存储(日志、报告、静态资源)
### 核心特性
- **微服务化设计**: 模块间松耦合,便于扩展维护
- **异步任务处理**: 大型测试任务异步执行,避免阻塞
- **定时调度**: 支持cron表达式的定时任务
- **容器化部署**: Docker Compose一键部署
- **横向扩展**: 支持多Worker节点扩展
# ⚠️ 注意
> python版本需要>=3.9
>
> 3.9, 3.10和3.11都经过测试
# 📚 文档
- 使用文档 https://www.yuque.com/lihuacai/fasterunner
# 🚀 Quick Start
## 拉取代码和启动服务
```shell
# 拉取代码
git clone git@github.com:lihuacai168/AnotherFasterRunner.git AnotherFasterRunner
# 如果你的机器连接不上Github,可以用国内的Gitee
# git clone git@gitee.com:lihuacai/AnotherFasterRunner.git AnotherFasterRunner
# 使用makefile命令快速启动所有服务,没错,一个命令就搞定
cd AnotherFasterRunner && make
# 或者使用docker-compose原始的命令, 指定配置文件启动
cd AnotherFasterRunner && docker-compose -f docker-compose-for-fastup.yml --env-file .env.example up -d
```
## 访问服务
```shell
# 默认是80端口,如果80端口被占用,修改env文件中的WEB_PORT即可
浏览器打开:
http://你的ip/fastrunner/login
用户:test
密码:test2020
```
# 💻 Dev
- [Django原生部署](https://www.jianshu.com/p/e26ccc21ddf2)
# 🔧 uWSGI
- [uWSGI+Nginx+Supervisor+Python虚拟环境部署](https://www.jianshu.com/p/577a966b0998)
# ⭐ Star History

# 👥 贡献者
# 🙏 鸣谢
感谢 JetBrains 对开源项目的支持