金九银十,自动化测试面试题精选【美团二面】

面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来讲,技术的话只要通过了技术面hr面基本上是没有问题(也有少数企业hr面会刷很多人)

在这里插入图片描述

我们主要来说技术面,技术面的话主要是考察专业技术知识和水平,下面是我们整理好的自动化测试岗的面试题。

1.如何把自动化测试在公司中实施并推广起来的?

1.项目组调研选择自动化工具并开会演示demo案例,我们主要是演示selenium和robotframework两种。

2.搭建自动化测试框架,在项目中逐步开展自动化。

3.把该项目的自动化流程、框架固化成文档

4.推广到公司的其它项目组应用

2.请描述一下自动化测试流程?

1.编写自动化测试计划

2.设计自动化测试用例

3.编写自动化测试框架和脚本

4.调试并维护脚本

5.无人值守测试

6.后期脚本维护(添加用例、开发更新版本)

3.自动化测试用例如何编写?以下答案二选一即可:

1.用例是自动化测试工程师自己设计的,一般刚开始已基本业务流程为主(登录–完成一个业务–退出)

2.从系统测试用例中进行筛选或由业务工程师提供

4.上一个项目中自动化测试的执行策略?

上一个项目中是定时执行的,设置的执行时间是晚上12点,执行完毕后会自动发送邮件通知

5.自动化测试发现BUG多吗?

不多,因为之前项目组是把已经测试通过的基本功能再进行自动化脚本编写和在后续版本执行自动化测试,它主要是保证已经测试通过的功能在新版本更新后没有问题。

6.你觉得自动化测试的价值在哪里?你们公司为什么要做自动化测试?

引用自动化测试之后,能代替大量繁琐的回归测试工作,把业务测试人员解放出来,既而让业务测试人员把精力集中在复杂的业务功能模块上,自动化测试一般是对稳定下来的功能进行自动化,保证不会因为产品的更新导致之前稳定下来的功能出现BUG

7.自动化测试有误报过bug吗?产生误报怎么办?

有误报过,有时候自动化测试报告中显示发现了bug,实际去通过手工测试去确认又不存在该bug。

误报原因一般是:

1.元素定位不稳定,需要尽量提高脚本的稳定性;

2.开发更新了页面但是测试没有及时更新维护!

8.自动化测试过程中,你遇到了哪些问题,是如何解决的?

1.频繁地变更页面,经常要修改页面对象类里面的代码

2.自动化测试偶尔出现过误报

3.自动化测试结果出现覆盖的情况:Jenkins根据时间建立文件夹

4.自动化测试代码维护比较麻烦

5.自动化测试进行数据库对比数据

9.在上一家公司做自动化测试用的什么框架?

可以说出以下自己擅长的一种:

1.python+selenium+unittest+htmltestrunner

2.python+selenium+pytest+allure

  1. robotframework+Selenium3

10.在selenium自动化测试中,你一般完成什么类型的测试?自动化覆盖率?

主要是冒烟测试和回归测试。回归测试主要写一些功能稳定的场景,通过自动化手段去实现,节约测试时间。因为自动化测试用例也是在不断的更新和迭代,没有刻意去统计,大概在30%-40%左右!

11.在执行脚本过程,如何实现当前元素高亮显示?

这个其实就是利用javaScript去修改当前元素的边框样式来到达高亮显示的效果,

12.如果一个元素无法定位,你一般会考虑哪些方面的原因?

1.页面加载元素过慢,加等待时间

2.页面有frame框架页,需要先跳转入frame框架再定位

3.可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位。

4.可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成,

13.元素定位方法你熟悉的有哪些?(八大元素定位方式)

id ,name, class, tag, link_text, Partial link text, css, xpath

14.遇到frame框架页面怎么处理?

先用driver.switch_to.frame()跳转进去frame,

然后再操作页面元素,

操作完后使用driver.swith_to.default_content()跳转出来

15.遇到alert弹出窗如何处理?

使用driver.switch_to.alert方法先跳转到alert弹出窗口

然后再通过accept点击确定按钮,通过dismiss点击取消难,通过text()获得弹出窗口的文本。

16.如何处理多窗口?

这个多窗口之间跳转处理,我们在项目中也经常遇到。就是,当你点击一个链接,这个链接会在一个新的tab打开,然后你接下来要在新tab打开的页面查找元素,

1.我们在点击链接前使用driver.current_window_handle获得当前窗口句柄。

2.再点击链接。点击后通过driver.window_handles获得所有窗口的句柄,

3.然后再循环找到新窗口的句柄,然后再通过driver.switch_to.window()方法跳转到新的窗口。

17.怎么验证元素是enable/disabled/checked状态?

定位元素后:分别通过isEnabled(),isSelected(),isDisplayed()三个方法进行判断。

18.如何处理下拉菜单?

在Selenium中有一个叫Select的类,这个类支持对下拉菜单进行操作。使用方法如下:

1.定位元素

2.把定位的元素转化成Select对象。

sel = Select(定位的元素对象)

3.通过下标或者值或者文本选中下拉框。

sel.select_by_index(index);
sel.select_by_value(value);
sel.select_by_visible_text(text);

19.在日历这种web 表单你是如何处理的?

首先要分析当前网页试用日历插件的前端代码,看看能不能通过元素定位,点击日期实现,如果不能,可能需要借助javascript。还有些日历控件一个文本输入框,可以直接sendKeys()方法来实现传入一个时间的数据。

20.举例一下说明一下你遇到过那些异常

常见的selenium异常有这些:

NoSuchElementException:没有该元素异常
TimeoutException :超时异常

ElementNotVisibleException :元素不可见异常
NoSuchAttributeException :没有这样属性异常
NoSuchFrameException :没有该frame异常

21.关闭浏览器中quit和close的区别

简单来说,两个都可以实现退出浏览器session功能,close是关闭你当前聚焦的tab页面,而quit是关闭全部浏览器tab页面,并退出浏览器session。知道这两个区别,我们就知道quit一般用在结束测试之前的操作,close用在执行用例过程中关闭某一个页面的操作。

22.在Selenium中如何实现截图,如何实现用例执行失败才截图

在Selenium中提供了一个get_screenshot_as_file()的方法来截图的,一般结合try/except捕获异常时使用,进行错误截图。

23.如何实现文件上传?

定位元素后,直接使用send_keys()方法设置就行,参数为需要上传的文件的路径。

24.自动化中有哪三类等待?他们有什么特点?

1.线程等待(强制等待)如time.sleep(2):线程强制休眠2秒钟,2秒过后,再执行后续的代码。建议少用。

2.imlicitlyWait(隐式等待)会在指定的时间范围内不断的查找元素,直到找到元素或超时,特点是必须等待整个页面加载完成。

3.WebDriverWait(显式等待)通常是我们自定义的一个函数代码,这段代码用来等待某个元素加载完成,再继续执行后续的代码

25.你写的测试脚本能在不同浏览器上运行吗

当然可以,我写的用例可以在在IE,火狐和谷歌这三种浏览器上运行。实现的思路是封装一个方法,分别传入一个浏览器的字符串,如果传入IE就使用IE,如果传入FireFox就使用FireFox,如果传入Chrome就使用Chrome浏览器,并且使用什么浏览器可以在总的ini配置文件中进行配置。需要注意的是每个浏览器使用的驱动不一样。

26.什么是PO模式,为什么要使用它

PO是Page Object 模式的简称,它是一种设计思想,意思是,把一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。

27.你会封装自动化测试框架吗?

这个问得最多,甚至有很多公司直接卸载招聘要求中

当然可以,自动化框架主要的核心框架就是分层+PO模式:分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。然后再加上日志处理模块,ini配置文件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。

28.你们测试团队如何提升自己的测试技能?

总结:

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

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

软件测试面试文档

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

 

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes 上安装 Jenkins

安装 Helm curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash添加 Jenkins Helm 仓库 首先添加 Jenkins Helm 仓库 helm repo add jenkins https://charts.jenkins.io helm repo update安装 Jenkins 使用 Helm 安装 Jenkins 的最新版本&…

uni-app应用更新(Android端)

关于app更新,uni-app官方推荐的是 uni-upgrade-center,看了下比较繁琐,因此这里自己实现检查更新并下载安装的逻辑。 1.界面效果 界面中的弹框和 进度条采用了uView 提供的组件 2.检查更新并下载安装 一、版本信息配置在服务端&#xff0c…

时装爱好者的网页购物天堂:Spring Boot技术探索

第2章相关技术 2.1 B/S架构 B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的…

详解TensorRT的C++高性能部署以及C++部署Yolo实践

详解TensorRT的C高性能部署 一. ONNX1. ONNX的定位2. ONNX模型格式3. ONNX代码使用实例 二、TensorRT1 引言 三、C部署Yolo模型实例 一. ONNX 1. ONNX的定位 ONNX是一种中间文件格式,用于解决部署的硬件与不同的训练框架特定的模型格式的兼容性问题。 ONNX本身其…

JAVA数据导出为Excel

目录 一、导入依赖 二、使用的相关类 1、XSSFWorkbook 构造方法 创建表 操作表 保存表 样式和格式 日期处理 密码保护 其他 2、XSSFSheet 获取属性和信息 行操作 列操作 表的属性 合并单元格 保护表 页眉和页脚 注释 其它 3、XSSFRow 获取属性和信息 单…

单点登录OAuth2.0

OAuth 2.0(Open Authorization 2.0)是OAuth协议的第二个版本,于2012年正式成为RFC 6749标准。在OAuth 2.0之前,OAuth 1.0版本已经为Web应用提供了一定程度的授权功能,但随着时间的推移,这些版本逐渐显露出一…

Nginx: TCP建立连接的优化和启用Fast Open功能

TCP 建立连接优化 在三次握手中,相关TCP的内核参数可优化这一过程 net.ipv4.tcp_syn_retries 6net.ipv4.tcp_synack_retries 5net.ipv4.tcp_syncookies 0net.ipv4.tcp_max_syn_backlognet.core.somaxconnnet.core.netdev_max_backlog 1 ) net.ipv4…

C语言之猜数字小游戏

哈喽,大家好!我是冰淇淋加点糖。今天我们来用前面所学的知识来开发一个猜数字的小游戏,锻炼我们的编程能力和编程思维。 猜数字小游戏功能简介 1.随机生成一个1-100的数字。 2.玩家用户开始猜数字。 > 猜大了,提醒猜大了…

【知识库系列】MPR/多模态方向观察:图像视频与3D生成

多模态背后的backbone会长成什么样? 各种模态到梯度下降到最后会不会都差不多? Sora 是不是已经被追上了? 我们真的把视频数据都用好了吗? 知识库完整文档: MPR/多模态方向观察:图像视频与3D生成:https…

SpringBoot实现前后端传输加密设计

在Web应用中,确保前后端之间的数据传输安全是非常重要的。这通常涉及到使用HTTPS协议、数据加密、令牌验证等安全措施。本文通过将前后端之间的传输数据进行加密,用于在Spring Boot应用中实现前后端传输加密设计。 一、数据加密方案 即使使用了HTTPS&…

java利用JXL操作excel

通过JXL操作Excel JXL是韩国人所著,目前停止更新,只支持xls格式,即2007之前的版本 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java…

c# checkbox的text文字放到右边

checkbox的text文字放到右边 实现方法如下图 特此记录 anlog 2024年9月2日

Tensorflow实现深度学习8:猫狗识别

本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 一 导入数据 import matplotlib.pyplot as plt import tensorflow as tf # 支持中文 plt.rcParams[font.sans-serif] [SimHei] # 用来正常显示中文标签 plt.rcParams[axes.unicode_minus] Fals…

带AI功能朵米客服系统3.5无限制开心版+搭建文档

带AI功能朵米客服系统3.5无限制开心版搭建文档,朵米客服系统是一款全功能的客户服务解决方案,提供多渠道支持(如在线聊天、邮件、电话等),帮助企业建立与客户的实时互动。该系统具有智能分流功能,可以快速将…

万象奥科参展“2024 STM32全国巡回研讨会”—深圳站、广州站

9月3日-9月5日,万象奥科参展“2024 STM32全国巡回研讨会”— 深圳站、广州站。此次STM32研讨会将会走进全国11个城市,展示STM32在智能工业、无线连接、边缘人工智能、安全、图形用户界面等领域的产品解决方案及多样化应用实例,深入解读最新的…

【RabbitMQ之一:windows环境下安装RabbitMQ】

目录 一、下载并安装Erlang1、下载Erlang2、安装Erlang3、配置环境变量4、验证erlang是否安装成功 二、下载并安装RabbitMQ1、下载RabbitMQ2、安装RabbitMQ3、配置环境变量4、验证RabbitMQ是否安装成功5、启动RabbitMQ服务(安装后服务默认自启动) 三、安…

VR虚拟展厅的应用场景有哪些?

虚拟展厅作为一种利用虚拟现实技术构建的三维展示空间,其应用场景广泛且多样。视创云展为企业虚拟展厅搭建提供技术支持。以下是一些主要的应用场景: 1. 博物馆和艺术展览 文物保护与展示: 在博物馆中,为了保护珍贵的文物和艺术…

【node.js】基础之修改文件

node.js 基础(一) node.js是什么? 上面这句话的意思就是:Node.js 是一个开源的,跨平台的javascript运行环境。通俗的说就是一个应用程序或者说是一个软件,可以运行javascript。 Node.js的作用: 开发服务器应用。 将数…

nvidia-cuda-tensorrt-cudnn下载网站

tensorrt:https://developer.nvidia.com/tensorrt/download cudnn:https://developer.nvidia.com/rdp/cudnn-archive cuda:https://developer.nvidia.com/cuda-toolkit-archive

Mybatis---代理设计模式(超详细)

Mybatis—代理设计模式 文章目录 Mybatis---代理设计模式一、什么是代理设计模式二、静态代理1、定义2、结构3、示例 三、动态代理1、定义2、newProxyInstance ()方法3、示例 四、CGLIB代理1、引入2、定义3、工作原理4、示例 一、什么是代理设计模式 首…