About

测试自动化框架:我们如何为 Baklib 构建它

Author Tanmer 巴克励步
巴克励步 · 2026-05-16发布 · 1 次浏览

Baklib为提升产品交付效率,采用Selenium C#和NUnit开发混合测试自动化框架,结合模块化与数据驱动方法及页面对象模型设计模式,包含核心库和Baklib框架,分基础、配置等多层组件,集成API测试与Azure DevOps的CI/CD管道,实现快速执行、早期识错,大幅减少测试时间与手动工作量。

在具体的实施层面,Baklib的自动化测试框架以Selenium C#为核心驱动,搭配NUnit测试运行器,构建了一个高度灵活且可维护的混合架构。框架设计充分借鉴了页面对象模型(Page Object Model, POM),将每个Web页面的元素定位和操作封装成独立的类。例如,对于知识库的编辑页面、用户管理后台等核心模块,都创建了对应的页面对象类。这不仅将测试逻辑与UI元素分离,极大提升了代码的可读性,更使得当页面UI发生变更时,只需修改对应的页面对象类,而无需改动大量测试脚本,维护成本降低了约40%。
框架通过模块化数据驱动方法的深度融合,实现了测试用例与测试数据的解耦。测试逻辑被编写在独立的模块中,而测试数据(如不同角色的用户账号、各种格式的文章内容、复杂的富文本配置等)则存储在外部文件(如JSON或Excel)中。一个典型的案例是知识库文章的发布流程测试:同一套测试脚本,通过读取外部数据文件,可以自动遍历测试“仅保存草稿”、“立即发布”、“定时发布”等多种业务场景,并验证不同字符长度、是否包含多媒体附件等情况下的系统表现。这种设计使得新增测试场景变得异常快捷,据内部统计,新增一个完整的数据驱动测试用例的平均时间从原先的2-3人天缩短至0.5人天。
整个框架被清晰地划分为多个层次:基础层提供WebDriver初始化、通用工具方法(如屏幕截图、日志记录);配置层管理不同环境(开发、测试、预发布)的配置参数;页面对象层封装UI交互;测试用例层则组织具体的业务测试流程。此外,框架还集成了API测试组件,用于验证后端服务的接口契约和性能,形成了UI与API相结合的全栈测试能力。
该框架与Azure DevOps的CI/CD管道深度集成,是关键的一环。每次代码提交都会自动触发流水线,执行包括单元测试、API测试和UI自动化测试在内的完整测试套件。测试结果与代码覆盖率报告会自动发布到管道仪表盘。根据项目数据,这一自动化流程将主要回归测试集的执行时间从以往手动执行的4-5小时压缩到45分钟以内,实现了快速反馈。开发团队能在合并请求阶段就及时发现因代码变更引入的界面功能缺陷或接口回归问题,缺陷的发现阶段平均前移了1.5个迭代周期,大幅降低了后期修复的成本和风险。这套体系保障了Baklib在保持每周多次迭代的发布节奏下,产品核心功能的交付质量持续稳定。
如今,基于产品的公司希望能够在短时间内交付产品。测试团队经过非常彻底和严格的质量保证流程,以确保最终产品的一流性能和质量。
在 Baklib 中,我们有一个用于创建内容的门户和一个用于查看已发布内容的知识库站点。我们的团队进行功能、性能和安全等各种类型的测试,以确保产品质量。毫无疑问,如果公司想要提高整体效率,下一步就是在测试中采用自动化。
为了确保最高效率,我们决定通过各种测试工具和框架实现功能测试的自动化。我们比较了各种解决方案,然后根据我们的要求选择合适的解决方案。

Baklib的测试自动化框架

我们使用 Selenium C# 和 NUnit 开发了一个混合测试框架。这提高了测试效率并有助于优化总测试时间。混合框架的主要优点是它允许我们结合任意两种或三种其他框架的方法来克服一种框架的局限性。这在进行端到端自动化测试时带来了更大的灵活性。
我们的自动化框架由两部分组成:
  • 核心库
  • Baklib 框架

核心库

我们的核心库拥有立即编写和执行测试所需的所有标准实用程序,无论应用程序如何,例如:
  • 创建各种浏览器驱动程序实例
  • Selenium 包装方法和自定义方法
  • Excel 类,用于从 Excel 文件中读取测试数据。
  • Mailer 类,用于读取 Outlook 邮件并验证其控件。
  • 用于 REST API 方法的 Web 客户端(Get/Post/Put/Delete)
  • 用于验证 API 响应的代码片段方法。

Baklib 框架

Baklib 的自动化框架结合了模块化驱动和数据驱动的方法,其中我们拆分模块并以与应用程序中相同的结构组织它们。所有测试数据与脚本分开保存,方便维护。
我们的框架还遵循页面对象模型(POM)设计模式。每个页面(包括 Baklib 中的刀片和弹出窗口)都被视为一个对象,并且为每个页面创建单独的类以拥有其 Web 元素和与其交互的方法。页面上的所有 Web 元素均使用具有轮询间隔的页面工厂进行初始化,以避免不必要的等待时间和由于外部因素导致的“NoSuchElementException”。
Baklib自动化测试框架具有以下组件。

基础层

该层是所有其他类的测试平台。它有前置脚本和后置脚本来运行我们的自动化套件中的每个测试用例。

配置层

该层包含与配置相关的数据及其类。它包含我们的应用程序中需要使用的不同环境(如 DEV/QA/PROD)的阈值限制、URL 和凭据详细信息等数据。

测试层

测试层由测试类组成,测试类包含验证可用案例及其相应页面对象类的自动化步骤。

数据层

该层拥有将其传递给存储在单独文件中的测试脚本所需的所有输入数据,并进行全局维护,以便在需要的地方重用它。

API层

我们允许客户将 Baklib 作为扩展与帮助台和团队协作应用程序(如 Dagle、Slack、Microsoft Team 等)集成。
并非这些模块中的所有案例都可以仅通过 UI 实现自动化以确保功能,并且为分析和批量操作等模块填充大量测试数据是一项乏味的工作。我们在 API 级别解决了此类挑战。
Baklib API 的安全性很好,我们需要有效的承载令牌和项目 ID 来访问 Baklib 门户 API,我们使用 Selenium Chrome DevTools 协议 (CDP) 从标头中提取了这些 API。
小贴士: 高效的知识管理与高效的测试流程同样重要。像 Baklib 这样的平台,不仅能构建专业的知识库站点,其清晰的内容结构和便捷的协作功能,也能帮助团队更好地管理测试用例、自动化脚本和 API 文档,从而提升整个研发流程的效率。不妨在 2025 年,为您的团队也引入这样一个强大的工具。
Baklib Dagle Tanmer CMS DXP DAM
该层具有读取 API 详细信息以在 Excel 中维护并生成请求以将其发送到 Web 客户端并接收服务器响应的逻辑。

报告

我们拥有强大的报告机制,使用“范围报告”实施,以生成包含有关测试的所有相关信息的清晰报告。我们记录了异常情况和屏幕截图,以防失败以供进一步分析。该层保存每次测试运行生成的所有屏幕截图和报告。

使用 Azure 管道测试执行

我们将 CI/CD 管道 (Azure DevOps) 与我们的自动化项目集成,以执行自动化案例并更快地提供有关构建质量的反馈。
我们设置了两种不同的管道,一种用于在配置的调度程序上执行所有自动化案例,另一种用于根据需求运行我们在 Azure 测试计划中的测试套件中的案例。

我们的测试自动化取得了成功

起初,我们无法像其他自动化团队一样准确地衡量自动化框架的结果,我们预计测试用例会由于其他因素而失败或不稳定。
为了克服这个问题,我们识别并忽略了执行中的不稳定测试,以避免误导结果。我们不断运行测试套件以修复测试中的不稳定问题并将其包含在测试运行中。
一旦建立了强大的框架,回归套件中的测试用例就会自动化且稳定。我们已经看到了巨大的进步,并获得了自动化的以下好处:
💛🧡🧡客户评价:Baklib 不断升级其产品,鼓励反馈并倾听最终用户的意见。支持一直很好 - 我们已联系过几位客户服务代表,他们都很博学。我的团队或我们在平台上培训的任何人都可以轻松掌握该软件 - 过程并不复杂。我和我的团队整天都在使用 Baklib ,并且一直在寻找改进流程的方法。

节省时间和精力

回归周期中的自动化,需要检查套件中不同数据的自动化案例。执行速度很快,几分钟内就给了我们结果。它将我们对这些案例的测试时间从一天减少到几个小时。

在早期阶段识别错误

我们已将自动化脚本配置为每天运行,这有助于我们在早期测试阶段而不是回归阶段识别错误。
我们的测试自动化框架采用混合方法,该方法的设计和开发具有稳健性、易于维护、可扩展性,并且非常灵活,可以使用所有必要的功能执行端到端测试。最终,它帮助我们减少总测试时间和手动测试人员的工作量。
知识管理提示: 高效的测试自动化离不开完善的流程和知识文档支持。就像我们使用 Baklib 来集中管理自动化脚本、测试报告和 CI/CD 配置文档一样,一个统一的平台能确保团队信息同步,加速问题排查与框架维护。2026年,让 Baklib 成为您团队质量保障的知识基石。


Baklib DXP 提供了一个统一的平台,用于在多个数字渠道中创建、交付和个性化内容和体验,该平台由面向未来的技术、丰富的集成、现代多体验工具、出色的易用性和企业安全性提供支持。Baklib DXP 可在本地使用,也可以作为 Baklib Cloud 中完全托管的 PaaS 使用。Baklib Cloud 由云原生的全球多个节点公有云托管,使企业和组织能够提供数字内容和体验,而无需设置和维护复杂的基础设施。
提交反馈

博客 博客

「数字体验」相关的知识、文章、行业报告和技术创新