基于 HttpRunner + Django + Vue + Element UI 的接口自动化测试平台 生产可用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
tahitimoon
V2EX    Python

基于 HttpRunner + Django + Vue + Element UI 的接口自动化测试平台 生产可用

  •  
  •   tahitimoon 2024-03-26 16:46:10 +08:00 1539 次点击
    这是一个创建于 595 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址

    https://github.com/tahitimoon/LunarLink

    帮助文档

    帮助文档: https://lunarlink-doc.vercel.app

    平台简介

    基于 HttpRunner + Django + Vue + Element UI 的接口自动化测试平台,生产可用。

    此外,非常感谢 花菜。没有 AnotherFasterRunner 就不会有 LunarLink :)

    技术栈

    • Django
    • Django Rest framework
    • Vue.js
    • Element UI
    • django-celery-beat (定时任务)
    • Nginx (反向代理,https 配置等)
    • HttpRunner (测试用例执行引擎)
    • RabbitMQ
    • Redis
    • MySQL
    • Docker

    功能模块

    • 登录:账号认证、用户管理、权限管理
    • 项目管理:新增项目、列表展示及相关操作,支持项目看板,显示项目每日、每周、每月不同维度数据
    • 项目概览:项目基本信息,API 、测试用例、任务执行总览,每日明细
    • API 模板:一个 API 对应后端一个 HTTP 接口,API 可以单独运行,也可以作为一个用例步骤,支持 API 分组、参数提取、数据断言、变量引用、前后置钩子函数、接口调试、日志显示
    • 接口导入:支持同步 YApi (以 YApi 做媒介间接支持 Swagger 、Postman 、Har ),无需手动录入接口
    • 测试用例:支持分组管理,由一个或多个 API 组成,支持关联接口的动态参数传递,不区分场景用例和单接口用例,支持同步、异步批量执行,生成测试报告
    • 配置管理:自定义不同配置的请求 base_url 地址,公共请求头参数、局部变量、前后置钩子函数、参数化内容,API 和用例可以选择不同配置执行
    • 全局变量:定义变量供 API 使用,变量值也可以引用驱动代码中的函数,通用账号、秘钥可以定义在此处
    • 驱动代码:支持 Python 脚本,定义前后置钩子函数、辅助函数可以轻松实现请求参数签名,加密和解密响应等功能
    • 定时任务:可设置定时任务,遵循 crontab 表达式,可在线开启、关闭,用例执行支持串行、并行,完成后测试报告推送企业微信
    • 历史报告:保存定时、调试、异步等不同类型的测试报告,可在线查看、筛选、删除,还可查看他人测试报告

    在线体验

    生产地址:http://47.119.28.171:8081

    • 体验账号:test
    • 密码:test2023

    准备工作

    Python >= 3.9.5 (推荐 3.9.x 版本) nodejs >= 16.0 (推荐最新) Mysql >= 5.7.0 (推荐 5.7.x 版本) RabbitMQ >= 3.x-management(默认需要,推荐最新版) Redis >= 6.2.6 

    前端

    建议使用 yarn ,项目提供了yarn.lock,使用其他包管理器,容易出现版本依赖问题。

    # 克隆项目 git clone https://github.com/tahitimoon/LunarLink.git # 进入项目目录 cd LunarLink/frontend # 安装依赖 yarn install --registry=https://registry.npmmirror.com # 启动服务 yarn start # 浏览器访问 http://127.0.0.1:8888 # config/index.js 文件可配置启动端口等参数 # config/dev.env.js 文件可配置后端接口地址 # config/prod.env.js 文件保持不变 # 构建生产环境 # yarn build 

    后端

    # 克隆项目 git https://github.com/tahitimoon/LunarLink.git # 进入项目目录 cd LunarLink/backend # 将.env.example 文件重命名为.env 并配置相关参数 mv .env.example .env # 安装依赖环境 pip3 install -r requirements.txt # 执行迁移命令: python3 manage.py makemigrations python3 manage.py migrate # 创建管理员用户 python3 manage.py createsuperuser # 启动项目 python3 manage.py runserver 

    访问项目

    # 登录管理后台,设置账号姓名 http://127.0.0.1:8000/admin/ # 浏览器打开 http://127.0.0.1:8888 用户/密码:管理员用户/密码 # 接口文档地址 http://127.0.0.1:8000/swagger/ 

    开启定时/异步任务

    # 启动 celery ,在控制台执行 celery -A backend worker -B --loglevel=info 
    DingJZ
        1
    DingJZ  
       2024-03-26 18:40:03 +08:00
    支持
    jwen
        2
    jwen  
       2024-03-26 19:30:49 +08:00
    今天刚在 testerhome 上看到
    chinesehuazhou
        3
    chinesehuazhou  
       2024-03-28 08:45:39 +08:00 via Android
    给你分享到下期 Python 潮流周刊。ps.欢迎投稿
    tahitimoon
        4
    tahitimoon  
    OP
       2024-03-29 10:51:48 +08:00
    @chinesehuazhou 好的 感谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4211 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 00:59 PVG 08:59 LAX 16:59 JFK 19:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86