一个简单的UI自动化框架应用介绍

项目框架介绍

该数据自动校验小程序采用POM模型,基于Java+selenium+testng+extentsreport+excel POI开发。

框架核心功能

  1. 基于PMO模型将页面封装成java对象,并通过selenuim驱动浏览器进行操作。
  2. 通过excel POI对excel文件进行操作,通过对比导出报表excel文件的方式完成数据校验
  3. 通过testng驱动测试用例,配置灵活,测试方式多样化
  4. 使用maven构建项目,简化依赖管理,可以使用jenkins进行持续测试集成
  5. 通过extentsreport插件扩展testng测试报告,测试完成可自动生成测试报告,记录所有测试用例的执行情况及展示统计信息,并通过钉钉消息的方式发送给相关干系人

Selenium中使用POM的特点和优点

  1. 能帮我们维护代码和减少代码的重复
  2. 在具体实施中,一个页面看做一个页面对象,每个页面写一个类。
  3. 你可以把一个页面的元素的全部定位方式和该页面的业务操作方法写在一个类文件,然后在测试脚本类文件去调用页面类的元素和方法。这样就有一个好处,你的软件在某一个界面出现了变化,你只需要修改对应页面的元素定位和相关方法,而不需要去修改你的测试脚本,当然除非你这个页面由于需求问题,之后被砍了,你才要去修改你的测试脚本类。
  4. 在POM中,我们把测试脚本和页面对象分层,例如页面对象统一放一个包下面,测试用例脚本统一放另外一个包下,到达测试脚本和页面对象分离。

项目结构介绍

  1. 目录如下:
  1. Framework

用于Selenium方法的二次封装和页面基类:利用继承的特点,减少我们重复代码量。将每个模块或者相关功能的一些公共的方法或者公共的元素,封装到页面基类里来。


浏览器引擎类:加载浏览器驱动;设置默认导出路径;设置浏览器静默启动;打开测试地址获取浏览器驱动

  1. PageObject

用于存放元素page层的封装

  1. pageObject.dataSetPage

用于封装通过数据集方式创建的卡片

  1. pageObject.dataSetPage

用于封装通过自定义SQL方式创建的卡片

  1. pageObject.function

excel数据对比方法


登录方法

  1. testSuite

测试用例集合

  1. 存放谷歌驱动
  1. 工具类集合

主要包括文件处理类,检索迭代对比文件;excel对比工具类,对excel报表文件进行操作,进行迭代对比;json文件处理类和http客户端类用于发送钉钉消息。

utils下目录文件

  1. testng测试套件 - 测试用例管理集成
  1. Maven插件说明

本次开发使用到两个maven插件,maven-surefire-plugins插件和exec-maven-plugin插件

  1. maven-surefire-plugins插件说明:

maven-surefire-plugin是maven里执行测试用例的插件,不显示配置就会用默认配置。这个插件的surefire:test命令会默认绑定maven执行的test阶段。

  1. exec-maven-plugin插件说明:

如果你想在项maven生命周期内,运行一段java代码,或者一段独立的程序,或者说我们所指的预执行,初始化某些值,生成某些不能预先生成的文件。那么这样我们就可以使用exec-maven-plugin进行程序的预执行,生成相关文件。具体配置如下:

待完善的点

  1. 完善断言方法
  2. 增加失败重跑机制
  3. 增加覆盖场景(实时报表场景覆盖)
  4. 优化测试报告
  5. 规范使用常量

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

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

相关文章

Docker搭建CouchPotato

使用 CouchPotato Docker 镜像搭建电影下载管理器 CouchPotato 是一个电影下载管理器,它可以帮助用户自动搜索、下载和管理电影。通过 Docker 镜像,可以在服务器上轻松部署 CouchPotato,并让其运行在容器中,以便在任何设备上访问…

通过网络api获取日期对应的节假日信息

网络接口获取链接&#xff1a;免费节假日API_原百度节假日API HolidayJudge.h #pragma once#include <QtWidgets/QWidget> #include "ui_HolidayJudge.h"enum DATESTATE {WORK0,//工作日DAYOFF,//休息日HOLIDAY//节假日 };class HolidayJudge : public QWidg…

Linux之线程互斥与同步

1.线程互斥相关概念 临界资源&#xff1a;多线程执行流共享的资源就叫做临界资源 。 临界区&#xff1a;每个线程内部&#xff0c;访问临界自娱的代码&#xff0c;就叫做临界区。 互斥&#xff1a;任何时刻&#xff0c;互斥保证有且只有一个执行流进入临界区&#xff0c;访问临…

关于本博客作者的声明

鉴于鸭某兽公司的恶意推测、试图抹黑本人及本人所在公司&#xff0c;臆测本人及本人所在公司对本人博客名称进行模仿。为了对相关情况进行澄清&#xff0c;现本人声明如下&#xff1a; 本博客&#xff08;名称&#xff1a;小飞鱼通达二开&#xff09;&#xff0c; 网址为&…

【Unity】如何让GameObject的长宽自适应屏幕分辨率

【背景】 用一个长方形的GameObject代表电影屏幕,希望这个GameObject能够随着当前屏幕分辨率的大小适当变化,Texture会呈现当前屏幕的桌面画面,如果不一致会比例失调。 【分析】 Awake函数中就完成处理。获得当前屏幕分辨率,用适当倍数计算后付给GameObject的Transform下…

谷歌查问题

1&#xff0c;打开 it工具箱-里面啥都有 2&#xff0c;找到谷歌 3&#xff0c;访问gpt

E. Yet Another Walking Robot 又一个行走的机器人(map详解代码)

坐标平面上有一个机器人。最初&#xff0c;机器人位于该点&#xff08;0,0&#xff09; .它的路径被描述为字符串s长度n由字符“L”、“R”、“U”、“D”组成。这些字符中的每一个都对应着一些动作&#xff1a; ‘L’&#xff08;左&#xff09;&#xff1a;表示机器人从该点移…

VSCODE自动更新无法连接远程服务器报错“waiting for server log...“的解决方法

问题描述 一觉醒来打开vscode发现连接远程服务器显示无法连接&#xff0c;终端一直报错“waiting for server log…"&#xff0c;经查是因为vscode自动更新到了1.86&#xff0c;对于远程服务器的linux版本要求较高。这里记录下解决方法。 解决方法 1. 下载vscode便携版…

Vue3 v-bind绑定css中的var变量实现动态样式

在日常的开发中&#xff0c;我们常常遇到这样的需求&#xff1a;点击一个button改变页面中某个元素的样式&#xff0c;在这样的场景中&#xff0c;我们可以使用v-bind绑定css中的var变量&#xff0c;来动态的切换元素的样式 一个小栗子&#xff0c;在setup语法糖环境下&#xf…

敏捷开发是什么?敏捷开发的流程有什么?

敏捷开发是什么&#xff1f; 敏捷开发是一种灵活且迭代的软件开发方法论&#xff0c;它强调快速响应变化、高效协作、持续交付价值以及高度关注业务目标与客户满意度。敏捷开发采用短周期&#xff08;称为“迭代”或“冲刺”&#xff09;来开发、测试和交付可用的产品增量&…

日志埋点功能

前言 开发中经常会有日志埋点需求, 用于统计接口的请求量、处理速度等等,为此本篇幅从一下几个维度进行分析,从零到有搭建。 技术架构解析 实现日志埋点功能,从字面意思就可以想到功能大致分为两个方向: 1、 埋点功能(logback + 封装通用SDK方法 + 共享文件夹(如果是多…

Sketch3D:用于草图到3D生成的样式一致性指南

Sketch3D: Style-Consistent Guidance for Sketch-to-3D Generation Sketch3D&#xff1a;用于草图到3D生成的样式一致性指南 Wangguandong Zheng 重试 错误原因 Southeast UniversityChina 重试 错误原因 wgdzhengseu.edu.cnHaifeng Xia 重试 错误原因 Southeast Universit…

设计模式总结-简单工厂模式

简单工厂模式 创建型模式创建型模式概述创建型模式种类 简单工厂模式模式定义模式动机模式结构模式分析模式实例与解析实例一&#xff1a;简单电视机工厂实例二&#xff1a;权限管理 模式优缺点简单工厂模式的优点简单工厂模式的缺点 模式适用环境模式扩展 小结 创建型模式 创…

如何在Ubuntu系统使用docker部署DbGate容器并发布至公网可访问

文章目录 1. 安装Docker2. 使用Docker拉取DbGate镜像3. 创建并启动DbGate容器4. 本地连接测试5. 公网远程访问本地DbGate容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 本文主要介绍如何在Linux Ubuntu系统中使用Docker部署DbGate数据库管理工…

Unstructured - 提取非结构化数据

文章目录 一、关于 Unstructured核心概念&#x1f680; Beta 功能&#xff1a;Chipper 模型 二、安装方式一&#xff1a;使用 PYPI方式二&#xff1a;使用源码本地安装安装依赖库测试 三、在Docker运行库添加shell构建自己的 Docker image交互运行 四、PDF文档解析示例 一、关于…

node 的路径分析和文件查找策略

注意本篇文章的内容可以在《深入浅出 nodejs》这一本书中的 2.2 章节中找到详细介绍&#xff0c;这里只说结论 首先必须明确几点 node 中使用的 commonjs 规范commonjs 规范使用 require 导入模块 模块就是文件&#xff0c;每一个文件都是一个模块 所以 node 中路径分析主要是…

【随笔】Git 高级篇 -- 快速定位分支 ^|~(二十三)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

关于鸿蒙HarmonyOS,现在关注什么可以更高效

对于移动端来讲&#xff0c;今年最火的关键词除了裁员&#xff0c;我想就是鸿蒙HarmonyOS了。其实鸿蒙的推出也给安卓端的同学提供了职业发展的新路径或方向。 鸿蒙&#xff0c;原本源自中国神话传说的名字&#xff0c;如今已成为了科技领域的焦点&#xff0c;招聘网站上也出现…

【C语言】C语言题库【附源码+持续更新】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 目录 1、练习2-1 Programming in C is fun! 2、练习2-3 输出倒三角图案 3、练习2-4 温度转换 4、练习2-6 计算物体自由下落的距离 5、练习2-8 计算摄氏温度 6、练习2-9 整数四则运算 7、练习2-10 计算分段函数[1…

ELFK (Filebeat+ELK)日志分析系统

一. 相关介绍 Filebeat&#xff1a;轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat&#xff0c;并指定目录与日志格式&#xff0c;Filebeat 就能快速收集数据&#xff0c;并发送给 logstash 进或是直接发给 Elasticsearch 存储&#xff0c;性能上相…