文章末尾给大家准备了大量福

前言

到了招聘季节,小伙伴们都在忙着找工作,今天笔者就和大家来唠唠大厂自动化测试的面试题有哪些,希望可以帮助到各位小伙伴哟。

1 什么是POM,为什么要使用它?

POM是Page Object Model的简称,它是一种设计思想,而不是框架。大概的意思是,把一个一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,所以自然而然就用了类的思想来组织我们的页面。一般一个页面写一个类文件,这个类文件包含该页面的元素定位和业务操作方法

为了我们测试用例写的简单,清晰,我们很多时候在页面对象会封装很多业务操作方法,测试脚本只需要调用相关方法就可以。

2如果页面元素经常发生需求变化,你是如何做?

采用POM思想。好处就是只要改一个页面,我就去修改这个页面对象的元素定位和相关方法,脚本不需要修改。

3 在你做自动化过程中,遇到了什么问题吗?举例下

频繁地变更UI,经常要修改页面对象里面代码

运行用例报错和处理,例如元素不可见,元素找不到这样异常

测试脚本复用,尽可能多代码复用

一些新框架产生的页面元素定位问题,例如ck编辑器,动态表格等

4 举例一下你遇到过那些异常,在selenium自动化测试过程中

ElementNotSelectableException :元素不能选择异常

ElementNotVisibleException :元素不可见异常

NoSuchAttributeException :没有这样属性异常

NoSuchElementException:没有该元素异常

NoSuchFrameException :没有该frame异常

TimeoutException : 超时异常

Element not visible at this point :在当前点元素不可见

5 如何处理alert弹窗

我们常见的alert弹窗有两种:基于windows弹窗和基于web页面弹窗

webdriver是能够处理alert弹窗的,Selenium提供了Alert这个接口。

相关操作代码如下:

Alert alert = driver.switchTo().alert() // 切换到Alert

alert.accept() // 点击弹窗上确定按钮

alert.dismiss() // 点击弹窗的取消按钮

alert.getText() // 获取弹窗上线上的文本文字内容

alert.sendkeys() // 有些弹窗还支持文本输入,这个可以把要输入字符通过sendkeys方法输入

6 在selenium中如何处理多窗口?

这个多窗口之间跳转处理,在实际selenium自动化测试经常遇到。就是,你点击一个链接,这个链接会在一个新的tab打开,然后你接下来要查找元素在新tab打开的页面,所以这里需要用到swithTo方法。

需要获取当前浏览器多窗口句柄,然后根据判断跳转新句柄还是旧句柄

7 你查找元素遇到过在Frame里面吗?你是如何处理Frame里面元素定位的?

有时候我们知道元素定位表达式没有问题,但是还是提示no such element,那么我们就需要考虑这个元素是否在frame中。如果在,我们就需要从topwindow,通过swithcTo.Frame()方法来切换到目标frame中,可以通过frame的name、id和index三种方法来定位frame。

8 如何处理下拉菜单?

通常我们也可以通过Click方法来点击下拉菜单里面的元素,还有一种方法,在Selenium中有一个类叫Select,支持这种下拉菜单交互的操作。

基本使用语法是这样的:

Se=new Select(element)
Se.selectByIndex(index)
Se.selectByvalue(value)
Se.selectByVisibleText(text)

9 关闭浏览器中quit和close的区别?

close是关闭你当前聚焦的tab页面;

而quit是关闭全部浏览器tab页面,并退出浏览器session;

quit一般用在结束测试之前的操作,close用在执行用例过程中关闭某一个页面的操作

10 什么是imlicitlyWait(隐式等待)

webdriver 会在指定的超时时间范围内不断的查找元素,直到找到元素或超时

11 什么是expliciteWait(显式等待)

通常是我们自定义的一段代码,这段代码用来等待某种条件发生后,再继续执行后续的代码

12 如何实现文件上传?

我们在web页面实现文件上传过程中,可以直接把文件在磁盘完整路径,通过sendKeys方法实现上传

13 如何实现鼠标悬停,键盘事件和拖拽动作?

在Webdriver中,处理键盘事件和鼠标事件,一般使用Actions类提供的方法,包括鼠标悬停,拖拽和组合键输入。

这里介绍几个方法

方法: clickAndHold()

使用场景:找到一个元素,点击鼠标左键,不放手。自己可以点击鼠标不松开试试这个场景。

方法:contentClick()

使用场景:模拟鼠标右键点击,一般右键会带出菜单来。

方法:doubelClick()

使用场景:模拟鼠标双击

方法:dragAndDrop(source,target)

使用场景:模拟从source这个位置,拖拽一个元素到target位置

键盘事件方法:keyDown(keys.ALT), keyUp(keys.SHIFT)

使用场景:点击键盘事件,分为两个动作,一个点击键盘,第二个动作是释放点击(松开)

14 在selenium自动化测试中,你一般完成什么类型的测试?

主要是冒烟测试和回归测试。回归测试主要写一些功能稳定,容易实现的场景,通过自动化手段去实现,节约测试时间。

15 你是如何管理你的测试用例并执行?

通过单元测试框架实现,常见的有unittest、pytest

16 自动化测试报告生成

Allure

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

自动化框架主要的核心框架就是分层+PO模式:

分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。然后再加上日志处理模块,ini配置文件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。

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

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

误报原因一般是:

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

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

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

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

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

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

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

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

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

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

1.python+selenium+unittest+htmltestrunner

2.python+selenium+pytest+allure

3.robotframework+Selenium2Library

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

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

然后再操作页面元素,

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

22 遇到alert弹出窗如何处理?

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

然后再通过accept点击确定按钮;

通过dismiss点击取消难;

通过text获得弹出窗口的文本;

23 什么是断言

断言assert 用于代码中验证实际结果符合预期结果,如果测试用例失败,则抛出异常并且提供断言日志

24 如何提高selenium脚本的执行速度

1、优化等待时间,使用WebDriverWait智能等待代替强制等待sleep和隐式等待imlicitlyWait

2、减少不必要的操作

3、在服务器允许的情况下,使用多线程实现并发执行测试用例

25 怎么对含有验证码的功能进行自动化测试

图像识,难度大,效果不好不推荐

屏蔽验证码,邀请开发处理,在测试环境,预发和正式环境恢复

26 自动化测试分为哪几类

UI自动化:又分为web和和app自动化

接口自动化

27 自动化测试的使用场景?

需求稳定,不会频繁变更。

研发和测试周期长,需要频繁执行回归测试。

需要在多种平台上重复运行相同测试的场景。

某些测试项目,通过手工测试无法实现,或者手工成本太高。

被测软件的开发较为规范,能够保证系统的可测试行

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

1.编写自动化测试计划

2.设计自动化测试用例

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

4.调试并维护脚本

5.无人值守测试

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

29 一个接口的响应在下一个接口中怎么用?(一个请求依赖另一个请求的返回结果)

cookie 全局变量 反射

存储到excel表,需要时再取

框架里边的期望结果: 查库 依赖用户成功之后

30 web和app自动化有什么不同?

1 启动差别

app端:在执行用例的时候,一部安卓手机同一时刻只能打开一个apk包进行操作

web端:在web端,通过Python多线程(或多进程)同时开启几个浏览器,让selenium对多个浏览器进行操作;

2 安装检查

app端:需要先检查软件是否安装才能进行测试

web端:不需要安装,在浏览器中输入url就可以测试。

3 页面元素操作

app端:需要保证不可见的元素显示在手机页面才能对它进行操作。

web端:如果遇到需要下拉才能加载的页面,可以用js操作滚动条。

4 元素定位

app端:部分定位方式不支持,比如css_selector和link_text

web端:name,id,class_name,css,xpath、link_text、partrail_link_text、tag_name

5 启动方式

app端:需要制定desired_caps内容,因为里面包含了设备信息等。

web端:通过启动webdriver不同的浏览器类,获取driver,如webdriver.Chrome(),也可以模拟手机端加载wap页面做wap页面的测试。

31 unitest和pytest框架讲解以及使用的是哪个一个为什么不用另一个?

较unittest,pytest有以下优点

自动发现测试模块、测试方法

断言使用asert+表达式

可以设置会话级、模块级、类级、函数级的fixtures、数据准备+清理工作

有丰富的插件库,目前在300个以上。

总结

今天的文章就到这里了哟,喜欢的小伙伴记得点赞收藏评论加关注哟。

最后我给大家留下了大量的福利需要的小伙伴可以私信关键字“资料”获取哟。

项目实战

app项目,银行项目,医药项目,电商,金融

全套软件测试自动化测试教学视频

​300G教程资料下载【视频教程+PPT+项目源码】

​全套软件测试自动化测试大厂面经

​python自动化测试++全套模板+性能测试

软件测试面试题之自动化测试题大合集(上)相关推荐

  1. 上拉电阻和下拉电阻选取经验大合集

    上拉电阻和下拉电阻选取经验大合集 上拉电阻 1.当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输 ...

  2. 教师资格证考试备考资料大合集(历年真题+常用考点+模拟试题+面试),共460份,987M,附件中为网盘链接

    教师资格证考试备考资料大合集(历年真题+常用考点+模拟试题+面试),共460份,987M,附件中为网盘链接. 下载地址:https://download.csdn.net/download/mengc ...

  3. 【数据结构】- 【考研复试面试题】-汇总大合集

    数据结构-考研复试面试题-汇总大合集 _写在前面的话:第二次写文章,本篇文章涉及内容主要包括数据结构与算法,包含市面上最热门的面试题,加以总结,用于本人的专业课面试复习,包括一些个人理解和总结, 如果 ...

  4. 年度盘点!必看AI顶会论文、Github高星项目大合集(附链接)

    目前,国外计算机界评价学术水平主要是看在顶级学术会议上发表的论文,特别是在机器学习.计算机视觉和人工智能领域,顶级会议才是王道.本期我们盘点了2019年人工智能领域的顶会,如最核心的顶会AAAI.IJ ...

  5. 独家 | 年度盘点!必看AI顶会论文、Github高星项目大合集(附链接)

    目前,国外计算机界评价学术水平主要是看在顶级学术会议上发表的论文,特别是在机器学习.计算机视觉和人工智能领域,顶级会议才是王道.本期我们盘点了2019年人工智能领域的顶会,如最核心的顶会AAAI.IJ ...

  6. 网络安全中机器学习大合集 Awesome

    网络安全中机器学习大合集 from:https://github.com/jivoi/awesome-ml-for-cybersecurity/blob/master/README_ch.md#-da ...

  7. 京东java笔试_2017阿里,百度,京东java面试+笔试大合集,2018的你会吗?

    2017阿里,百度,京东java面试+笔试大合集 1.阿里 面试(一二面合集) 1.介绍一下你自己. 2.介绍一下你认为做的最好的一个项目. 3.请用五分钟的时间把你做的项目的流程图画一下. 4.项目 ...

  8. 智慧消防解决方案-全套大合集

    智慧消防解决方案-全套大合集 项目背景 一.消安一体化解决方案简介 二.平台架构 三.核心功能 四.应用场景 五.获取 - 智慧消防全套解决方案 项目背景 随着城市化进程的加速,消防安全形势也愈加复杂 ...

  9. 计算机专业求职体验报告,求职体验心得报告大合集.doc

    求职体验心得报告大合集 求职初体验 12月15日,我签约于株洲某一省级示范性中学.这里,我将谈谈这段时间来找工作的经验与感受,希望对正在寻寻觅觅的学弟学妹们有一点点好处. 第一.制作简历.简历的重要性 ...

  10. c语言奥林匹克大赛真题,全球首发!1-58届国际数学奥林匹克真题及解析大合集,350道必刷、必看、必收藏的巅峰之题与巧解妙解......

    在数学竞赛的江湖中, 被无数人称为解题大师的单墫教授曾说:"学数学的目的,就是为了学会解题,在这个过程中,去巩固所学的知识,提高能力,更好更多的去掌握数学的内容.意义和方法, 而这个过程很重 ...

最新文章

  1. 计算机系统结构 网易云课堂,计算机系统结构 (三) CPU及其结构分析
  2. 2020 最新 JVM 生态报告
  3. python软件下载安装win10-Python Win10版本下载
  4. linux自动跑批,在linux中添加硬盘并在系统启动时自动挂载
  5. 移动平台WEB前端开发技巧汇总
  6. 洛谷 P4009 汽车加油行驶问题 题解
  7. qt 正则 html,Qt 正则表达式 (一)
  8. 如何理解nextTick函数
  9. DELL R720网卡驱动
  10. 大海为什么是蓝色的?
  11. 文件上传 webshell 各类型 一句话木马 图片马 制作 教程
  12. Java递归删除空文件夹
  13. T00ls技术文章.rar
  14. Java API版权第一大案,索赔百亿美元,打了10年终于有结果了!
  15. 浅谈Java SE、Java EE、JME的关系
  16. input标签type=“week“选择第几周
  17. linux转化大小写,linux转换大小写
  18. linux安装git并配置GitHub账号,本地与GitHub之间进行文件的上传(push)、下载(克隆)、更新
  19. 微服务: 想办法让项目运行起来
  20. 自定义bpmn.js左侧工具栏palette样式

热门文章

  1. php文字添加投影,PS如何制作文字投影效果 巧用4种方法给文字添加长投影效果...
  2. 宝塔面板 服务器状态,宝塔面板中重启腾讯云服务器后无法登录宝塔面板怎么办?...
  3. ps常用快捷键 常用的
  4. 论文参考文献格式与设置
  5. win7计算机桌面文件位置更改,Win7系统怎么更改桌面文件路径_win7修改桌面文件保存路径的方法...
  6. mac idea修改内存
  7. html 长度太长截断,HTML CSS 表格换行禁止 超出指定长度自动截断
  8. 【Scratch】青少年蓝桥杯_每日一题_12.01_角色装扮
  9. c语言识别希腊字母吗,isalpha()
  10. mysql常用语句梳理