从零开始搭建一个简单的ui自动化测试框架01(pytest+selenium+allure)

简介: 一、 思想先行在我们讨论如何用技术手段实现之前,不妨先思考一下,或者说,如同普通的项目开发一样,首先是产品经理给出规划,再由技术实现。既然是个人的项目,那当然是我们自己来做这个产品经理了,那么首先,我们的产品需要哪些点呢?ui自动化,是测试层级的最上层,本质上是在容器里模拟用户的操作,来达到自动回归业务逻辑的目的。

一、 思想先行

在我们讨论如何用技术手段实现之前,不妨先思考一下,或者说,如同普通的项目开发一样,首先是产品经理给出规划,再由技术实现。
既然是个人的项目,那当然是我们自己来做这个产品经理了,那么首先,我们的产品需要哪些点呢?
ui自动化,是测试层级的最上层,本质上是在容器里模拟用户的操作,来达到自动回归业务逻辑的目的。这样的话,就很容易想到了,如果我们想要实现这个目的,首先,

  1. 我们的产品要能够根据用例规定的操作回放模拟操作;
  2. 用例应该是既能够单独执行,也可以按指定顺序集合执行;
  3. 如果希望达到无人值守的目的,那么邮件通知和CI必不可少;
  4. 我们肯定希望用例维护起来简洁便利。

其他可能没想到的做的过程里添加,但是以上四点基本就可以满足我们对简单的ui自动化测试的需求了,接下来我们就可以考虑如何去实现这个产品。

首先是技术的选型,在大脑由混沌状态逐渐清晰了我们的产品需求之后,我们就可以对市面上的技术进行选择,选择一个最合适我们的方向。

一般而言,肯定第一优先本公司的主流语言,另一方面,经过调查,目前来说已经可以确定只能用selenium来实现我们的“模拟回放”的需求,这是因为他是开源而免费的,其他的工具例如QTP尽管更加易用且有专门的公司维护,但是,他太贵了(并不考虑盗版&破解)。

selenium可以理解为一个工具集,包括IDE、Grid、RC(selenium 1.0)、WebDriver等,经常有人问selenium和webdriver是什么关系?这里稍微解释一下,可以视为selenium打包了webdriver,而webdriver本身是一套操作浏览器的api协议规范。实际用的话,可以不纠结于概念。

selenium本身支持多种语言,由于本家公司主流技术是php,不被支持,权衡之下选择了py作为开发语言,理由是py更加易于上手,现成的库很多很方便。

到这里,其实我们的第一需求,还记得吗?(我们的产品要能够根据用例规定的操作回放模拟操作;)已经确认了技术类型,我们接着看下面的需求。

第二个需求,实际上就是用例管理,一般而言各个语言都有自己的测试框架用于处理这些,python当然也不例外,py上的测试框架有unittest,pytest,nose等等,由于我们的需求各个框架基本都能满足,所以直接选择了py内置的测试框架unittest使用,如果想了解各大框架之间对比的话,可以点击这里查看。

ok,很顺利,到这里第二个需求也解决了技术选择,那么看看第三个需求,也就是无人值守。这里因为我们公司的ci工具是jenkins,所以就直接选定了用jenkins作为技术手段。

那么只剩下最后一个需求,实际上是一个很重要的优化点,如何让用例维护简单?这里其实是一个很弹性的选择,我的选择是只通过框架设计来达到,更好的选择是把用例的描述规范化甚至脱离代码层面,例如使用yaml来描述用例。

至此,我们的技术选型已经全部完毕,接下来是开始设计我们的测试框架。

目录
相关文章
|
2月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
308 113
|
3月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
3月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
369 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
5月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
672 0
|
3月前
|
自然语言处理 前端开发 测试技术
使用 Playwright MCP 实现 UI 自动化测试
本文介绍如何结合Playwright与MCP协议实现智能化UI自动化测试。通过自然语言指令控制浏览器,降低技术门槛,提升效率,并涵盖环境搭建、核心功能、实战案例及最佳实践,展现对话式自动化的未来趋势。
|
5月前
|
人工智能 前端开发 测试技术
如何让AI帮你做前端自动化测试?我们这样落地了
本文介绍了一个基于AI的UI自动化测试框架在专有云质量保障中的工程化实践。
2078 21
如何让AI帮你做前端自动化测试?我们这样落地了
|
5月前
|
Web App开发 开发框架 .NET
Playwright 自动化测试系列(6)| 第三阶段:测试框架集成​指南:参数化测试 + 多浏览器并行执行
Pytest 与 Playwright 集成可提升自动化测试效率,支持参数化测试、多浏览器并行执行及统一报告生成。通过数据驱动、Fixture 管理和并行优化,显著增强测试覆盖率与执行速度,适用于复杂 Web 应用测试场景。
|
4月前
|
人工智能 IDE 测试技术
Browser-Use在UI自动化测试中的应用
Browser-Use是一款浏览器自动化工具,具备视觉与HTML解析、多标签管理、操作记录与复现、自定义操作、自我纠正及并行执行等功能,助力AI智能体高效完成网页任务。
333 0
|
5月前
|
测试技术 API C++
Playwright 自动化测试系列(7)| 第三阶段:测试框架集成​​Page Object 模式
本课程详解Playwright测试框架中的Page Object模式,通过电商登录-下单实战演示PO架构设计与高级技巧,结合Pytest实现多用户测试。重点解析PO模式提升代码复用性、降低维护成本的核心价值,并提供常见问题解决方案,助力构建高可维护性的自动化测试体系。

热门文章

最新文章