Appium+Python+PO 设计模式

news2024/10/4 20:24:18

目录

前言:

什么是 PageObject?

关于报告的输出

总结


前言:

Appium是一个用于自动化移动应用程序测试的开源工具,Python是一种简单易学且功能强大的编程语言,PO(Page Object)设计模式是一种在自动化测试中常用的设计模式。

什么是 PageObject?

  • 属于 selenium 的一种设计模式,套用在 appium 身上了(实践表明,合适,因为 selenium 和 appium"本是同根生")
  • 个人对于 PO 的理解就是,页面元素 - 页面业务操作步骤的方法 - 测试用例(我知道抽象,大家自行谷哥了解下)

下图是我的代码结构:
Data:测试数据。后期准备把代码中会所有测试数据都整合到 excel 或者 xml 内,Data 文件夹就是这个用处
PO:所有 Page。以 Base 页面为基础(看下图分析,来理解 PO)
Public:一些公共的方法,比如测试报告脚本,封装好的
Result:测试结果,包括测试报告和截图
TestCase:测试用例都放这儿
run_case:测试套件,利用 HTMLTestRunner.py,输出测试报告到/Result 下

Base 内重新封装的是基础的 webdriver 方法和一些你自己测试用例有需要的公用方法,PO 内的其他 Page 都是继承自 Base
appium 与 selenium 的唯一不同就是对 driver 的设置上

在这里 driver 的调用,我感觉自己还没写好,我的需求是只在 Base 内定义好 driver,指定好端口,所有测试用例共用一个 driver,直接在测试用例内调用,我调试过了,自己 python 水平也是一般,没改出来,后期我再改善一下这个。

直接在 Page 内封装整个业务流程的方法,测试用例中代码量会少很多。(当然写在测试用例中也是可以的)
简单说明下:

  • 场景:登录业务
  • Page 内:a.输入用户名 b.输入密码 c.点击登录按钮;A.登录方法(包含 abc)
  • 测试用例内: 1.直接调用 Page 的 A;2.顺序调用 Page 的 abc 这两种方式各有各的利弊,各取所需吧

测试用例我用的是 unittest
我这个 demo 没有写断言,没有打 log,测试数据也没有放到外部文件。这些都是后期要改善的

关于报告的输出

通过测试套件去驱动 HTMLTestRunner 生成测试报告,并且加入了截图功能。

总结

整体看来框架的搭建是很简单的,但也算是五脏俱全吧(好吧,还差几个,我知道啦)。个人觉得对于框架怎么搭,用哪种设计模式,用哪种工具,选择性还是很多的。跟 web 类似的啊,关键字,PO,RF......各取所需吧各位,而且,不同的设计模式下,代码结构如何,也是看各人选择的。

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)

相信能使你更好的进步!

点击下方小卡片

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

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

相关文章

C进阶:指针的进阶(4)

回调函数 回调函数就是一个通过函数指针调用的函数。(函数指针的一个非常重要的作用就是实现回调函数)。如果你把这个函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们…

Mysql教程(二):DDL学习

Mysql教程(二):DDL学习 DDL (Data Definition Language )数据定义语言,用来定义数据库对象(数据库、表、字段) 1 DDL数据库操作 查询 查询所有数据库 SHOW DATABASES;查询当前数据…

利用Python与ArcGIS工具进行蒸散发ET、植被总初级生产力GPP估算

查看原文>>>基于”Python”多技术融合在蒸散发与植被总初级生产力估算中的实践应用 熟悉蒸散发ET及其组分(植被蒸腾Ec、土壤蒸发Es、冠层截留Ei)、植被总初级生产力GPP的概念和碳水耦合的基本原理;掌握利用Python与ArcGIS工具进行课…

浅谈电能分项计量在节能降耗中的应用

摘要:随着电力企业改革活动的持续推进,要想加快改革进程、优化改革效果,应该提高对节能降耗问题的关注度。在应用电力计量技术的过程中巧妙地渗透节能降耗这一理念,以此提高技术应用率,充分体现技术应用价值&#xff0…

对象的方法

1.Object.assign(目标对象,源对象) 用于将所有可枚举的自身属性从一个或多个源对象复制到目标对象 目标对象——应用源属性的对象,修改后返回。 源对象——包含你要应用的属性的对象。 返回值:修改后的目标对象 const target { a: 1, b: 2 }; const …

Win10我的电脑图标怎么调出来?5招搞定!

“我的电脑图标怎么突然不见啦?大家有没有遇到类似情况呀?请大家给我出出主意!” 有的朋友可能会遇到这样一个问题,就是当我们更新了系统或进行某些操作后,计算机中【此电脑】的图标不见了。Win10我的电脑图标怎么调出…

MySQL8.1.0版本正式发布,一起尝鲜新特性

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验 一位上进心十足的【大数据领域博主】!😜&#x1f61…

DT人体骨骼绑定

中心点 joint31.rotateXnurbsCircle4.rotateX*0.4; 选择控制器 控制器打组 骨骼打组 手柄也变小了 没变 打组 放组中心点 没做点约束的 正确了 IK和FK 可以移动 开启IK 关闭IK 创建控制器 在开启IK FK 旋转没反应 打组,设置中心点 隐藏不用的属性

Spring Boot进阶(55):SpringBoot之集成MongoDB及实战使用 | 超级详细,建议收藏

1. 前言🔥 前几期我们有介绍Mysql、Redis等数据库介绍及实战演示,对基本的数据存放有很好的共性,但是如果说遇到大面积的xml、Json、bson等格式文档数据存放,以上数据库并非是最优选择,最优选择是Mongodb数据库。 那么…

【rk3568】uboot gpio寄存器配置

假设GPIO4_C6 一、查看RM手册GPIO4C6关键字搜索 其中31-16位对应低16位是否可以写,(为1就有写的权限,如gpio4C6 中10-8将31-16中对应位写1) 二、查看GPIO4的基地址 三、找到GPIO4的基地址 四、GPIO4C6的地址就是sys_CRFoffset(0…

Python 线程调用

简介: Python 线程可以通过主线程,调用线程来执行其他命令, 为Python提供更方便的使用。 并发线程测试 命令调用方式 import threading,time 定义每个线程要运行的函数 def run(n): print(“task”,n) time.sleep(1) 生成一个线程实例ta…

【kafka调试】用命令行查看kafka是否发出了命令

server 10.10.90.210:9092 topic stream_manager_center_capture_file 摄像头id: 17283ed2a1ac685f9fd5ef9f0de04792 cd /usr/loca/kafka bin/kafka-console-consumer.sh --bootstrap-server 10.10.90.210:9092 --topic stream_manager_center_capture_file 然后添…

ArcGIS、ENVI、InVEST、FRAGSTATS等多技术提升数据分析能力

专题一、空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 专题二、ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化:地图符号与…

搭建gitblit

这个就是资源搭建包不是很好找 搭建一台属于自己的Git服务器_51CTO博客_git搭建本地服务器 使用wget下载安装包 wget https://miracle-1306318206.cos.ap-shanghai.myqcloud.com/public/gitblit-1.9.1.tar.gz 如果资源找不到可以使用如下链接下载:链接: https:/…

企业UPS不稳定?不用怕,这个技巧简单且容易!

随着技术的不断发展,食品行业中的UPS监控系统变得更加智能化和便捷,使食品生产过程更加安全可靠。 UPS监控在食品行业中扮演着关键的角色,确保电力供应的稳定性对于食品生产和储存过程至关重要。 客户案例 安徽某食品制造公司是一家大型食品…

shell脚本中一个隐晦的bug

1.逻辑表达式if [ ! EXP PATTERN ]不能判断EXP结果为空的情形; 2.而逻辑表达式if [[ EXP ! PATTERN ]可以判断EXP结果为空的情形;

新版本特性抢先看 | DolphinDB V2.00.10V1.30.22 即将发布

DolphinDB V2.00.10&V1.30.22 新版本即将与大家见面! 新版本包含了 VS Code Debug、插件在线下载、TopN 系列函数、SQL标准兼容性改进等各种更新,以及TSDB 引擎、流计算、多种计算函数性能优化。 在此前的新版本中,我们也为大家提供了异…

初探C++ C++入门

目录 经典开头 — C的历史 作用域运算符 using的用法 命名空间 - namespace 命名空间的基本使用 特殊的命名空间 - 无名命名空间 全部展开和部分展开 std — C所有的标准库都在std命名空间内 省缺值 - 默认参数 占位参数 内联函数 - inline 函数重载 函数重载的用…

基于卷积神经网络的人脸笑容识别和性别识别

文章目录 前言数据集准备数据标注数据集格式转换AI Studio平台介绍及使用数据集准备创建工程模型配置模型训练 模型转化及优化模型减支模型转化 验证测试总结分析参考文献 前言 环境: python 3.7.9 本次项目的内容是基于卷积神经网络的人脸笑容识别和性别识别。 笑…

音频功放芯片推荐,功放特点及选型注意事项

音频放大器是用于推动扬声器发声,从而重现声音的功放装置,凡是发声的电子产品中都用到它;有助于增加从输入设备馈送的音频波的幅度,然后传输从毫瓦到千瓦的更高幅度的音频波。 目前市面上使用的电子设备都安装了放大器系统&#…