当前位置: 首页 > news >正文

独立搭建UI自动化测试框架

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

今天给大家分享一个selenium+testng+maven+antUI自动化,可以用于功能测试,也可按复杂的业务流程编写测试用例,今天此篇文章不过多讲解如何实现CI/CD,只讲解自己能独立搭建UI框架,需要阅读者有一定的java语言基础,文档中的有些注解我就不详细介绍了,感兴趣的可以去java官网查看。

废话就不多说了,开始实例讲解。

开发工具:idea2017

开发平台:windows

举例模板:百度搜索

开发语言:java

可拓展mysql,shell,api 等

提供:代码demo—打包形式发出

新建java模块

有两种创建方式

1. 点击欢迎屏幕上的 Create New Project

图片

2. 或选择 File| New | Project

图片

看到打开的新建项目向导窗口

如果你要在现有项目中添加一个模块:打开要添加模块的项目,然后选择File | New | Module.

图片

填写好相关的group和artifact后点击【Next】,最后Finish。

引入驱动,--与src 同级目录新建一个文件夹 lib;

引入pom.xml ,目的是托管所有依赖jia包;--与src同级目录

引入 build.xml,目的是与Jenkins关联实现CI;

引入log4j2.xml,目的打印日志;--在src目录下

新建公共模块包:目的存放公共类

新建元素模块包:目的存放测试元素;

新建步骤模块包:目的测试用例的执行步骤;

新建执行测试模块包:目的执行测试用例;

新建 conf模板包:目的放系统配置文件;

整个项目目录结构如下图所示:

图片

下面是实例化讲解

1. 新建class—runDriver.class 用于启动浏览器驱动—公共方法

图片

我是基于windows系统开发的,如果是mac 替换一下驱动就行

2. 新建BrowerDriver.class 对浏览器的公共方法

图片

此类下面有 打开和关闭浏览器的公共方法;

3. 新建读写系统文件ReadPreperties.class类

图片

4.     还有很多其他公共的类,在此就不一一讲解了,稍后会提供demo

比如:自动生成手机号,姓名,身份证号等

5.     以百度 为例 开始写 元素类

在com.ui.auto.element 下新建BaiDuElement.class

图片

6.     在com.ui.auto.step下新建BaiDuStep.class

图片

7.     在com.ui.auto.case 下新建BaiDuCase.class

图片

需要引入testng jra包的三个注解

@BeforeTest

将会在一个元素定义的所有里面所有测试方法执行之前运行,在此 先运行 打开浏览器 操作

@Test

要被执行的测试方法

@AfterTest

将会在一个元素定义的所有里面所有的测试方法执行之后运行

通过上面几步 一个模块的ui测试流程基本讲解完成,这个框架的目的就是便于维护,里面也可以添加 api 及 数据源的操作,数据库的关联等,

如何和Jenkins关联呢?

需要在 与src 同目录下新建一个 testng.xml 内容如下:

图片

新建 Jenkins-job 后代码上传到gitlab 上,执行 BaiDuTestng.xml就行(这是和ant 关联);

还有另外一种方法 maven,在pom 里配置相关的testng.xml,如下例子

图片

如何通过ant 和Jenkins 实现 CI 及 maven 和Jenkins实现CI 的操作,下期在做讲解,希望通过此篇文章能给您带来 有用的知识,谢谢!

最后工程的整体目录结构,如下图:

图片

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

​这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关文章:

独立搭建UI自动化测试框架

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 今天给大家分享一个seleniumtestngmavenant的UI自动化,可以用于功能测试,也可按复杂的业务流程编写测试用例,今天此篇文章不过多…...

62,【2】 BUUCTF WEB [强网杯 2019]Upload1

进入靶场 此处考点不是SQL,就正常注册并登录进去 先随便传一个 进行目录扫描,我先用爆破代替 先随便后面写个文件名 为了提供payload位置 www.tar.gz真的存在 返回浏览器修改url就自动下载了 看到tp5,应该是ThinkPHP5框架 参考此博客的思路方法c[强网杯…...

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…...

常见Arthas命令与实践

Arthas 官网:https://arthas.aliyun.com/doc/,官方文档对 Arthas 的每个命令都做出了介绍和解释,并且还有在线教程,方便学习和熟悉命令。 Arthas Idea 的 IDEA 插件。 这是一款能快速生成 Arthas命令的插件,可快速生成…...

Glide加载gif遇到的几个坑

Glide本身支持gif格式的动画加载,但是大多数情况下我们用Glide都是去加载一些静态图片,加载gif动态图的需求不是很多,因此这次使用Glide加载gif就遇到了一些令人匪夷所思的问题 问题一:加载gif图片会有明显的卡顿 通常情况下我们…...

STM32学习之通用定时器

1.1通用定时器介绍 通用定时器具有基本定时器的所有特征,基本定时器只能递增计数,而通用定时器可以递减计数,可以中心对齐计数;也可以触发ADC和DAC,同时在更新事件,触发事件,输入捕获&#xff…...

MiniMax-Text-01——模型详细解读与使用

MiniMax发布了最新的旗舰款模型,MiniMax-Text-01。这是一个456B参数的MOE模型,支持最大4M上下文。今天我们来解读一下这个模型,最后会讲一下模型的使用方式和价格。 先来看整体指标,以下图表分为三块指标,分别是文本能…...

Redis的Windows版本安装以及可视化工具

文章目录 redis安装redis安装包下载解压文件夹启动redis服务Redis路径配置环境变量打开redis客户端进行连接基础操作测试 redis可视化工具下载Redis Desktop Manager redis安装 redis安装包下载 windows版本readis下载:Releases tporadowski/redis 解压文件夹 我…...

tensorflow源码编译在C++环境使用

https://tensorflow.google.cn/install/source?hlzh-cn查看tensorflow和其他需要下载软件对应的版本,最好一模一样 1、下载TensorFlow源码 https://github.com/tensorflow/tensorflow 2、安装编译protobuf(3.9.2) protobuf版本要和TensorFlo…...

第四届机器学习、云计算与智能挖掘国际会议

一、会议信息 会议名称:第四届机器学习、云计算与智能挖掘国际会议(MLCCIM 2025)​​​​​​​ 会议地点:中国漠河 会议时间:2025年7月21-25日 支持单位:佛山市人工智能学会、佛山大学 二、大会主席 …...

#漏洞挖掘# 一文了解什么是Jenkins未授权访问!!!

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

QT QListWidget控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…...

【Vim Masterclass 笔记25】S10L45:Vim 多窗口的常用操作方法及相关注意事项

文章目录 S10L45 Working with Multiple Windows1 水平分割窗口2 在水平分割的新窗口中显示其它文件内容3 垂直分割窗口4 窗口的关闭5 在同一窗口水平拆分出多个窗口6 关闭其余窗口7 让四个文件呈田字形排列8 光标在多窗口中的定位9 调节子窗口的尺寸大小10 变换子窗口的位置11…...

包文件分析器 Webpack Bundle Analyzer

webpack-bundle-analyzer 是一个非常有用的工具,用于可视化和分析 Webpack 打包生成的文件。这使得开发者能够更好地理解应用的依赖关系、包的大小,以及优化打包的机会。以下是关于 webpack-bundle-analyzer 的详细介绍,包括它的安装、使用以…...

代码随想录day14

二叉树的反转,采用迭代,只能用前序和后序遍历 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(i…...

react19新API之use()用法总结

React use() Hook 使用指南 概述 use() 是 React 19 引入的新 Hook,它允许你在组件内部直接使用 Promise、Context 和其他可订阅的值。它是一个更通用的数据获取和订阅机制。 基本语法 const value use(resource);主要用途 1. Promise 处理 function UserDet…...

67,【7】buuctf web [HarekazeCTF2019]Avatar Uploader 2(未完成版)

进入靶场 和上一题一母同胞&#xff0c;先把上一题的答案拖进去看看 区别在于上一题这块直接显示了flag&#xff0c;这里并没有 看看源码 加载不出来&#xff0c;ctrlu <!-- 上传头像的提示信息&#xff0c;说明上传要求 --><p>Please upload a PNG image less th…...

ANSYS HFSS 中的相控天线阵列仿真方法

概述 相控天线阵列系统广泛使用&#xff0c;从国防雷达应用到商业 5G 应用。设计这些天线阵列涉及复杂的数学运算&#xff0c;需要全波仿真。Ansys HFSS 全场 3D 电磁仿真软件可以在合理的时间内以较低的计算成本仿真复杂的相控阵天线系统&#xff0c;同时考虑复杂激励、环境&…...

stm32 L051 adc配置及代码实例解析

一 cude的设置&#xff1a; 1. 接口的基本设置&#xff1a; 2. 参数的设置&#xff1a; 二 代码的逻辑&#xff1a; 1. 上面的直接生成代码&#xff0c;然后使用下面源码即可读到adc的数据&#xff1a; void adc_battery_start(void) {uint32_t ADC_value 0;HAL_ADC_Start(&…...

KUKA示教器仿真软件OfficeLite8.6.2,EthernetKRL3.1.3通信

一、准备软件。 1、vmware17.6.1 2、OfficeLite8.6.2 3、EthernetKRL3.1.3 4、KUKA Router 5、EthernetKRL_Server 通过网盘分享的文件&#xff1a;库卡相关软件 链接: https://pan.baidu.com/s/1NwvR3RVP0edLBeZnnnCYvw 提取码: smys 二、安装vmware17.6.1 1、找到下载…...

高效挖掘论文开源项目的五大实战平台

1. 科研必备&#xff1a;五大开源代码平台全景解析 刚入行AI那会儿&#xff0c;最头疼的就是复现论文。明明算法原理都看懂了&#xff0c;可一动手就发现作者留了"课后习题"——关键实现细节全在"详见代码"四个字里。后来我摸索出一套方法论&#xff1a;与…...

LeetCode 9. 回文数:两种高效解法详解

LeetCode入门级经典题——9.回文数&#xff0c;这道题看似简单&#xff0c;却藏着两种思路截然不同的高效解法&#xff0c;尤其适合刚接触算法的小伙伴巩固基础。话不多说&#xff0c;我们直接进入正题&#xff01; 一、题目回顾 题目很简洁&#xff1a;给你一个整数 x &#x…...

Omni-Vision Sanctuary低代码实践:在Dify平台上快速构建AI应用

Omni-Vision Sanctuary低代码实践&#xff1a;在Dify平台上快速构建AI应用 1. 为什么选择低代码平台构建AI应用 在AI技术快速发展的今天&#xff0c;很多企业都希望将AI能力集成到自己的业务系统中。但传统AI应用开发面临几个主要挑战&#xff1a;开发周期长、技术门槛高、维…...

WaveTools鸣潮工具箱:从游戏卡顿到流畅体验的智能优化方案

WaveTools鸣潮工具箱&#xff1a;从游戏卡顿到流畅体验的智能优化方案 【免费下载链接】WaveTools &#x1f9f0;鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你是否曾因《鸣潮》游戏帧率不稳而错过关键操作&#xff1f;是否在多账号切换时反复调…...

STM32CubeMX配置SenseVoice-Small边缘计算模块

STM32CubeMX配置SenseVoice-Small边缘计算模块 1. 引言 在嵌入式设备上实现语音识别功能一直是物联网和智能设备开发的热点。SenseVoice-Small作为一款轻量级多语言语音识别模型&#xff0c;为边缘计算场景提供了理想的解决方案。本文将手把手教你如何使用STM32CubeMX工具配置…...

DLSS-G转FSR3:突破性技术革命让老款RTX显卡重获新生

DLSS-G转FSR3&#xff1a;突破性技术革命让老款RTX显卡重获新生 【免费下载链接】dlssg-to-fsr3 Adds AMD FSR 3 Frame Generation to games by replacing Nvidia DLSS Frame Generation (nvngx_dlssg). 项目地址: https://gitcode.com/gh_mirrors/dl/dlssg-to-fsr3 在图…...

保姆级教程:如何将你的Simulink控制算法模型“一键”导入RoadRunner进行联合仿真

Simulink与RoadRunner联合仿真实战&#xff1a;从算法验证到3D场景闭环 在智能驾驶系统开发中&#xff0c;算法工程师常常面临一个尴尬局面&#xff1a;精心设计的控制模型只能在二维曲线和数字报表中"纸上谈兵"。当ACC跟车算法需要在复杂路口表现优雅&#xff0c;或…...

seo优化软件有哪些种类_seo优化软件对比

SEO优化软件有哪些种类_SEO优化软件对比 随着互联网的迅猛发展&#xff0c;网站在竞争中占据优势的关键在于其在搜索引擎上的排名。SEO优化软件在这一过程中扮演着不可或缺的角色。SEO优化软件究竟有哪些种类&#xff1f;每种软件又有什么特点呢&#xff1f;本文将详细探讨SEO…...

Godot解包工具完整指南:3分钟提取游戏资源

Godot解包工具完整指南&#xff1a;3分钟提取游戏资源 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker godot-unpacker 是一个专为Godot游戏引擎设计的资源解包工具&#xff0c;能够快速提取非加密的…...

专业术语统计报告_分布式能源系统源储荷耦合特性及主动调控运行策略研究

专业术语统计报告_分布式能源系统源储荷耦合特性及主动调控运行策略研究 一、概要简析 【概要分析】 本文档《分布式能源系统源储荷耦合特性及主动调控运行策略研究》超用心地围绕研究主题展开了系统性探讨哦&#x1f61c;&#xff01;文档总字符数足足有250531&#xff0c;其中…...