都2024年了,软件测试面试都问什么?

1、最熟悉的 selenium 操作?

  基本上 selenium 提供的一下几大类操作都能够灵活使用,比如说:八大元素定位方式、三大等待方式、用户点击、输入等常见操作、

  还有窗口切换、iframe 切换操作,比如说 actionchains 文件上传、JS操作 等一些复杂问题的操作;

  对于 selenium 还没有提供现场封装方法的话 会查阅 W3C 组织提供的 webdriver 标准进行自己进行捕捉;

  2、selenium 中登录按钮除了 click 还有什么方式?

  还有这两种方式:比如说要用到 物理键盘进行操作,发出回车指令;然后,如果说这个登录按钮,在一个表单里面的话,也可以在定位到这个用户输入框,输入完了之后,直接用3D 方法进行提交

  3、PO 模式的封装原则有哪些?

  selenium 在官方的 wiki 上面给我们提供了六个原则,实际测试过程中可以这么理解:

  第一个原则是,公共方法表示页面提供的一个服务,比如我们可以把 登录封装成一个 logo 的方法,把搜索方法封装成一个设施方法,把注册操作封装成一个 register 的方法;

  第二个原则是,尽量不要暴露页面的内部;比如说一个HTML的页面还有一个页面的上下结构;

  第三个原则是,在 PO 当中一般不做断言,会做到页面逻辑和测试逻辑的分离

  第四个原则是,PO 一般里面的方法返回 self 或者是其他的 Page Object 也可以是一个元素属性

  第五个原则是,整个 PO 你不需要封装整个页面的行为,用到什么逻辑就封装什么

  第六个原则是,对于统一操作,如果出现不同的结果,可以把用不同的方法来表示,比如说登录成功有跳转,登录失败有报错,

  如果登录还有一种会授权的状况,那么可以封装成三个单独的方法:login success、login error、login invalid

  4、Python 中的小整数池你有了解过吗?

  小整数池 是指在运行 Python 程序的时候,Python 解释器会自动创建,负 5 到 256 之间的整数对象,保存到缓存里面,也就是我们所说的小整数池;

  当程序中将这些整数复制给变量的时候,那么 Python 解释器,就会不断重新去分配内存去创建这个对象了,而是直接引用,已经创建好的缓存里面的对象;

  小整数池这个设计的初衷是为了优化程序的运行效率,需要相同的整数的时候,直接从这个整数池里面拿出来就可以用,可以避免频繁去创建和销毁这个对象,提升效率、节约内存;

  5、Xpath 和 CSS 选择器有什么区别?

  CSS 的写法会简单一点,xpath 会相对复杂一些,在主流浏览器中,CSS 的解析的效率更高一点,查找的速度会更快;

  Xpath 支持的函数更多,操作的方式灵活功能会强大一点,对于复杂的元素定位,xpath 反而会更加简洁;

  CSS 它不支持 文本定位;Xpath 是支持文本定位的;

  6、需要鉴权的接口,你是如何处理的?

  首先,确认一下接口是采用什么方式进行的鉴权的,是 cookie_session 还是 token ;

  如果是 cookie_ session 的方式,那么可以直接用 requests 模块里面的 session 类去创建一个对象直接发送请求,它会自动记录 cookie 信息;

  如果是 token ,那么先分析 token 是怎么返回的,然后提取对应的 token 的值,在发送请求的时候需要根据需求传入这个 token ;

  7、UI 自动化中常用的等待方式?

  UI 自动化测试当中等待的方式 主要有三种:

  第一种,强制等待,一般情况下我们不太使用;他主要用的场景在于不同系统交互的地方;

  第二种,隐式等待:这种等待比较智能,它可以通过全局配置,但是智能用于元素定位;

  第三种,显示等待:是 selenium 当中比较灵活的一种等待方式;他的实现原理,其实是通过 while 循环不停的尝试需要进行的操作;

  8、find_element() 和 find_elements() 有什么区别?

  find_element() :返回找到的第一元素,如果找不到的话会直接报错;

  find_elements() :会返回所有符合条件的元素,放到一个列表里面;如果找不到的话也不会报错,返回的是一个空列表;

  9、什么是 XPATH ?

  Xpath 是 XML 路径语言(XML Path Language),可以用来查询各个网页当中的元素位置,我们在自动化测试过程中呢,可以对 网页 和 APP 页面的元素进行精准定位

  然后在爬虫领域可以对页面结构进行灵活的解析

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

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

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

相关文章

网站开发--详解Servlet

💕"Echo"💕 作者:Mylvzi 文章主要内容:网站开发–详解Servlet 一.基本介绍 tomcat是Java中开发服务器的重要的一个工具,任何开发的服务器都要部署在tomcat之上,可以说tomcat是所有服务器的底座,为了更好的操作http,to…

Pom文件中的scope到是什么作用

在 Maven 的 pom.xml 文件中&#xff0c;<scope> 标签用于定义依赖项的作用域。作用域决定了依赖项的生命周期、可见性和使用范围。<scope> 标签的常用值包括&#xff1a; 1. **compile**&#xff08;默认值&#xff09;&#xff1a;编译依赖在所有 classpath 中都…

golang学习3,golang 项目中配置gin的web框架

1.go 初始化 mod文件 go mod init gin-ranking 2.gin的crm框架 go get -u github.com/gin-gonic/gin 3.go.mod爆红解决

【Redis】redis通用命令

redis连接命令 要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前安装redis 的src目录下&#xff0c;具体为/usr/local/redis/src。注意此redis实例没有设置密码&#xff0c;如果设置了密码需要先使用命令AUTH执行验证或者开始在命令行中通过-a指定。 …

前后端分离Vue+node.js在线学习考试系统gqw7o

与其它应用程序相比&#xff0c;在线学习平台的设计主要面向于学校&#xff0c;旨在为管理员和学生、教师、院系提供一个在线学习平台。学生、教师、院系可以通过系统及时查看公告信息等。 在线学习平台是在Windows操作系统下的应用平台。为防止出现兼容性及稳定性问题&#xf…

B站项目-基于Pytorch的ResNet垃圾图片分类

基于Pytorch的ResNet垃圾图片分类 数据集预处理 画图片的宽高分布散点图 import osimport matplotlib.pyplot as plt import PIL.Image as Imagedef plot_resolution(dataset_root_path):image_size_list []#存放图片尺寸for root, dirs, files in os.walk(dataset_root_pa…

装配制造业的MES系统种的物料齐套技术

装配是制造企业涉及产品生产加工最为普遍的一种模式&#xff0c;包括汽车、电子、电器、电气等行业。经研究表明&#xff0c;装配在整个产品制造总成本中所占比例超过了50%&#xff0c;所占用的总生产时间比例在40%-60%&#xff0c;直接影响着产品质量和成本。装配制造非常强调…

树-王道-复试

树 1.度&#xff1a; 树中孩子节点个数&#xff0c;所有结点的度最大值为 树的度 2.有序树&#xff1a; 逻辑上看&#xff0c;树中结点的各子树从左至右是有次序的&#xff0c;不能互换。 **3.**树的根节点没有前驱&#xff0c;其他节点只有一个前驱 **4.**所有节点可有零个或…

Leetcoder Day23| 回溯part03:组合+分割

语言&#xff1a;Java/Go 39. 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的所有不同组合 &#xff0c;并以列表形式返回。你可以按任意顺序返回这些组合。 candidates 中的同一个…

机器学习是什么

机器学习是什么 引言 机器学习&#xff08;Machine Learning&#xff0c;简称ML&#xff09;是人工智能&#xff08;AI&#xff09;领域中的重要分支&#xff0c;旨在通过让计算机系统自动学习和适应&#xff0c;不需要明确的编程指导。机器学习的发展为我们提供了一种新的方…

环形光源让图像质量瞬间提升,一探究竟吧!

光源对机器视觉检测系统的性能起着重要作用,精确的光学结构设计可以提高捕获图像的质量,准确地分离目标和背景信息,不充足的光线会使捕捉到的图像无法满足需求&#xff0c;针对不同的检测对象,不同的形状光源应运而生。我们来看看最常用的LED光源之一—环形光源。 环形光源&…

代码随想录算法训练营day41 | 01背包问题 二维、01背包问题 一维、416. 分割等和子集

背包问题的理论基础重中之重是01背包 01背包问题 二维 二维dp的01背包 确定dp数组以及下标的含义&#xff1a;dp[i][j]表示从下标为[0-i]的物品里任意取&#xff0c;放进容量为j的背包&#xff0c;价值总和最大是多少确定递推公式&#xff1a;dp[i][j] max(dp[i - 1][j], d…

vue3 使用pina

一、Vue 3 项目中集成Pina 状态管理库 要在 Vue 3 项目中使用 Pina&#xff08;Vue 3 状态管理库&#xff09;&#xff0c;您可以按照以下步骤操作&#xff1a; 1. 安装 Pina 库相应的插件&#xff1a; yarn add pinia # 或者使用 npm npm install pinia 2. 在您的 Vue 3 项…

电脑休眠之后唤不醒

现象&#xff1a;午休时间电脑休眠了&#xff0c;醒来之后发现在密码输入界面&#xff0c;但鼠标键盘没反应。按重启键或电源机重新开机&#xff0c;结果开不了机。 原因&#xff1a;1、内存条脏了&#xff0c;导致内存条读取失败 2、休眠的时候硬盘休眠了&#xff0c;导致按…

如何在 CentOS 中配置 SSH 服务的 TCP 端口转发

在 CentOS 系统中&#xff0c;SSH&#xff08;Secure Shell&#xff09;服务提供了强大的功能&#xff0c;其中之一就是 TCP 端口转发。通过此功能&#xff0c;我们可以安全地将本地或远程服务器上的端口流量转发到其他主机上。本文将引导您如何在 CentOS 中启用或禁用 SSH 的 …

AngularJS安装版本问题

一、安装 Angular CLI 脚手架安装命令&#xff1a; npm install -g angular/cli 在安装前请确保自己安装NodeJS环境版本为V18及以上&#xff0c;否则会因node版本问题导致项目无法正常运行。 脚手架安装后&#xff0c;已提示了当前node版本必须为18.13.0或大于20.9.0版本&…

git之分支管理

一.理解分支 我们看下面这张图片&#xff1a; 在版本回退⾥&#xff0c;你已经知道&#xff0c;每次提交&#xff0c;Git都把它们串成⼀条时间线&#xff0c;这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前&#xff0c;只有⼀条时间线&#xff0c;在Git⾥&#xff0c;这个分⽀…

javaScript打印n以内的素数——试除法及优化

素数&#xff1a;只能被1和它本身整除 试除法 试除法的时间复杂度为O(n*sqrt(n))&#xff0c;空间复杂度为O(1)&#xff0c;这已经是一种比较高效的解决方案了。 n如果不是质数&#xff0c;那么能整除的数一定与根号n。基于此缩小循环比较范围&#xff0c;并且一旦找到可以整除…

数字签名在游戏里的应用

数字签名是一种电子形式的签名,用于验证数字文档、消息或交易的真实性和完整性。它是基于公钥加密技术,通过使用发送者的私钥来签名文档,然后使用发送者的公钥验证签名的正确性。数字签名不仅能证明信息没有被篡改,也能证明信息的发送者是真实的,因此在很多安全敏感的应用…

2024年 前端JavaScript入门到精通 第四天 笔记

4.1 函数的基本使用以及封装练习 ★ 函数命名规范 4.2 函数的参数以及默认参数 函数的灵魂&#xff01;&#xff01;&#xff01; 4.3 函数封装数组求和案例 4.4 函数返回值return 4.5 函数返回值细节以及上午总结 4.6 函数返回值案例-求最大值和最 4.7 函数复习以及断点进入函…