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

 🔥 交流讨论:欢迎加入我们一起学习!

🔥 资源分享耗时200+小时精选的「软件测试」资料包

🔥 教程推荐:火遍全网的《软件测试》教程  

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

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

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

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

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

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

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

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

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

二、兼容性问题

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

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

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

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

总结:

做软件测试需要细心,耐心的性格,编码也是需要,我们软件测试人员想要做好自动化测试还是需要不断的专研编程语言,了解语言特性,这样才能在出现问题的时候有方向有思路去解决,多看看开发们写的代码对我们自动化软件测试工程师是有非常大的帮助。

最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!

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

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

相关文章

tensorflow list_files需要注意的点

tensorflow 读取tfrecord的时候 list_files几乎是避不开的函数,在tensorflow的官方文档中写了,list_files 支持正则表达式。 但是这里面有个比较坑的点:我们点开list_files的源码,会发现调用了gen_io_ops.matching_files。这个是t…

【Entity Framework】你必须要了解EF中数据查询之数据加载

【Entity Framework】你必须要了解EF中数据查询之数据加载 文章目录 【Entity Framework】你必须要了解EF中数据查询之数据加载一、概述二、预先加载2.1 包含多个层级2.2 经过筛选的包含 三、显示加载3.1查询关联实体 四、延时加载4.1 不使用代理进行延迟加载 一、概述 Entity…

如何在Python中实现文件读写操作? —— Python文件操作全指南:读写文件的最佳实践

在Python中,读写文件是常见的操作之一。本文将为您提供一些最佳实践,以帮助您在Python中进行文件操作。 打开文件 在Python中,可以使用open()函数打开文件。该函数接受两个参数:文件路径和打开模式。打开模式有许多选项&#xf…

平板拖把头建模

没找到合适的配件,只能自己做了。 difference(){union(){cylinder(11.5,10,10,$fn365);translate([-10,0,0])cube([20,16,11.5]);rotate([0,90,0])translate([-11.5/2,16-3-2,-18])cylinder(2088,3,3,$fn365);}translate([0,0,-1])cylinder(13,2.5,2.5,$fn365); }

飞腾UEFI电源控制选择代码解析

飞腾UEFI电源控制选择代码解析 CPLD 处理方式EC 处理方式注:本文以飞腾UEFI edk-code-4.2.0版本进行说明,如果有朋友需要借鉴,请使用该版本代码。 以D2000打工工具为例,下图打包工具中有选择主板电源管理方式,这里可以选择CPLD、EC、和SE,其中SE代表为X100控制上下电时序…

arm中模/数转换器工作原理以及I2C工作原理

ADC介绍 什么是ADC ADC就是模拟到数字转换器(Analog-to-Digital Converter)的缩写。 它是一种电子设备或模块,S3C2440内部拥有一个ADC外设。用于将连续变化的模拟信号转换为离散的数字信号,以便数字系统(如微处理器、微控制器等)能够对其进行处理和分析。 模拟信号:一…

用Gold-yolo模块改进yolov8模型

gold-yolo论文: https://arxiv.org/pdf/2309.11331.pdf gold-yolo代码: https://github.com/huawei-noah/Efficient-Computing/tree/master/Detection/Gold-YOLO 一 gold模块简介 Gold-Yolo是华为诺亚方舟实验室2023年发布的工作,主要优化检…

护网行动 | 蓝队应急响应流程概述

了解蓝队应急响应的流程 应急响应通常是指为了应对各种意外事件发生前所做的准备,以及在意外事件发生后所采取的措施。 网络安全应急响应是指对已经发生或可能发送的安全事件进行监控、分析、协调、处理、保护资产安全。 网络安全应急响应主要是为了让人们对网络安全…

新拉取的解决方案,dotnet build初始化后重新生成报MSB4018 “GenerateStaticWebAsssetsPropsFile”任务意外失败

拉取abp新解决方案后,执行初始化dotnet build--生成项目和所有的依赖 但是生成仍然报错: 错误 MSB4018 “GenerateStaticWebAsssetsPropsFile”任务意外失败。 System.IO.DirectoryNotFoundException: 未能找到路径“E:\TZKJNet\绿色建材\greeni…

【深度学习】执行wandb sync同步命令报错wandb: Network error (SSLError), entering retry loop

执行wandb sync同步命令报错wandb: Network error (SSLError), entering retry loop 在代码中设置wandb offline的命令 os.environ["WANDB_API_KEY"] "API keys" os.environ["WANDB_MODE"] "offline"日志文件生成后,使…

sqlilabs靶场1—20题学习笔记(思路+解析+方法)

前几个题目较为简单,均尝试使用各种方法进行SQL注入 第一题 联合查询 1)思路: 有回显值 1.判断有无注入点 2.猜解列名数量 3.判断回显点 4.利用注入点进行信息收集 爆用户权限,爆库,爆版本号 爆表,爆列&…

基于springboot的医护人员排班系统

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了医护人员排班系统的开发全过程。通过分析医护人员排班系统管理的不足,创建了一个计算机管理医护人员排班系统的方案。文章介绍了医护人员排班系统的系统分…

每日一题(PTAL2-006):树的遍历--树的构建,队列

因为要层序遍历&#xff0c;所以我们可以考虑构建一颗二叉树。构建完只有利用队列就可以就行层序遍历。 #include <bits/stdc.h> using namespace std; int p1[35]; int p2[35]; typedef struct Tree {int val;struct Tree* left;struct Tree* right; }TT; typedef TT* …

steam怎么退款?steam退款教程?简单几步即可轻松实现退款

steam怎么退款&#xff1f;steam退款教程&#xff1f;简单几步即可轻松实现退款 说到steam平台大家肯定不会陌生&#xff0c;随着现代的发展&#xff0c;在steam上进行购买游戏已经成了很普遍的东西&#xff0c;但是许多玩家在购买游戏试完之后发现游戏并不符合自己的胃口&…

傅里叶变换例题

目录 傅里叶转化例题: 时移 频移 尺度 时域卷积性质:卷积==乘机

软考证书有用吗?软考证书的含金量大吗?

一、以考代评 通过考试并获得相应级别计算机专业技术资格&#xff08;水平&#xff09;证书的人员&#xff0c;表明其已具备从事相应专业岗位工作的水平和能力&#xff0c;用人单位可根据《工程技术人员职务试行条例》有关规定和工作需要&#xff0c;从获得计算机专业技术资格…

C#创建磁性窗体的方法:创建特殊窗体

目录 一、磁性窗体 二、磁性窗体的实现方法 (1)无标题窗体的移动 (2)Left属性 (3)Top属性 二、设计一个磁性窗体的实例 &#xff08;1&#xff09;资源管理器Resources.Designer.cs设计 &#xff08;2&#xff09;公共类Frm_Play.cs &#xff08;3&#xff09;主窗体 …

Android retrofit

目录 一.简介 二.基本使用 三.注解 四.转换器 五.适配器 六.文件上传与下载 一.简介 A type-safe HTTP client for Android and Java。封装了OkHttp&#xff0c;也是由Square公司贡献的一个处理网络请求的开源项目。 square/retrofit: A type-safe HTTP client for Andr…

【TileServer GL】TileServer GL官方文档翻译

官方文档&#xff1a; maptiler-tileserver: https://maptiler-tileserver.readthedocs.io/en/latest/index.html TileServer GL: https://tileserver.readthedocs.io/en/latest/index.html TileServer GL 说明 1 安装Dockernpm使用npm.js全局安装从源代码本地安装本机依赖项 t…

33. 搜索旋转排序数组 --力扣 --JAVA

题目 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], ..., nums[n-1], nums[0], nums[1]…