利用POM完成脚本分离实现企业级自动化(POM设计模式+页面的框架封装+测试报告截图)

news2024/10/7 8:24:37

利用POM完成脚本分离实现企业级自动化(POM设计模式+页面的框架封装+测试报告截图)

  • 项目-测试-手工测试

项目-测试-手工测试

在这里插入图片描述

  • 1.了解需求;
    2.编写测试用例(开始)——功能测试组会去做的事情
    在这里插入图片描述
    3.执行测试用例——发送测试报告
  • 企业架构:功能组-自动化-性能组
  • 前置条件:web自动化必须是项目相对稳定的情况去进行投入自动化测试。
  • 比较规范的公司业务:自动化工程师会根据我们对应功能测试用例去挑选一些核心业务流程去做自动化。
    (优先级高的、业务的核心流程(根据项目各有不同)、对应的复杂度能够通过自动化实现)
    在这里插入图片描述

重点:然后把挑选的用例用脚本的方式去进行描述。通过计算机进行自动取执行脚本。–如果说需要回归测试的话,相对会提高效率。

  • 怎么把对应的case转成脚本?–WEB UI --selenium——元素定位、8种

  • 很多重复的代码–如果是重复的代码-线性代码-面试过程当中(认定不会自动化)。

  • 思路:线性代码-动作
    1.打开浏览器
    2.让浏览器打开对应的页面
    3.操作页面元素及对应的操作(点击、输入、滚动、拖动…)(都是通过selenium去做的)
    在这里插入图片描述
    在这里插入图片描述

  • 自动化测试相关的模型——POM

  • POM(Page Object Model)页面对象模型,是一种设计模式

  • 建立文件夹存放页面,如何去定义页面:
    1.一个页面一个对象 --class
    2.这个页面有什么?(公共部分提取,再单独写)
    这个页面能做什么?
    3.定位方式:右击-检查-复制 XPATH
    导入by包
    在这里插入图片描述
    4.目前知道谁?可以去运行了吗?所有页面操作都一样,如何不需要重复写
    实现:继承。(所有的页面都可以看为一个子类)
    1.写一个类–父类–(方法、属性)
    2.只要对应的子类继承了父类
    3.对应的子类就可以使用父类的方法和属性
    在这里插入图片描述
    在这里插入图片描述

  • find_element——依次传递

  • 在python当中*代表进行解包,把对应的数据依此分割开。
    如何继承?在对应类中写入父类名

4.调用,程序的入口
(完成了自动登录和退出)
在这里插入图片描述

  • 总结:
    1.page–class–一个class代表一个页面;
    2.每个页面做的操作:有什么、能做什么?
    3.每个页面做的操作都基本相同,所以我们可以写一个父类,对应的子类继承于他
    4.所有的父类即可使用对应的方法
    在这里插入图片描述
  • 利用css定位,实现页面整体封装
    在这里插入图片描述

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

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

相关文章

vue中router路由的原理?两种路由模式如何实现?(vue2) -(下)

上一期我们说到了如果想要实现一个路由嵌套,那么就需要判断传递实例化路由时的那个路由信息是否存在children属性,如果有children说明它是二级路由,我们还需要去递归判断,因为它不一定只有一个子路由,接下来实现一下路…

【第三阶段】kotlin语言的substring

const val INFO"kotlin java" fun main() {val indexOfINFO.indexOf(j)//左包右不包//0,indexOf等价于0 until indexOf ktolin常用0 until indexOf 方式println(INFO.substring(0,indexOf))println(INFO.substring(0 until indexOf))}执行结果

Android Framework 动态更新插拔设备节点执行权限

TF卡设备节点是插上之后动态添加,所以不能通过初始化设备节点权限来解决,需要监听TF插入事件,在init.rc 监听插入后动态更新设备节点执行权限 添加插拔TF卡监听 frameworks/base/services/core/java/com/android/server/StorageManagerServic…

YOLOv5基础知识入门(6)— 激活函数(Mish、Sigmoid、Tanh、ReLU、Softmax、SiLU等)

前言:Hello大家好,我是小哥谈。激活函数(Activation functions)对于人工神经网络模型去学习、理解非常复杂和非线性的函数具有十分重要的作用。YOLOv5模型训练过程中即使用了激活函数,可以改善模型的训练速度和准确性。…

SpringCloud实用篇7——深入elasticsearch

目录 1 数据聚合1.1 聚合的种类1.2 DSL实现聚合1.2.1 Bucket聚合语法1.2.2 聚合结果排序1.2.3 限定聚合范围1.2.4 Metric聚合语法1.2.5.小结 1.3 RestAPI实现聚合1.3.1 API语法1.3.2 业务需求1.3.3 业务实现 2 自动补全2.1 拼音分词器2.2 自定义分词器2.3 自动补全查询2.4 实现…

vue3-router

一、路由 (1)通过 URL 区分路由的机制上,有两种实现方式: hash 模式:通过 URL 中 # 后面的内容做区分,我们称之为 hash-router; history 模式:在这种方式下,路由看起来和…

C++_模板进阶_非类型模板参数_模板特化_分离编译

一、非类型模板参数 模板参数,分为类型形参和非类型形参。 类型形参就是在模板中跟在typename和class之后的参数类型名称,非类型形参就是用一个常量作为类模板或者函数模板的一个参数,在类模板和函数模板中,可以将该参数当作常量…

第三方软件安全测评如何收费,安全测试包括哪些测试项?

近年来,随着全球范围内网络安全事件的频发,第三方软件安全测评的需求也日益增长。软件安全对于企业的重要性不言而喻,那么如何收费和可做测试项就成了企业最为关注的问题,小编将就以上问题作出以下简析。 一、第三方软件安全测评…

Smartbi 修改用户密码漏洞

漏洞简介 通过查看 Smartbi 的补丁包信息,发现存在漏洞在某种特定情况下修改用户的密码,进行简单的复现和分析 ​ 漏洞复现 在页面上修改密码时,需要知道原本的用户对应的密码 ​ ​ 直接构造这样的数据包,就不需要知道原本…

Excelize Go语言操作 Office Excel文档基础库

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式&#xf…

硬件-10-浏览器发展史和开源操作系统FydeOS

吊打 IE、Firefox,谷歌 Chrome 十年发展史 fydeos官方网站 全面了解浏览器内核发展史 1 浏览器内核 浏览器内核英文叫做:Rendering Engine,中文翻译很多,排版引擎、解释引擎、渲染引擎,现在流行称为浏览器内核。内核…

42、可靠传输——连续ARQ

上回内容我们学习到,一种保证可靠传输的机制——ARQ协议,ARQ协议通过设置超时定时器,当在规定时间内没有收到来自对方发来的“确认”报文,就自动报文重传。这其中,ARQ协议和停止等待机制的结合,我们把它称作…

USB PD快充保护方案有哪些?用集成式TVS还是分立式TVS?

USB Power Delivery ,简称USB PD,是由USB-IF组织制定的一种快速充电规范,目前主流的快充协议之一。该规范可实现更高的电压和电流,输送的功率最高可达100瓦,并可以自由的改变电力的输送方向。在日常使用USB PD快充充电…

CNN卷积详解(三)

一、卷积层的计算 4 ∗ * ∗ 4的输入矩阵 I I I 和 3 ∗ * ∗ 3 的卷积核 K K K: 在步长(stride)为 1 时,输出的大小为 ( 4 − 3 1 ) ( 4 − 3 1) 计算公式: ● 输入图片矩阵 I I I 大小: w w w w ww ●…

【八大排序】-- 基数排序(动图演示)

基数排序(桶排序)介绍 (1)基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通…

【环境配置】Windows10-YOLOv8运行报错

问题如下: Windows10 运行 YOLOv8 出现如下错误: Traceback (most recent call last): File “”, line 1, in File “D:\anaconda3\envs\yolov8\Lib\multiprocessing\spawn.py”, line 116, in spawn_main exitcode _main(fd, parent_sentinel) ^^^^^…

【ROS】话题通信--从理论介绍到模型实现

1.简单介绍 话题通信是ROS中使用频率最高的一种通信模式,话题通信是基于发布订阅模式的,也即:一个节点发布消息,另一个节点订阅该消息。像雷达、摄像头、GPS… 等等一些传感器数据的采集,也都是使用了话题通信,换言之…

帆软大屏2.0企业制作

 数字化观点中心 / 当前页 如何从0-1制作数据大屏,我用大白话给你解释清楚了 文 | 商业智能BI相关文章 阅读次数:18,192 次浏览 2023-06-08 11:51:49 好莱坞大片《摩天营救》中有这么一个场景:  你可以看见反派大b…

设备数字化平台的优势和应用价值

在现代工业领域,设备的高效管理和维护对于企业的运营和竞争力至关重要。而设备管理系统作为一个强大的工具,可以极大地提升设备管理和维护的效率,从而实现生产效益的最大化。本文将探讨设备数字化平台的优势和应用价值。 设备数字化平台是一款…

蓝桥杯嵌入式省一教程:(一)点亮LED

如同所有编程入门的第一个教程——打印"Hello world"一样,点亮LED可以算得上是嵌入式开发中的"Hello world",所有的单片机开发入门都从这里开始。 在点亮LED前,我们需要先了解一个重要概念——GPIO(General Purpose Inp…