页面事务作为组织测试自动化的新方式
一分耕耘,一分收获!既然打开了这篇文章《页面事务作为组织测试自动化的新方式》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

照片提供:mateus campos felipe
猩红鹮(Guará)
猩红鹮,学名 Eudocimus ruber,属于鹮科鸟类,栖息于热带南美洲和加勒比海地区。其外形与其他27种鹮类相似,但鲜艳的猩红色羽毛使其独具特色。它是特立尼达和多巴哥的国鸟之一,其图皮-瓜拉尼语名称“Guará”也是巴西沿海一些城市名称的一部分。
Guará:一种简化测试自动化的Python设计模式
Guará是页面交易模式的Python实现,旨在简化测试自动化过程。它并非一个自动化工具,而是一种编程模式,可与Selenium及其他自动化驱动程序(包括Linux、Windows和移动端)兼容。其核心思想是将用户在应用程序中的交互(例如登录、注销或提交表单)定义为“交易”,从而提高测试代码的可读性、可维护性和灵活性。Guará避免与特定自动化工具绑定,赋予测试人员更大的选择自由。无需安装新的插件或学习新的知识,即可与Appium、Playwright、Robot Framework、Puppeteer等工具配合使用。
Guará利用命令模式(GoF)将用户交互分组到交易中。它关注用户旅程,而非UI元素本身,通过抽象复杂性使测试语句更易于理解,类似于自然语言。测试人员可以灵活地扩展自定义断言,弥补框架本身的不足。
Guará框架示例:网页语言切换
以下代码片段模拟了网页中的语言切换:
from selenium import webdriver
from guara.transaction import application
from guara import it, setup
import home
def test_language_switch():
app = application(webdriver.chrome())
# 打开应用程序
app.at(setup.openapp, url="https://example.com/")
# 切换语言并断言
app.at(home.changetoportuguese).asserts(it.isequalto, "conteúdo em português")
app.at(home.changetoenglish).asserts(it.isequalto, "content in english")
# 关闭应用程序
app.at(setup.closeapp)
每个用户交易都定义为一个单独的类(例如,changetoportuguese),继承自abstracttransaction。测试人员只需重写do方法,框架即可完成其余工作。
from guara.transaction import abstracttransaction
class changetoportuguese(abstracttransaction):
def do(self, **kwargs):
self._driver.find_element(by.css_selector, ".btn-pt").click()
return self._driver.find_element(by.css_selector, ".content").text
测试运行后,日志中会显示交易和断言信息:
test_demo.py::test_language_switch
2025-01-24 21:07:10 INFO Transaction: setup.OpenApp
2025-01-24 21:07:10 INFO url: https://example.com/
2025-01-24 21:07:14 INFO Transaction: home.ChangeToPortuguese
2025-01-24 21:07:14 INFO Assertion: IsEqualTo
2025-01-24 21:07:14 INFO Actual Data: Conteúdo em Português
2025-01-24 21:07:14 INFO Expected: Conteúdo em Português
2025-01-24 21:07:14 INFO Transaction: home.ChangeToEnglish
2025-01-24 21:07:14 INFO Assertion: IsEqualTo
2025-01-24 21:07:14 INFO Actual Data: Content in English
2025-01-24 21:07:14 INFO Expected: Content in English
2025-01-24 21:07:14 INFO Transaction: setup.CloseApp
测试人员可以使用pytest等工具进行测试,并利用其fixture功能进行设置和拆卸。
Guará的优势
- 每个类代表一个完整的用户交易,提高了代码的可重用性。
- 代码使用类似自然语言的表达方式,方便非技术人员理解和参与。
- 测试人员可以创建和共享自定义断言。
- Guará可以与各种自动化工具集成,支持REST API、单元测试、桌面和移动端测试自动化。
- 由于采用了命令模式,Guará甚至可以应用于产品开发。
Guará的使用
Guará的安装非常简单:
pip install guara
使用abstracttransaction类,以及runner的at和asserts方法。 使用pytest和详细日志进行测试执行:
python -m pytest -o log_cli=1 -log-cli -level=info
更多示例请参考教程。
总结
Guará为测试人员提供了一种新的代码组织方式,使其易于阅读、维护和与各种自动化驱动程序集成。它促进了测试人员与非技术人员之间的协作,并允许测试人员扩展和共享自定义断言。 现在就尝试Guará吧!
理论要掌握,实操不能落!以上关于《页面事务作为组织测试自动化的新方式》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
了解 Angular 生命周期钩子
- 上一篇
- 了解 Angular 生命周期钩子
- 下一篇
- 2024年中国汽车行业收入突破10万亿 电池利润增48.5%
-
- 文章 · python教程 | 18小时前 |
- Python logging Formatter 统一结构化字段输出
- 185浏览 收藏
-
- 文章 · python教程 | 19小时前 | 配置 · python · Python教程 · 配置管理 Python 3.15 frozendict 不可变映射
- Python 3.15 frozendict 内置类型的配置使用场景
- 192浏览 收藏
-
- 文章 · python教程 | 22小时前 | 序列化 · python · Python pickle 进程池 multiprocessing Pool
- Python multiprocessing 进程池传递不可序列化对象
- 255浏览 收藏
-
- 文章 · python教程 | 23小时前 | 数据一致性 · Python教程 · Python 事务 自动提交 sqlite3 autocommit isolation_level
- Python sqlite3 事务模式与自动提交边界
- 197浏览 收藏
-
- 文章 · python教程 | 23小时前 |
- Python contextlib.nullcontext 统一同步异步入口
- 316浏览 收藏
-
- 文章 · python教程 | 1天前 | 面向对象 · python · Python教程 · InitVar __post_init__ Python dataclass 派生字段 field(init=False)
- Python dataclass __post_init__ 计算派生字段
- 303浏览 收藏
-
- 文章 · python教程 | 1天前 |
- Python typing.TypeGuard 处理复杂容器类型收窄
- 437浏览 收藏
-
- 文章 · python教程 | 1天前 |
- Python os.fspath 支持自定义路径对象
- 214浏览 收藏
-
- 文章 · python教程 | 1天前 | 异常处理 · 异步编程 · Python教程 · asyncio · 后台任务 任务取消 CancelledError Python asyncio asyncio.shield
- Python asyncio.shield 保护后台任务免受外层取消
- 407浏览 收藏
-
- 文章 · python教程 | 1天前 |
- Python configparser ExtendedInterpolation 组织分层配置
- 480浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 418次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 500次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 507次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 454次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 282次使用
-
- Python sqlite3 Connection serialize 怎么导出数据库快照:备份窗口、内存占用与恢复校验
- 2026-08-26 501浏览
-
- Python监控网页状态:requests异常处理实战
- 2026-05-29 501浏览
-
- TensorFlow模型部署为API的TF Serving方法
- 2026-05-26 501浏览
-
- Python字符串编码转换:encode与decode详解
- 2026-05-16 501浏览
-
- TensorFlow裁剪无用算子方法详解
- 2026-05-15 501浏览

