ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Steeltoe Samples 测试体系解析:behave BDD 自动化测试框架完整指南

Steeltoe Samples 测试体系解析:behave BDD 自动化测试框架完整指南 Steeltoe Samples 测试体系解析behave BDD 自动化测试框架完整指南【免费下载链接】SamplesSteeltoe samples and reference application collection项目地址: https://gitcode.com/gh_mirrors/samples40/SamplesSteeltoe Samples 是 Steeltoe 官方维护的 .NET 微服务示例与参考应用集合覆盖配置中心、数据库连接器、服务发现、安全管理、监控管理等核心场景。而支撑这套庞大示例库可靠运转的正是一套基于behave BDD 自动化测试框架构建的端到端测试体系。本文将以新手视角为你完整解析这套测试体系的设计思路、目录结构与使用方法让你从零开始掌握如何运行和编写behave BDD 测试。为什么 Steeltoe Samples 需要一套 BDD 测试体系Steeltoe Samples 包含了 Configuration、Connectors、Discovery、FileShares、Management、Security 等多个功能模块每个模块下又有大量示例项目。如果每个示例都靠人工验证工作量巨大且容易遗漏。这套behave BDD 自动化测试框架的价值在于可读性强用接近自然语言的 Gherkin 语法描述测试场景业务人员也能看懂复用性高一套步骤定义step definitions可以被所有示例共享自动化程度高从创建 Cloud Foundry 空间、推送应用到验证页面内容全程无人值守平台覆盖广同一套场景同时支持 Linux、Windows、macOS 三种平台测试体系的整体架构一览整套测试体系由四层组成每一层各司其职层级职责核心文件配置层定义 behave 行为和用户选项behave.ini、user.ini.example、logging.ini启动层创建虚拟环境并调用 behavebehave.sh、behave.ps1、Pipfile驱动层生命周期钩子与步骤定义environment.py、steps/目录核心库Cloud Foundry 与命令封装pysteel/目录而在每个示例项目内部都自带testing/目录包含按平台划分的场景文件和专属脚手架例如linux.feature、windows.feature、scaffold/cloudfoundry.py。快速上手behave BDD 测试框架安装步骤对于新手来说最关心的往往是如何把测试跑起来。项目提供了两个包装脚本behave.shLinux/macOS和behave.ps1Windows它们会自动完成以下三步检查并安装pipenv包管理工具基于Pipfile创建 Python 虚拟环境并安装依赖在虚拟环境中执行behave命令首次运行前请先确保安装了 Python 3 和 pip。然后复制示例配置copy user.ini.example user.ini配置文件准备好后在项目根目录直接运行包装脚本即可./behave.sh这一条命令会运行仓库中所有示例的全部测试场景。如果只想跑某个示例只需传入示例路径./behave.sh Connectors/src/MongoDb最快配置方法用 user.ini 定制 behave 测试环境behave.ini是 behave 的默认配置通常无需修改它已经定义了输出目录、清理策略、重试次数等基础行为。真正需要关注的是user.ini——这是留给每个开发者个性化定制的入口。常用的配置项包括配置项作用output测试报告输出目录cleanup场景结束后是否清理测试产物windowed是否在独立窗口运行后台进程方便观察进度cmd_max_attempts本地进程就绪检查的最大重试次数cf_max_attemptsCloud Foundry 资源就绪检查的最大重试次数debug_on_error出错时是否进入调试器如果你已经登录了 Cloud Foundry 环境可以跳过凭据配置否则需要在user.ini中填写cf_apiurl、cf_username、cf_password、cf_org四项信息。测试会自动使用development空间作为起点并为每个示例创建独立的专用空间。Gherkin 语言如何用自然语言编写测试场景这套behave BDD 测试框架使用 Gherkin 语法编写场景文件.feature。以 MongoDB 示例的场景文件为例整个测试用五句话就描述清楚了cloudfoundry_scaffold Feature: Connectors net10.0 linux Scenario: MongoDb (net10.0/linux) When you push: manifest.yml And you wait until CloudFoundry app mongodb-connector-sample is started When you get https://mongodb-connector-sample/ Then you should see Object1 And you should see Object2这段文字描述了完整的测试流程推送应用清单 → 等待应用启动 → 访问应用首页 → 验证页面包含预期内容。即使是完全不懂代码的人也能读懂测试在做什么。步骤定义场景语句背后的执行引擎场景里的每一句话都需要有对应的步骤定义step definition来真正执行。项目将步骤定义按职责拆分在steps/目录中process_steps.py执行命令、推送应用、等待进程监听端口、等待应用启动等browser_steps.py发起 HTTP 请求、验证页面文本、检查健康端点等tool_steps.py工具相关的公共步骤例如场景中的you push: manifest.yml会调用CloudFoundry.push_app它内部会解析 manifest 获取应用名、执行cf push、等待应用进入 running 状态甚至会在应用崩溃时自动拉取日志辅助排查。pysteel 核心库测试体系的基础设施pysteel/目录是整个测试体系的核心库相当于一套可复用的 Python 工具集cloudfoundry.py封装 Cloud Foundry 操作如登录、创建/删除空间、创建服务实例、推送应用、查询应用状态、拉取日志command.py封装进程执行支持超时控制、输出捕获、后台进程管理与优雅终止dns.py处理应用域名解析与 URL 构造fs.py文件系统工具scaffold/通用脚手架负责场景开始前的环境准备与结束后的清理正是有了这层封装各个示例的测试脚本才能保持精简只需关注业务场景本身。生命周期钩子environment.py 如何串联整个流程environment.py是 behave 的钩子入口它定义了测试各个阶段的动作before_all初始化工具、加载配置、准备输出目录、识别当前平台before_feature定位示例项目目录before_scenario创建沙箱目录、设置环境变量、按标签加载脚手架after_scenario执行清理、统计失败场景数after_all汇总输出失败统计其中值得关注的是脚手架机制场景标签中以_scaffold结尾的标签如cloudfoundry_scaffold会触发对应的脚手架模块。脚手架分两层通用层在pysteel/scaffold/示例专属层在各项目的testing/scaffold/下。例如 MongoDB 示例的脚手架会先删除旧应用、创建csb-azure-mongodb服务实例测试结束后再统一清理。标签机制灵活筛选 behave 测试场景behave 支持用标签tags对场景进行分类和筛选这是控制测试范围最强大的工具。Steeltoe Samples 的每个场景都带有多组标签标签含义net10.0目标 .NET 运行时版本linux/windows适用的操作系统cloudfoundry_scaffold需要 Cloud Foundry 脚手架支持运行测试时可以通过--tags参数精确筛选./behave.sh Connectors/src/MongoDb -t net10.0 -t linux这条命令只运行 MongoDB 示例中针对 .NET 10.0 和 Linux 平台的组合非常适合在 CI 流水线中按矩阵并行执行。常用操作技巧与排查方法查看 behave 帮助信息./behave.sh -h强制重建测试环境如果依赖或虚拟环境出了问题在项目根目录创建一个名为reinit的空文件再重新运行包装脚本它会强制重建 pipenv 环境并重新安装依赖。观察测试进度在user.ini中设置windowed yes后台进程会在独立窗口中运行方便实时观察测试进展。所有命令输出都会记录到沙箱目录下的.out/.err文件中应用崩溃时也能从cf logs --recent拉取完整日志定位问题。生成测试报告behave.ini中开启了junityes每次运行后都会在输出目录的reports/子目录生成 JUnit 格式的报告可直接接入 Jenkins、GitLab CI 等主流 CI/CD 平台。总结这套测试体系能带给你什么Steeltoe Samples 的behave BDD 测试框架是一套设计精良的端到端测试方案它将 Gherkin 场景语言、Python 步骤定义、Cloud Foundry 云原生操作和标签化矩阵执行有机结合。无论你是想学习如何为 .NET 微服务编写自动化测试还是想理解云原生场景下的测试基础设施设计这套体系都值得深入研究。想要亲自体验完整的测试流程只需克隆仓库https://gitcode.com/gh_mirrors/samples40/Samples按照本文的步骤安装 Python 3、配置user.ini然后运行./behave.sh即可。从运行第一个场景开始你就能直观感受到 BDD 自动化测试带来的效率提升。【免费下载链接】SamplesSteeltoe samples and reference application collection项目地址: https://gitcode.com/gh_mirrors/samples40/Samples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表