四招打造完美分层自动化测试框架,让测试更高效!

写在前面

我们刚开始做自动化测试,可能写的代码都是基于原生写的代码,看起来特别不美观,而且感觉特别生硬。

来看下面一段代码:

图片

具体表现如下:

  • driver对象在测试类中显示

  • 定位元素的value值在测试类中显示

  • 定位元素的方式在测试类中显示

  • 线程方式硬等待sleep几秒

  • 代码一报错,还要去测试类里面找是哪段代码报错,当代吗行数好多时,不好定位

  • 好多测试脚本组装批量执行后,报错后,定位问题,很吃力

有命中的小伙伴嘛,有的话,请在文末下方留言,其他现象就不一一列举了。

为什么要写框架?

1、从个人方面来说:

  • 逼格高,让别人感觉你好厉害,技术强

  • 面试是加分项,会写框架,可以作为谈资硬性指标

  • 一个组内,要是妹纸多,你可以秀技能,吸引妹纸也说不定呢

2、从实际方面来说:

  • 好的测试框架,可以稳定性,健壮性强,可降低代码维护成本

  • 方便定位问题,失败定位问题会比较方便

  • 可以提升测试效率,编写脚本成本,拿来就用,直接点方法就行

如何编写框架

下面我们将进入大家都比较关注的话题了,这里我只分享思路哈,跟上步伐,别掉队哦,

那么如何操作呢?

其实就是体现在封装上,要封装的部分:

  • driver.findElement()

  • By.xpath() ,即用什么方式定位

  • driver.get()

好了,那么现在我们开始吧,部分代码我会附截图

整体工程如图:

图片

1、日志部分

log4j详细配置,百度就好了,这里不做介绍

图片

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:310357728【暗号:csdn999】

2、数据源设计

一般书上流行的Excel,我肯定是不用的,至于为什么,私聊我即可,这里只提供思路。

数据源如下:

图片

3、解析Excel类

第一个类,解析数据源,返回元素对象

图片

图片

4、页面api部分

第二个类,页面api操作

图片

元素和定位方式的分离

图片

api部分截图

图片

5、页面对象

第三个类页面对象

图片

6、读取配置文件信息

第四个类,获取配置文件信息

图片

7、测试类如下

图片

8、运行效果

图片

看上去是不是很nice呢,还不动手试试!!

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

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

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

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

相关文章

Navicat 技术指引 | 适用于 GaussDB 分布式的用户/权限功能

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结…

干货:软文推广中的关键词类别有哪些?

软文推广如果想要增加文案曝光率,seo是其主要的传播方式之一,因而好的关键词十分重要,这里的关键词指得是针对搜索引擎而言,由用户输入搜索引擎框中的提示性文字,只要关键词设置得好,软文就能通过搜索引擎精…

因为 postman环境变量全局变量设置好兄弟被公司优化了!

postman环境变量、全局变量设置 在公司中,一般会存在开发环境、测试环境、线上环境等,如果需要在不 同的环境下切换做接口测试,显然我们需要把所有接口的域名进行修改,如果接 口测试用例较多,那么修改会非常费力&…

springboot(ssm大学生志愿者管理系统 志愿者管理平台 Java系统

springboot(ssm大学生志愿者管理系统 志愿者管理平台 Java系统 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0&#xff…

Python与ArcGIS系列(十五)根据距离抓取字段

目录 0 简述1 实例需求2 arcpy开发脚本0 简述 在处理gis数据的时候,会遇到这种需求:将一个图层与另一个图层中相近的要素进行字段赋值。本篇将介绍如何利用arcpy及arcgis的工具箱实现这个功能。 1 实例需求 为了介绍这个功能的实现,我们需要有一个特定的功能需求。在这里选…

视频号小店怎么选品?选品技巧及思维,教程如下!

我是电商珠珠 开通视频号小店后,除了定类目之外,最终的就是选品了。 很多人不知道怎么选品,特别是新手小白,做起来比较难一些。店铺也会很少有流量进入,没有流量曝光的话,店铺的销量就更不用提了。 我做…

L1-019:谁先倒

题目描述 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或两人同输则继续下…

【Android】Java NIO(New I/O)的`Selector`类来实现非阻塞的Socket监听

如果你不想使用循环来监听客户端的连接和数据,你可以使用Java NIO(New I/O)的Selector类来实现非阻塞的Socket监听。Selector类提供了一种选择一组已经就绪的通道的机制,这样你就不需要使用循环来等待连接和数据。 以下是使用Sel…

Axure网页端高复用组件库, 下拉菜单文件上传穿梭框日期城市选择器

作品说明 组件数量:共 11 套 兼容软件:Axure RP 9/10,不支持低版本 应用领域:web端原型设计、桌面端原型设计 作品特色 本作品为「web端组件库」,高保真高交互 (带仿真功能效果);运用了动态面板、中继…

使用pytorch查看中间层特征矩阵以及卷积核参数

这篇是我对哔哩哔哩up主 霹雳吧啦Wz 的视频的文字版学习笔记 感谢他对知识的分享 1和4是之前讲过的alexnet和resnet模型 2是分析中间层特征矩阵的脚本 3是查看卷积核参数的脚本 1设置预处理方法 和图像训练的时候用的预处理方法保持一致 2实例化模型 3载入之前的模型参数 4载入…

小白理解GPT的“微调“(fine-tuning)

对于GPT-3.5,我们实际上并不能在OpenAI的服务器上直接训练它。OpenAI的模型通常是预训练好的,也就是说,它们已经在大量的语料上进行过训练,学习到了语言的基本规则和模式。 然而,OpenAI提供了一种叫做"微调"…

Pandas操作数据库

一:Pandas读取数据库数据 二:Pandas读取海量数据 三:Pandas向数据库存数据 四:Pandas写入海量数据

理想中的PC端剪切板工具,应该有哪些功能?

在日常工作中,我们经常需要复制和粘贴文本、图片和链接。 首先,这款剪切板功能应该在不使用时不显示窗口,以避免干扰我们的工作。它应该在后台静默记录剪切板历史,以便我们可以随时查看之前的记录。 其次,当我们需要…

A类中创建posix线程,线程间如何通信

如果你在类A中使用pthread_create创建了线程B,而线程B需要与类A进行通信,你可以考虑以下两种方法: 使用回调函数: 在创建线程B时,通过参数传递一个回调函数,该回调函数可以在线程B中执行,并在完…

上海宝山区12月8日发生一起火灾 火势已扑灭 揭秘AI如何“救援”

在这个冬日的早晨,上海宝山区的居民经历了一场惊心动魄的火灾。幸运的是,火势很快就被扑灭了。但这起事件不禁让我们思考:如何更有效地预防和应对这样的紧急情况? 这时候,就不得不提到北京富维图像公司的一项创新技术—…

我的隐私计算学习——国密SM2和国密SM4算法

此篇是我笔记目录里的安全保护技术(七),前篇可见: 隐私计算安全保护技术(一):我的隐私计算学习——混淆电路-CSDN博客 隐私计算安全保护技术(二):我的隐私计…

【JavaWeb】获取WebServlet注解的对象

import javax.servlet.annotation.WebServlet; public class ReflectAnnotation {public static void main(String[] args) throws Exception{//获取servlet类的webServlet的注解内容Class<?>welcomeServletClassClass.forName("SubmitScoreServlet");//判断有…

Spring 装配Bean详解

一、简介 ​ Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系。Spring具有非常大的灵活性&#xff0c;它提供了三种主要的装配机制&#xff1a; 在XML中进行显示配置&#xff1b;在Java中进行显示配置&#xff1b;隐式的bean发现机制和自动装配。 二、…

代码随想录 62. 不同路径

题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff1f; 示例…

支付宝小程序接口传参会默认排序

一&#xff1a;问题 描述&#xff1a;最近项目中的接口都加了签名&#xff0c;在同步到支付宝小程序上时&#xff0c;发现有些接口报错&#xff0c;经过排查&#xff0c;导致报错的原因是因为传参顺序被支付宝小程序默认排序了&#xff0c;比如&#xff1a; 设置的原始参数&a…