项目简介
本项目基于Python和Django框架构建,整合了HttpRunner、djcelery等工具,提供一套完整的API测试管理解决方案,涵盖项目管理、模块管理、用例管理等功能,能帮助用户高效开展接口自动化测试。
项目的主要特性和功能
- 用户管理:支持用户登录和注册,支持Ajax和HTTP请求。
- 项目管理:可新增项目、展示项目列表及操作,支持批量上传标准化HttpRunner json和yaml用例脚本。
- 模块管理:为项目新增模块,用例和配置归属模块,支持同步和异步方式。
- 用例管理:含添加config与test子功能,config可定义全部变量和request等信息。
- 场景管理:动态加载可引用用例,支持跨项目、跨模块,依赖用例列表支持拖拽排序和删除。
- 运行方式:支持单个test、module、project运行,也可批量运行,支持自定义测试计划,运行时可灵活选配置和环境。
- 分布执行:单个和批量执行结果前端展示,模块和项目执行支持同步或异步。
- 环境管理:可添加运行环境,运行用例时一键切换。
- 报告查看:异步执行用例可在线查看报告,可自主命名,默认时间戳保存。
- 定时任务:可设置定时任务,遵循crontab表达式,可在线开启、关闭,完毕后支持邮件通知。
- 持续集成:支持与jenkins对接(开发中)。
- 其他功能:文件上传、Debugtalk管理、测试套件管理、WebSocket支持等。
安装使用步骤
本地开发环境部署
- 安装mysql数据库服务端(推荐5.7+),设置为utf - 8编码,创建HttpRunner数据库,设置用户名、密码,启动mysql。
- 修改
HttpRunnerManager/HttpRunnerManager/settings.py
里DATABASES字典和邮件发送账号相关配置。 - 安装rabbitmq消息中间件,启动服务,访问:
http://host:15672/#/
(host为部署rabbitmq的服务器ip地址),用用户名guest
、密码guest
登录。 - 修改
HttpRunnerManager/HttpRunnerManager/settings.py
里worker相关配置。 - 命令行执行
pip install -r requirements.txt
安装依赖库文件。 - 命令行切换到HttpRunnerManager目录,生成数据库迁移脚本并生成表结构:
bash python manage.py makemigrations ApiManager python manage.py migrate
- (可选)创建超级用户:
bash python manage.py createsuperuser
- 启动服务:
bash python manage.py runserver 0.0.0.0:8000
- (可选)启动worker(同步执行且不用定时任务可忽略):
bash python manage.py celery -A HttpRunnerManager worker --loglevel=info python manage.py celery beat --loglevel=info celery flower
- 访问:
http://localhost:5555/dashboard
查看任务列表和状态。 - 浏览器输入:
http://127.0.0.1:8000/api/register/
注册用户,开始使用平台。 - 浏览器输入
http://127.0.0.1:8000/admin/
,用步骤7设置的用户名、密码登录后台运维管理系统进行数据管理。
新手入门
- 注册新用户,注册成功跳转登录页面,登录后访问页面。
- 登陆默认跳转首页,左侧有菜单栏,上排有快捷操作按钮。
- 添加项目,用例按项目维度管理。
- 对项目二次编辑、筛选,项目列表可单个或批量运行。
- 为项目新增模块,用例和配置归属模块。
- 新增用例,遵循HtttpRuunner脚本规范,可跨项目、跨模块引用。
- 新增配置,定义全局变量、全局hook、公共请求参数和公共headers。
- 添加项目级别和模块集合定时任务,遵循crontab表达式。
- 在定时任务列表对任务开启、关闭、删除。
- 用例列表可单个或批量同步运行用例。
- 项目和模块列表可单个或批量运行,支持同步、异步,异步支持自定义报告名称。
- 异步运行用例和定时任务报告可在线查看。
生产环境部署
生产环境uwsgi + nginx部署参考:https://www.jianshu.com/p/d6f9138fab7b
注意:上述步骤基于源代码简要说明,实际操作需根据具体环境和配置调整。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】