首页/新闻资讯/正文详情

开源 | ParaBank Lite 自动化测试平台:自建被测系统 + 56 条 pytest/Selenium 用例

发布时间:2026/9/27 8:02:40 来源:云帆数科 栏目:资讯中心
开源 | ParaBank Lite 自动化测试平台:自建被测系统 + 56 条 pytest/Selenium 用例
写过测试项目的人大概都遇到过这种尴尬项目是拼起来的——被测系统用别人的开源 Demo用例零散地写在一个文件里跑完结果在控制台一闪而过设计文档和代码各说各话。面试时想讲清我怎么设计用例、怎么保证前后一致、失败怎么归因很难拿出完整的证据链。所以我把测试工程需要的三块拼图放进了同一个仓库并且让它们强一致角色是什么在哪被测系统ParaBank Lite —— 登录 / 注册 / 转账的简易银行系统parabank_lite.py、templates/parabank/自动化用例56 条 pytest Selenium 用例按登录 15 / 注册 22 / 转账 19 分三个套件pytest_suites/测试平台展示套件与用例、触发执行、看执行记录、失败归因、手工验证台app.py、static/单一事实来源业务规则、等价类划分、用例表、预置数据testcase_spec.py项目用 Flask SQLite 自建被测系统用 pytest Selenium 写自动化用例再配一个可视化的测试管理平台。开箱可跑MIT 协议。图 1 仓库首页三块拼图与改一处即可全局同步的设计一、核心设计用例表是唯一的事实来源这是整个项目里我最想讲的一点。很多测试项目的文档和代码是两份互相抄的东西改了一边忘了另一边时间一长就对不上。这个项目的做法是让 testcase_spec.py 成为唯一的来源——业务规则、等价类划分、56 条用例的数据与预期结果、预置演示数据全部写在这一个文件里。被测系统的校验逻辑、平台库里的用例目录、pytest 套件、以及 docs/ 下的用例文档统统由它派生。用例表一变check_consistency.py会把不一致的地方全部指出来22 项校验横跨五个层面用例表自洽等价类覆盖、优先级分布、用例编号唯一性被测系统的校验层是否真的覆盖了每条规则平台库里的用例目录是否与用例表同步pytest 实际收集到的用例是否对得上docs/ 下的设计文档是否与用例表一致。外加一条最硬的平台实际执行出来的失败集合必须正好等于缺陷清单。图 2 单一事实来源与三层结构一份用例表派生被测系统校验、平台目录、pytest 套件与文档二、一次执行的完整链路在平台上点一下执行整套件背后会发生这些事平台起一个 pytest 子进程pytest 用 Selenium 驱动无头 Edge打开被测系统逐条跑断言pytest-json-report产出 JSON 报告平台解析报告把结果写进test_results表前端轮询实时回填通过率、状态分布、失败归因和近 7 天趋势。失败原因会被归类成ASSERT_/TIMEOUT_/NOELEMENT_/NETWORK_/DRIVER_五类并带上堆栈与耗时不用再翻日志找原因。图 3 一次执行从触发、执行、入库到可视化的完整链路三、平台长什么样平台前端是 Vue Element Plus ECharts主要有这么几块仪表盘用例总数、通过率、状态分布、近 7 天趋势测试套件 / 用例列表56 条用例用例编号即 pytest 的参数化 ID执行记录 / 结果明细汇总看板加每条用例的状态、失败原因、堆栈与耗时手工验证台自己填参数跑一次真实操作只记录系统实际返回不做文档断言——适合探索式验证。图 4 平台概览用例数、通过率、状态分布与近 7 天趋势下方是 56 条用例列表四、被测系统ParaBank Lite被测系统是自己写的简易银行系统只做登录、注册、转账外加账户概览与流水页面该有的提示文案一条不少目的就是让用例有真实的断言对象。预置数据由用例表派生的种子脚本自动重建每次跑用例前还会自动复位——比如主账号 alice01 / Pass123 同时持有 A / B / C 三个账户初始余额分别是 100000.00 / 0.00 / 100.00转账用例就在这组数据上做加减。图 5 被测系统 ParaBank Lite 登录页五、56 条用例是怎么来的用例表严格按业务规则文档和《等价类划分与测试用例.xlsx》落地先划等价类、再定边界、最后落成用例每条都标了优先级模块规则数等价类数用例数P0P1P2套件登录78153120login_suite注册69228140register_suite转账710197111transfer_suite合计20275618371—六、缺陷注入让失败归因有东西可看为了让平台的失败归因、失败明细、状态分布这些能力真的有东西可看被测系统里刻意注入了 3 处缺陷——每一处都注明违反了文档里的哪条规则、预期让哪几条用例失败缺陷违反的规则预期失败用例归因BUG-01 登录未区分账号不存在与密码错误2.1(5)(6)LOGIN_002、LOGIN_003ASSERT_BUG-02 金额上限边界写成≥ 50000 即超限2.3(2)TRAN_005ASSERT_BUG-03 漏做仅允许一个小数点校验2.3(4)TRAN_013ASSERT_预期结果56 条用例52 通过 / 4 失败失败集合必须正好等于上表——多红一条或少红一条check_consistency.py都会报错。把parabank_lite.py里的INJECT_DEFECTS改成False重启就能得到一个完全符合文档、56 条全绿的被测系统。七、快速开始环境要求Windows也兼容 Linux / macOS、Python 3.11、本机装有 Chrome 或 Edge。驱动不用自己装Selenium Manager 会自动匹配内网环境可用PB_DRIVER_PATH指定。# 方式 AWindows 一键启动首次自动建 venv 并装依赖 run_windows.bat # 方式 B手动 python -m venv .venv .venv\Scripts\python.exe -m pip install -r requirements.txt .venv\Scripts\python.exe app.py启动后有两个入口测试平台http://127.0.0.1:5000/被测系统http://127.0.0.1:5000/parabank/login本机无头 Edge 实测耗时登录套件约 15s、注册套件约 31s、转账套件约 39s全套 56 条约 85 秒。八、技术栈Python 3.11 · pytest 9.x · Selenium 4.x · Flask 3.x · SQLite · Vue Element Plus ECharts写在最后这个项目从 0 到 1 肝了一段时间代码完全开源MIT 协议。如果你也在准备软件测试 / 测试开发方向的面试或者想找一个开箱可跑的测试工程练手希望它能帮你把简历上那块完整测试闭环的拼图补上。觉得还行的话求一个 Star ⭐这是持续更新的最大动力。仓库地址GitHub - hjxandcxq/parabank-lite-test-platform: 自建被测系统 39 条 pytest/Selenium 用例 Flask 测试平台用例表单一事实来源22 项一致性校验 · GitHub有部署问题、或者想交流用例设计与一致性维护的做法欢迎评论区留言

相关推荐

ChatBI 大模型复杂多表 Join 拓扑推导实战:基于元数据图谱与 Steiner Tree 最小代价寻路
ChatBI 大模型复杂多表 Join 拓扑推导实战:基于元数据图谱与 Steiner Tree 最小代价寻路

ChatBI 大模型复杂多表 Join 拓扑推导实战:基于元数据图谱与 Steiner Tree 最小代价寻路在企业级对话式取数系统(ChatBI / Text2SQL)中,当业务用户的提问跨越多个业务域时,大模型面临的最严峻挑战,莫过于**… · 2026/9/27 8:02:34

边缘 AI 推理中的深度可分离卷积(Depthwise Separable Conv)通道重排与向量汇编优化
边缘 AI 推理中的深度可分离卷积(Depthwise Separable Conv)通道重排与向量汇编优化

边缘 AI 推理中的深度可分离卷积(Depthwise Separable Conv)通道重排与向量汇编优化在以 MobileNet(V1/V2/V3/V4)、ShuffleNet、Xception 以及各类轻量化端侧检测主干网络中,深度可分离卷积(Depthwise Sepa… · 2026/9/27 8:02:27

kube-prometheus 版本演进实战指南:从 release-0.9 到 release-0.19 的核心变更与迁移要点
kube-prometheus 版本演进实战指南:从 release-0.9 到 release-0.19 的核心变更与迁移要点

云原生可观测性指标监控监控大盘告警 【免费下载链接】kube-prometheus Use Prometheus to monitor Kubernetes and applications running on Kubernetes 项目地址: https://gitcode.com/gh_mirrors/ku/kube-prometheus 点击查看 免费下载 kube-prometheus 是一套通… · 2026/9/27 8:02:21

Substrate Collective Pallet 深度解析:理事会治理中的多成员投票、提案动议与 Prime 默认投票机制
Substrate Collective Pallet 深度解析:理事会治理中的多成员投票、提案动议与 Prime 默认投票机制

区块链开发框架后端 【免费下载链接】substrate Substrate: The platform for blockchain innovators 项目地址: https://gitcode.com/gh_mirrors/su/substrate 点击查看 免费下载 本文围绕 frame/collective/README.md 展开,系统讲解 Substrate 中 pal… · 2026/9/27 8:45:41

提供秦皇岛网站建设3招告别丑模板,免费工具救急
提供秦皇岛网站建设3招告别丑模板,免费工具救急

提供秦皇岛网站建设3招告别丑模板,免费工具救急 看着手里那份刚做好的官网,你是不是也跟我当时一样,心里直犯嘀咕?这模板网站太丑不够用,发出去客户第一眼就划走,根本留不住人。别急着删,也别急着换更贵的模板,咱们先停下来,用几个 免费工具… · 2026/9/27 8:45:41

Three.js 赛博空间高拟真流体雨滴与地面波纹:基于动态法线贴图与水面着色器
Three.js 赛博空间高拟真流体雨滴与地面波纹:基于动态法线贴图与水面着色器

Three.js 赛博空间高拟真流体雨滴与地面波纹:基于动态法线贴图与水面着色器在构建赛博朋克 3D 虚拟都市、雨夜暗黑展厅或未来全息交互界面时,倾盆大雨与积水地面上的动态雨滴涟漪(Rain Droplets & Ground Ripples) 是渲染电影… · 2026/9/27 8:45:35

ESP32-S3 接入 OneNET 物联网平台:MQTT + OLED + DHT11 温湿度上传与远程控制全攻略
ESP32-S3 接入 OneNET 物联网平台:MQTT + OLED + DHT11 温湿度上传与远程控制全攻略

若该文为原创文章,转载请注明原文出处。 本文基于 Arduino 框架,使用 ESP32-S3 通过 MQTT 协议连接 OneNET 物联网平台,实现 DHT11 温湿度采集、OLED 中文显示、定时上传数据,并接收云端下发指令。文中包含完整代码、库安装、流程… · 2026/9/27 8:45:35

研发团队代码重构管理:如何在高速业务奔跑中优雅还清技术债
研发团队代码重构管理:如何在高速业务奔跑中优雅还清技术债

研发团队代码重构管理:如何在高速业务奔跑中优雅还清技术债在高速增长期的技术创业团队中,技术债务(Technical Debt)与业务需求冲刺往往是一对极其激烈的生死矛盾: 失控的重构狂热(Refactoring Paralysis&a… · 2026/9/27 8:45:28

使用 Go 的 SO_REUSEPORT:让多个进程共享同一端口的高可用网络服务方案
使用 Go 的 SO_REUSEPORT:让多个进程共享同一端口的高可用网络服务方案

云原生微服务容器编排运维 【免费下载链接】flynn [UNMAINTAINED] A next generation open source platform as a service (PaaS) 项目地址: https://gitcode.com/gh_mirrors/fl/flynn 点击查看 免费下载 导读 本文围绕 flynn 仓库 vendor 目录中引入的 go_reusep… · 2026/9/27 8:45:28

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码