Web UI自动化的设计和实践

背景

UI 自动化测试,即通过自动化的手段来控制机器模拟人进行手工操作。随着 GrowingIO 业务的不断发展,新需求的不断增加,回归测试的任务越来越重,现有测试的资源已经不足以应对繁重的回归测试任务,亟需 UI 自动化来代替人手工进行回归测试,解放回归测试的人力去做更精准的测试。因此,引出下文在 GrowingIO 的Web UI 自动化的建设,本文主要就以下两个方面展开介绍:

1.框架搭建

2.集成质量平台

框架搭建

PageObject

众所周知,UI 自动化测试,是位于测试金字塔塔尖的位置,ROI 低。其痛点主要体现在:

1.测试用例维护成本高,页面元素定位方式或者布局有一些细微的变动,之前写好的代码可能就有很大的改动;

2.代码冗余,复用性低,可读性不好。

针对以上痛点,同时也通过大量调研,决定使用 PageObject 设计模式,其核心思想为六大原则:

  • 公共方法代表页面提供的服务

  • 不要暴露页面细节

  • 不要把断言和操作细节混用

  • 方法可以 Return 到新的页面

  • 不要把整页内容都放到 PageObject 中

  • 相同的行为产生不同的结果,可以封装不同结果

依据以上六大原则,并结合 GrowingIO 具体业务的情况,目录层级设计如下:

  • BasePage 层:封装对网页的一些基础操作的方法,比如打开浏览器、查找元素、截屏等

  • Component 层:继承 BasePage 层,封装了对页面中公共组件的操作方法,比如时间组件

  • Page 层:继承Component层,该层中的每个方法都对应当前页面的一个功能,方法里可以调用Component 层中的方法或调用 BasePage 层中封装的方法

  • TestCase 层:调用业务 Page 层中封装的方法,编写业务 Case,并做断言

实际项目的目录分层如下:


├── basepage
│   └── base_page.py
├── component
│   └── element_design.py
├── conf
│   ├── conf.py
├── datas
├── log
│   └── all.log
├── log.py
├── page
│   ├── home_page.py
│   ├── login_page.py
│   ├── main_page.py
│
├── pytest.ini
├── report
│  
├── requirements.txt
├── run_all_cases.py
├── testcase
│   ├── conftest.py
│   ├── testcase.py
│
└── util
    └── util.py

Selenium + Python

语言选择 Python,对于新人友好且组内人员比较熟悉,可以迅速上手;

目前市场上的 Web UI 自动化测试方案百花齐放,基于底层技术的不同大体上分为以下几类:

1.WebDriver Protocol 类:

Selenium 3WebdriverIOProtractorNightwatchjs

2.Proxy JS 注入类:

如 Selenium RC,TestCafeCypress

3.DevTool Protocol 类:

Puppeteer, Playwright t

我们选择使用 Selenium 3,优势如下:

  • 开源、免费

    </
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
pytest ui自动化测试实战主要包括安装并配置环境、练习pytest基本使用、练习selenium基本使用以及使用pytest和selenium实现UI自动化测试四个部分。在练习pytest基本使用中,我们可以通过编写简单的用例格式来实现对测试目的和要求的覆盖。而在练习selenium基本使用中,我们可以使用脚本语言来模拟用户行为操作,接近真实用户场景,实现对web页面的自动化测试。通过这些实践,我们可以了解基于pytest和seleniumUI自动化测试的基本思路,并熟悉这两种测试工具的基本操作。此外,pytest还是一个非常成熟的Python测试框架,它具有简单的用例编写格式和丰富的插件,如pytest-html和pytest-rerunfailures等,可以生成漂亮的测试报告并实现失败用例的重复执行。通过实战,我们可以基本掌握pytest的使用方法。另外,还可以基于pytest实现测试用例收集方案、自定义参数化方案、页面元素定位数据存储方案、测试用例数据存储和维护方案等,以避免重复设计和维护复杂的问题。此外,还可以修改定制并汉化html测试报告,使其更加简洁、美观、易读。同时,还可以封装集成selenium、appium、minium和WinAppDriver等工具,以更好地支持不同平台和应用的自动化测试。总之,通过pytest ui自动化测试实战,我们可以全面了解和掌握UI自动化测试的基本原理和实践技巧。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [软件测试案例|使用 pytest+selenium 进行UI自动化测试](https://blog.csdn.net/qq_41640218/article/details/124031645)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [基于pytest设计自动化测试框架实战](https://blog.csdn.net/hotswwkyo/article/details/103211805)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值