只需要一份Yaml文件,即可实现UI自动化

news/2024/9/27 23:30:30
  • Pytest + Selenium/Appium + Yaml + allure 实现的UI自动化测试框架
  1. 使用环境
    allure-pytest==2.13.5
    Appium-Python-Client==4.0.0
    Faker==25.8.0
    Jinja2==3.1.4
    PyMySQL==1.1.1
    pytest==8.2.2
    pytest-xdist==3.6.1
    PyYAML==6.0.1
    selenium==4.21.0
  2. 实现逻辑

    • 初始驱动,返回 driver 
    • 基于显示等待二次封装selenium、appium元素操作方法
    • testcase 目录下添加 conftest.py
      • 添加 pytest_collect_file 方法,收集测试用例。test 开头或结尾的 yaml 文件
      • 添加 pytest_generate_tests 方法,实现参数化
    • 处理 yaml 数据,替换变量
    • 动态创建 pytest 用例
    • 根据 yaml 文件设置的关键字,执行selenium、appium
    • 生成 allure 报告
  3. Yaml文件格式
    config:base_url: http://127.0.0.1:8000/login/action/variables:username: lixiaofengpassword: 123456sql: select au.username  from auth_user au limit 1quote: 引用login文件
    test_user_login_case:
    test_message_case:test_step:- skip: 跳过- sleep: "2"- screenshot: 异常截图- click:type: xpathlocate: //div[@class="navbar-header"]/div[2]/div[3]/button- click:type: xpathlocate: //a[@href="/nb/message/"]- assert_text:type: xpathlocate: //*[@id="layout-wrapper"]/div[2]/div/div/div[1]/div/div/h4text: 消息通知- click:type: xpathlocate: //div[@class="pull-right"]/button- sleep: "2"- assert_text:type: idlocate: prompt-titletext: 确认要将所有通知标记为【已读】吗?- click:type: xpathlocate: //div[@class="modal-content"]/div[3]/button[2]- sleep: "2"- step: 断言- assert_text:type: idlocate: alerttext: 暂无未读通知- screenshot: 成功截图- sleep: "3"story: 用例-添加模块管理title: 添加模块description: 该用例是针对 添加模块 的测试
    epic: 接口平台
    feature: 消息模块
  4. Allure报告
    • app

    • web

    • 本地趋势图

       

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/47309.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

React18

React18 + Redux9 + ReactRouter6 + TypeScript0x01 React 基础 (1)概述React 框架由 Meta(原 Facebook)研发并发布 用于构建 Web 和原生交互界面的库 优点:使用组件化的开发方式,性能较优 具有丰富生态,并且支持跨平台(2)创建开发环境 a. 第一个工程需要提前安装并配…

7-Zip

最牛掰的解压缩的开源软件!赏!!!!概述 7-Zip 是一款免费开源的文件归档和压缩软件,由于其高压缩比和支持多种格式等优势,越来越受到用户的青睐。7-Zip 最初由一位俄罗斯程序员开发,现已经成为全球领先的压缩软件之一。 作为开源免费的 7-Zip 解压缩工具,除了常见的压缩…

FQC外检机使用Profibus转Modbus网关提升工作效率

本文介绍了PLC通过Profibus转Modbus网关(XD-MDPB100)与视觉传感器实现通讯,在FQC外检机中提升自动化和检测效率。控制器通过Profibus转Modbus网关(XD-MDPB100)与视觉传感器实现通讯,在FQC外检机的应用为生产流程的自动化和优化提供了重要支持。在工业自动化领域,PLC常被…

Flutter 借助SearchDelegate实现搜索页面,实现搜索建议、搜索结果,解决IOS拼音问题

使用Flutter自带的SearchDelegate组件实现搜索界面,通过魔改实现如下效果:搜素建议、搜索结果,支持刷新和加载更多,解决IOS中文输入拼音问题。搜索界面使用Flutter自带的SearchDelegate组件实现,通过魔改实现如下效果:搜素建议 搜索结果,支持刷新和加载更多 IOS中文输入…

.NET Core 3.x 基于AspectCore实现AOP,实现事务、缓存拦截器

最近想给我的框架加一种功能,就是比如给一个方法加一个事务的特性Attribute,那这个方法就会启用事务处理。给一个方法加一个缓存特性,那这个方法就会进行缓存。这个也是网上说的面向切面编程AOP。AOP的概念也很好理解,跟中间件差不多,说白了,就是我可以任意地在方法的前面…

内存调优实战

实战篇1、内存调优1.1 内存溢出和内存泄漏内存泄漏(memory leak):在Java中如果不再使用一个对象,但是该对象依然在GC ROOT的引用链上,这个对象就不会被垃圾回收器回收,这种情况就称之为内存泄漏。内存泄漏绝大多数情况都是由堆内存泄漏引起的,所以后续没有特别说明则讨论…

团队开发日记4

日期:2024年5月11日标题:校园兼职招聘系统开发日记 - 收藏功能和邮箱功能实现 项目概述:今天我们完成了用户收藏功能和邮箱功能的设计和实现,增强了系统的个性化和通知能力。 当天的工作内容:李健龙负责了用户收藏兼职和帖子的页面设计和数据存储逻辑。 郑盾实现了系统的邮…

团队开发日记2

日期:2024年5月5日标题:校园兼职招聘系统开发日记 - 兼职发布与搜索功能实现 项目概述:今天我们重点完成了兼职发布和搜索功能的初步实现,用户可以发布兼职信息并进行基本的搜索。 当天的工作内容:李健龙完成了兼职信息录入页面的前端设计和部分后端逻辑的编写。 郑盾实现…