当前位置: 首页 > article >正文

自动化测试经典面试题

当下各行各业都呈现出了非常内卷的情况,测试圈内也出现了技术内卷的魔咒,因此大部分公司在招聘测试工程师的岗位时,都要求掌握一些自动化测试方面的技术。那么,我们在面试的时候哪些自动化测试的问题会被面试官经常问到呢?下面一些经典的自动化测试面试题,能让你在面试时轻松应对,同时也能让你在学习自动化测试时明白应该关注哪些内容。

基础题

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

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

2、元素定位方法你比较喜欢用哪种,为什么?

答:当页面元素有id属性时,最好尽量用id属性来定位,因为id属性是唯一的,并且简单方便,定位最快;当有超链接需要定位时,可以考虑使用link_text或partial_link_text;当常用方法都无法对元素进行定位时,可以使用xpath或css。xpath定位功能强大,但采用从上到下遍历搜索模式,速度略慢,所以还是尽量少用。css语法简洁,采用样式定位,搜索速度要快于xpath,对各种浏览器支持也很好。

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

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

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

答:http协议

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

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

6、Selenium中有哪些验证点?

答:Selenium主要有3种验证点

① 检查页面标题

② 检查某些文字

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

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

答:

浏览器前进:driver.forward()

浏览器后退:driver.back()

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判断是否是目标窗口。

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

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

6、什么是PageObject设计模式?

答:

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

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

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

7、PageObject设计模式中,是否需要在page里定位的方法中加上断言?

答:不需要,页面层只做元素定位和操作方法

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

答:

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

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

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

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

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

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

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

答:

① 不稳定

② 不可靠

③ 成本高

④ 不易维护 

总结:

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

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

软件测试面试文档

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

 

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


http://www.kler.cn/a/283450.html

相关文章:

  • MYSQL 库,表 基本操作
  • 040 线程池
  • 10款翻译工具实践体验感受与解析!!!!!
  • 单元测试、集成测试、系统测试有什么区别
  • nginx部署H5端程序与PC端进行区分及代理多个项目及H5内页面刷新出现404问题。
  • Java 堆内存管理详解:`-Xms` 和 `-Xmx` 参数的使用与默认内存设置
  • 拿到一个新项目,如何开展测试?
  • 基于状态机实现WIFI模组物联网
  • 2.10鼠标事件
  • MySQL(六)——多表查询
  • ZaKi:Ingonyama的Prover market基础设施
  • 基础概念与简单数据结构的笔记02
  • 数据结构---循环队列---树的基本概念
  • MySQL最左匹配原则
  • DAMA数据管理知识体系(第3章 数据治理)
  • 【STM32】驱动OLED屏
  • 2024高教社杯”全国大学生数学建模竞赛保奖秘诀!!!
  • 众安保险0827一面
  • UnrealEngine学习(02):虚幻引擎编辑器界面详解
  • 【DSP+FPGA】基于DSP+FPGA XC7K325T与TMS320C6678的通用信号处理平台
  • 力扣面试经典算法150题:整数转罗马数字
  • 91.游戏的启动与多开-游戏启动
  • Live800:以客户为中心,构建全方位客户服务策略
  • ThinkPHP之入门讲解
  • C++(this指针/常函数与常对象/拷贝构造函数/赋值函数/静态成员/静态成员函数/单列模式)
  • pdf、mp4、zip、rar、jpg等文件被大量访问造成流量超标解决方案