自动化测试常见的三大问题及解决方案

news2024/12/26 12:50:40

各位小伙伴们,大家好,今天给大家带来的是关于自动化测试常见的三大问题及解决方案,希望给遇到这三大问题的你一些帮助

一,就是我们定位元素的时候,定位不到或有时定位得到,有时定位不到。

特别是喜欢复制粘贴xpath路径的小伙伴们来说老是出现这个问题。我们来分析一下为什么会出现这种情况,然后我们就知道怎么解决这个问题了。

会出现这个定位不到元素的情况,因素有很多个,需要我们一一排查。有服务器的问题,有动态id问题,有元素属性问题,有iframe问题,有页面操作逻辑问题,当然也有你自己写错问题。

服务器问题最有可能出现有时能定位,有时定位不到的问题,你定位到了是因为服务器已经把元素返回到客户端了,你就定位到了。你定位不到,是因为你运行你的自动化测试脚本的时候,服务器还没有把你需要定位的元素返回到客户端,所以你定位不到,这种情况我们可以采取多等待元素出现的时间或判断元素是否出现再去定位。

如果你是通过id去定位的,那么要关注一下这个id是否是动态的,如果是,那么就换别的定位方法去定位,最快解决这个问题。

还有一种情况,这个元素在你定位的时候是隐藏的,这样你也定位不到。Iframe的问题是你没有切换进入iframe中,这种情况比较容易发现。

页面操作逻辑问题也会让你定位不到元素,也就是说必须要先出现其他元素或你要先操作一些步骤,你需要定位的元素才能出现,还有一种情况,你直接复制xpath,得到的是绝对路径,然后运行的过程中这个路径无效了,你也定位不到元素。

二、兼容性问题

你编写的自动化测试脚本用在用火狐浏览器打开的网站进行测试没有问题,但遇到用谷歌浏览器打开的网站进行测试就出现了问题。

这种情况就是你的自动化测试脚本中没有深层次的区分判断浏览器的品种问题,这个需要你仔细分析2种浏览器带来的不同地方,然后针对性的修改你的自动化测试脚本,在脚本中多写预判,多写容错机制。

三、封装定位函数的时候,定位不了元素了,单独拿出来可以定位,一封装到函数中,就定位不了。

这种情况大部分是参数输入到函数中被改变了,参数来一段字符串,然后进入到函数内,发现这个字符串变了,特别是直接把定位元素某个值,直接传入到参数中,特别容易出问题。建议定义变量储存这个字符串,然后通过变量传递到函数内,然后在函数内再次验证这个字符串,如果ok再进行元素定位,如果不ok,就要想办法处理字符串,处理成你想要的结果。


             【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通


二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

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

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

相关文章

策略模式(Strategy)

定义 策略是一种行为设计模式,它能让你定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象能够相互替换。 前言 1. 问题 你打算为游客们创建一款导游程序。该程序的核心功能是提供美观的地图,以帮助用户在任何城市…

数据结构 手撕顺序表(动态版)+代码详解

⭐️ 顺序表介绍 顺序表是线性表的一种。 🌠什么是线性表呢? 线性表是数据结构的一种,一个线性表是 n n n个具有相同特性的数据元素的有限序列。常见的线性表:顺序表、链表、栈、队列、字符串… 🌠什么是顺序表呢&…

Docker + Wasm = 王炸!!!

Docker 宣布推出与 WebAssembly 集成 (DockerWasm) 的首个技术预览版,并表示公司已加入字节码联盟 (Bytecode Alliance),成为投票成员。 Bytecode Alliance(字节码联盟)由 Mozilla、Fastly、Intel 与 Red Hat 联合成立&#xff0c…

Redis的优化(二)

Redis的高可用 一、主从复制优化主从复制的作用主从复制流程主从复制实验 二、Redis 哨兵模式哨兵模式的作用故障转移机制主节点的选举原则哨兵模式的实验 三、Redis群集模式集群的作用Redis集群的数据分片搭建Redis群集模式实验 ●主从复制:主从复制是高可用Redis的…

路由协议基本术语

文章目录 1、自治系统AS2、EGP和IGP3、度量标准和度量值4、管理距离5、路由协议与路由算法6、路由环路问题 1、自治系统AS Internet中,自治系统就是处于同一个管理机构(如一个ISP)控制下的路由器和网络群组 在同一个自治系统中的所有路由器…

Python3 标准库概览 | 菜鸟教程(十八)

目录 一、Python3 标准库中的模块 (一)os 模块 (二)sys 模块 (三)time 模块 (四)datetime 模块 (五)random 模块 (六)math 模块…

RabbitMQ笔记(持续更新中~)

1.消息队列 1.1 MQ的相关概念 1.1.1 什么是MQ MQ(message queue),从字面上看,本质是个队列,FIFO先进先出,只不过队列中存放的内容是消息而已,还是一种跨进程的通信机制,用于上下游…

Pandas之Series(一)

Hi😊😊~大家好呀~最近两天釉色酱在学习python中的数据分析的一个基本库——pandas。今天就先学习pandas中最基本的数据结构Series。下面我们一起进入Series的世界吧!😝 Pandas简介: Pandas是一种基于Python语言的快速…

sklearn.model_selection模块介绍

数据集划分方法 train_test_split train_test_split(*arrays, test_sizeNone, train_sizeNone, random_stateNone, shuffleTrue, stratifyNone)参数包括: test_size:可选参数,表示测试集的大小。可以是一个表示比例的浮点数(例…

Android:ViewPager2

简介 ViewPager2内部使用RecyclerView实现,并提供了增强功能 特性 支持水平、垂直方向布局 android:orientation “vertical” 支持从右到左 android:layoutDirection “rtl” 禁止滑动 setUserInputEnabled() 可修改Fragment集合 对可修改的Fragment集合进行分…

深入探究Bean生命周期的扩展点:Bean Post Processor

概要 在Spring框架中,Bean生命周期的管理是非常重要的一部分。在Bean的创建、初始化和销毁过程中,Spring提供了一系列的扩展点,使开发者能够在不破坏原有功能的基础上,对Bean的生命周期进行定制化操作。其中,Bean Post…

LLM记录202304-202306

RLHF RAFT RAFT: Reward rAnked FineTuning for Generative Foundation Model Alignment code RRHF RRHF: Rank Responses to Align Language Models with Human Feedback without tears code p i = ∑ t lo

English Learning - L3 作业打卡 Lesson7 Day53 2023.6.28 周三

English Learning - L3 作业打卡 Lesson7 Day53 2023.6.28 周三 引言🍉句1: It was this moment that I asked myself that life-defining question:成分划分同化连读爆破语调 🍉句2: If my life were a book and I were the author, how would I want t…

基于Web的小学学科数字教学资源管理系统

摘要 小学学科数字教学资源管理是一个典型的学习项目,从教学资源、教材信息的统计和分析,在过程中会产生大量的、各种各样的数据。本文以小学学科数字教学资源管理系统为目标,采用B/S模式,以Springboot为开发框架,java…

计算机网络面经之TCP三次握手和四次挥手的详解

常见问题 1.详细描述三次握手和四次挥手的过程。 2.三次握手可以变成两次握手吗? 3.简述 TCP 连接和关闭的状态转移。 4.简述TCP 四次挥手的 TIME_WAIT状态,以及为什么需要有这个状态 重要的字段定义与作用 (1)序号(sequence nu…

循环双链表

目录 双向循环链表结构体初始化函数添加数据头插删除数据显示函数示例程序一(简易版本):运行结果:示例程序二输出结果: 双向循环链表 结构图示: 结构体 typedef struct node {int data;struct node* pre; //指向前驱struct …

C++迭代器

目录 1.iterator 2.数组 1.iterator 迭代器就是个内置指针&#xff0c;可以 -- &#xff0c;可以解引用。 迭代器分两种类型 iterator 和const_iterator&#xff08;只读&#xff0c;不能修改&#xff09; 迭代器要用作用域限定类型 vector<int>::iterator it; 如果不限制…

Yarn的实现原理详解

概要 Yarn作为分布式集群的资源调度框架&#xff0c;它的出现伴随着Hadoop的发展&#xff0c;使Hadoop从一个单一的大数据计算引擎&#xff0c;成为一个集存储、计算、资源管理为一体的完整大数据平台&#xff0c;进而发展出自己的生态体系&#xff0c;成为大数据的代名词。 Ya…

C++11新特性 智能指针

智能指针 nuique_ptr特点不允许拷贝构造和赋值运算符重载-> () *unique_ptr 删除器仿写删除文件删除普通对象 shared_ptr特点示意图仿写shared_ptr删除器部分特化拷贝构造 移动构造 && 左值赋值 和移动赋值完整实现 weak_ptr特点weak_ptr 实现解决循环引用弱指针一个…

java: 警告: 源发行版 11 需要目标发行版 11解决方案

出现这样的问题首先检查一下自己的项目结构是否使用的对应的jdk 如果这里是正确的&#xff0c;之后查看一下自己的pom文件中是否指定了正确的jdk 这里的时候你改完运行就会发现还会报错&#xff0c;一定要记得刷新一下maven 再重新启动项目&#xff0c;即解决