20道经典自动化测试面试题【建议收藏】

news2024/11/15 9:50:29

概述

觉得自动化测试很难?

是的,它确实不简单。但是学会它,工资高啊!

担心面试的时候被问到自动化测试?

嗯,你担心的没错!确实会被经常问到!

现在应聘软件测试工程师的岗位,几乎所有的公司都要求会自动化测试!那么,在面试的时候哪些问题会被面试官经常问到?哪些问题是面试官真正关心的?

下面通过20道经典自动化测试面试题。让你能够在面试的时候轻松应对,也让你在学习自动化测试的时候明白应该关注哪些内容,而不仅仅只是会调用接口模拟输入和点击操作!

基础题

1、web自动化时,定位元素的方式有哪些?

答:web自动化有8种元素定位方式。与name有关的有3种:name、class_name、tag_name与link相关的有两种:link_text、partitial_link_text。还有一种是用id来定位。剩下两种是xpath和css定位,它们用元素路径来定位的。

如果元素存在id属性,我一定使用id,因为简单方便,定位最快。其次是Xpath和css,因为很多情况下html标签没有id属性。

2、如何去定位属性动态变化的元素?

答:先去找该元素不变的属性,要是都变,那就找不变的父元素,用层级定位(以不变应万变)

3、启动浏览器的时候用到的是哪个webdriver协议?

答:http协议

4、XPath中使用单斜杠和双斜杠有什么区别?

答:单斜杠表示用绝对路径定位,双斜杠表示用相对路径定位。绝对路径就是从html根目录开始表示的元素路径。相对路径就是选择一个元素作为参考点,相对这个参考点元素开始表示的元素路径。

5、Selenium中有哪些验证点?

答:Selenium主要有3种验证点

① 检查页面标题

② 检查某些文字

③ 检查某些元素(文本框,下拉菜单,表等)

6、如何清除中文本框的内容?

答:使用clear()方法

driver.find_element().clear()

7、如何模拟浏览器的前后移动?

答:

driver.back() # 后退

driver.forward() # 前进

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

答:两个都是查找元素的方式

findelement()查找一个页面元素,只会返回WebElement对象

findelements()查找页面是所有符合匹配的元素,返回元素集合

9、如何判断case是否通过?

答:使用断言,与预期结果比较

10、等待元素加载的方式有几种?

答:有3种,强制等待、隐式等待、显式等待

进阶题

1、定位不到元素怎么办?

答: 

① 检查日志,确认当前页面有没有这个元素

② 如果有,检查定位方式有没有写错

③ 如果还没解决,检查元素是否在内联框里 如果在内联框里,需要先切换到内联框里再定位元素。操作完元素记得退出内联框

2、如果遇到验证码,需要这么处理?

答:① 让开发取消测试环境的验证码

② 让开发设置万能验证码(使用复杂的其他人无法猜到的验证码)

③ 如果是图像验证码,可以使用图像识别技术(难度大,准确率不高)

④ 先手动输入登录系统,保留登录成功的cookie。通过cookie绕过验证码

⑤ 让开发给验证码的数据库权限,从数据库中获取

3、遇到弹窗无法导致无法继续下一步操作怎么办?

答:

① 如果是JavaScript弹框,先通过switch_to.alert定位到JS弹框,再调用accept、dismiss等方法处理JS弹框

② 如果是系统某个操作步骤的提示框,可以点击关闭按钮,或者按提示操作即可

4、怎么切换浏览器窗口?

答:可以通过window_handles方法获取所有窗口的句柄。然后遍历句柄,使用switch_to.window()方法切换窗口,通过窗口title判断是否是目标窗口

例如,

  1. handels = driver.window_handles

  2. for handle in handles:

  3.     driver.switch_to.window(handle)

  4. if driver.title=="千锋教育":

  5. # 如果是目标窗口,退出循环

  6.         break

5、怎么实现拖拽元素的操作?

答:ActionChains类提供了模拟鼠标操作,如双击,右击,拖拽,悬停等操作

  1. # 先导入 ActionChains类,并创建对象

  2. from selenium.webdriver.common.action_chains import ActionChains

  3. actions = ActionChains(driver)

  4. # 具体操作,将动作加入任务列表

  5. source = driver.find_element()

  6. target = driver.find_element()

  7. action.drag_and_drop(source,target) # 拖拽

  8. # 处理任务列表

  9. action.perform() # 依次执行任务列表中的所有操作

设计思路

1、什么是page object设计模式? 

答:

① 通俗来讲,把每个页面当成一个页面对象,页面层写定位元素方法和页面操作方法

② 用例层从页面层调用操作方法,写成用例

③ 可以做到定位元素与脚本的分离

2、page object设置模式中,是否需要在page里定位的方法中加上断言?

答:不需要,page页只做元素抓取和操作方法

3、你的自动化用例的执行策略是什么?

答:

① 自动化测试用例是用来监控的。集成到jenkins,创建定时任务定时执行;

② 有些用例在产品上线前必须回归。jenkins上将任务绑定到开发的build任务上,触发执行;

③ 有些用例不需要经常执行。jenkins创建一个任务,需要执行的时候人工构建即可。

4、什么是数据驱动框架?它与关键字驱动框架有什么不同?

答:数据驱动框架中,测试用例逻辑驻留在测试脚本中。测试数据被分离并保存在测试脚本之外。测试数据是从外部文件(如Excel)中读取的,并被加载到测试脚本中的变量中。变量用于输入值和验证值。

关键字驱动需要开发数据表和关键字。它们独立于执行它们的测试自动化工具。可以使用或不使用应用程序来设计测试。在关键字驱动的测试中,被测试的应用程序的功能记录在一个表格中,以及每个测试的分步说明。

5、你觉得自动化测试最大的缺陷是什么?

答:

① 不稳定

② 可靠性不强

③ 不易维护

④  成本与收益

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

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

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

圆锥曲线练习

设 A ( x 1 , y 1 ) , B ( x 2 , y 2 ) A\left( x_{1}, y_{1} \right), B\left( x_{2}, y_{2} \right) A(x1​,y1​),B(x2​,y2​) l : y k ( x 2 ) l: y k\left( x2 \right) l:yk(x2) 显然 y 0 y0 y0符合题意 当 k ≠ 0 k\neq 0 k0 联立 l l l和 C C C ( k 2 1 2 ) x…

基于SpringBoot+Vue+MySQL的校园周边美食探索及分享平台

系统背景 在当今数字化时代,校园生活正日益融入信息技术的浪潮之中,学生们对于便捷、高效且富有趣味性的生活方式有着越来越高的追求。特别是在饮食文化方面,随着校园周边餐饮业态的日益丰富,学生们渴望一个能够集美食探索、分享与…

SpringBoot入门(黑马)

1. SpringBootWeb入门开发 需求:使用SpringBoot 开发一个web 应用,浏览器发起请求 /hello 后,给浏览器返回字符串"Hello World~"。 步骤: 1. 创建springBoot工程,并勾选web开发相关依赖。 2. 定义 HelloCo…

iOS——strong和copy的底层实现

copy和strong的区别 有如下代码: #import "Person.h"interface Person ()property (nonatomic, strong) NSString *strStrong; property (nonatomic, copy) NSString *strCopy;endimplementation Person- (void) go {NSMutableString *newStr [NSMutab…

【前端】 flex布局详解

Flex布局开启,在编写之前,我们要先搞清楚一个问题,就是你要让谁开启flex布局?我们要开启flex布局的最终目的一定是为了让某几个元素进行规范化布局,那如果你单独写在某个元素身上,那它的兄弟元素也不知道自…

【FPGA XDMA AXI Bridge 模式】PCIe:BARs 和 AXI:BARs 含义解析

XDMA IP核两种模式 Xilinx的 DMA/Bridge Subsystem for PCI Express IP核中,支持普通的XDMA模式,但是这种模式只允许主机端发起PCIe 读写请求,FPGA内部无法主动发起读写请求,也即FPGA无法主动读写HOST的内存。 而该IP核的另一种…

超分论文ESPCN解读

论文地址:Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network 相关知识点总结: 许多SR技术的一个关键假设是,大部分高频数据是冗余的,因此可以从低频分量中准确重建…

IIC时序(通俗易懂版,嘎嘎简单)

介绍 简述:IIC总线就是一个两根线的规则(半双工),规定通信双方如何传送数据,至于传送数据,无非就是主机给从机发送数据,或者从机给主机发送数据,其中加了一点发过去的数据有没有回应…

佰朔资本:大宗交易是什么?出现大宗交易意味着什么?

大宗生意,又叫作大宗生意,是指抵达规则的最低限额的证券单笔生意申报,生意两边经过协议达到共同并经生意所招认成交的证券生意。 出现大宗生意,说明该股票的整体体现弱于商场均匀体现,且主力正在减仓或许出货。大宗生…

charles使用ssl证书抓包https请求失败解决方案

前提 手机必须有root权限,并且是使用Magisk(面具)进行root; ssl证书安装 安卓7.0以下的手机,ssl证书是直接安装到了‘系统证书’里,可以直接抓取https请求,但是目前的手机大部分都是7.0以上的&#xff1…

第17章.RCC-STM32时钟配置

目录 0. 《STM32单片机自学教程》专栏 17.1 STM32时钟树 17.1.1 时钟源 17.1.2 锁相环PLL 17.1.3 系统时钟 17.1.3.1 系统时钟SYSCLK 17.1.3.2 AHB/APB总线时钟 17.1.3.3 其他时钟 17.1.3.4 MCO 时钟输出 17.2 系统时钟库函数 17.3 系统时钟配置练习 …

Python基础语法(1)上

常量和表达式 我们可以把 Python 当成一个计算器,来进行一些算术运算。 print(1 2 - 3) print(1 2 * 3) print(1 2 / 3) 这里我们可能会有疑问,为什么不是1.6666666666666667呢? 其实在编程中,一般没有“四舍五入”这样的规则…

C++入 门——“多态”

一、多态 多态是面向对象的一个重要特性,它允许程序在运行时通过传入不同对象而呈现出不同的运行结果,比如同样的采访,询问老师的年龄和学生的年龄最后得到的结果是不一样的,这就呈现出一种多态。 多态分为两种:静态多…

鸿蒙OpenHarmony【轻量系统芯片移植】内核移植

移植芯片架构 芯片架构的移植是内核移植的基础,在OpenHarmony中芯片架构移植是可选过程,如果当前OpenHarmony已经支持对应芯片架构则不需要移植操作,在“liteos_m/arch”目录下可看到当前已经支持的架构,如表1: 表1 …

2024年全国大学生软件测试大赛赛项安排(一)

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…

怎么选择靠谱AI论文生成工具?看完我的试用都会明白!

2024年上半年开始AI论文写作工具开始火了,层出不穷!作为一个经常需要写论文的懒人,我非常好奇这些AI工具的实际效果到底怎么样?为了测试不同工具的实力,我对他们都进行了试用,发现了一些意想不到的结果....…

【楚怡杯】职业院校技能大赛 “云计算应用” 赛项样题一

某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack搭建企业内部私有云平台,开源Kubernetes搭建云原生服务平台,选…

【F172】基于Springboot+vue实现的智能菜谱系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 项目描述 近些年,随着中国经济发展,人民的…

消防装备仓库管理系统|实现消防装备全流程跟踪

智慧消防装备仓库管理系统(智物资DW-S302)是一套成熟系统,依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 1、支持实时物资仓库货位二维和三维孪生…

第七篇——数学应用:华罗庚化繁为简的神来之笔

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 数学的意义,以及它对于生活的指导边界,是那么的重…