2024最新自动化测试面试题合集 (附答案)_测试工程师面试必刷题2024

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

3.1 如何降低自动化维护成本

  1. 在选取将用例自动化时就要注意,尽可能的选取比较稳定的接口/内容做自动化测试;

  2. 测试人员在编写测试脚本时对脚本质量的要求,重用性,复用性,搭建高质量的测试框架;

  3. 测试工具的选取使用(比如选取专业的/商业话的测试软件工具),以及硬件服务的配套使用;

  4. 加强提高测试人员的编码开发实力,这样能够创造出更多有用的测试工具

3.2 如何保证脚本的有效性?

· 使用分层结构实现业务逻辑、脚本、数据分离。

· 使用PO设计模式,将一个页面用到的元素和操作步骤封装在一个页面类中。如果一个元素定位发生了改变,我们只用修改这个页面的元素属性。

· 对于页面类的方法,我们尽量从客户的正向逻辑去分析,方法中是一个独立场景,例如:登录到退出,而且不要想着把所有的步骤都封装在一个方法中。

· 测试用例设计中,减少测试用例之间的耦合度。

· 元素定位时,使用稳定的相对路径来定位,优先选择id,避免使用绝对路径。

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

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

1.python+selenium+unittest+htmltestrunner

2.python+selenium+pytest+allure

3.python+requests+pytest+allure

4.python+Appium+pytest+allure

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

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

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

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

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

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

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

然后再操作页面元素,

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

7、遇到alert弹出窗如何处理?

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

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

8、如何处理多窗口?

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

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

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

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

9、怎么验证元素是enable/disabled/checked状态?

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

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

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

11、举例一下说明一下你遇到过那些异常

常见的selenium异常有这些:

NoSuchElementException:没有该元素异常

TimeoutException : 超时异常

ElementNotVisibleException :元素不可见异常

NoSuchAttributeException :没有这样属性异常

NoSuchFrameException :没有该frame异常

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

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

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

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

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

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

14、什么是PO模式,为什么要使用它

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

15、什么是进程、线程、协程?

进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。

线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。

协程是一种基于线程之上,但又比线程更加轻量级的存在,这种由程序员自己写程序来管理的轻量级线程叫做『用户空间线程』,具有对内核来说不可见的特性。

进程与线程的区别

· 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;

· 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;

· 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见;

· 调度和切换:线程上下文切换比进程上下文切换要快得多。

协程的特点

· 线程的切换由操作系统负责调度,协程由用户自己进行调度,因此减少了上下文切换,提高了效率。

· 线程的默认Stack大小是1M,而协程更轻量,接近1K。因此可以在相同的内存中开启更多的协程。

· 由于在同一个线程上,因此可以避免竞争关系而使用锁。

· 适用于被阻塞的,且需要大量并发的场景。但不适用于大量计算的多线程,遇到此种情况,更好是用线程去解决。

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

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

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

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

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

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

1.编写自动化测试计划

2.设计自动化测试用例

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

4.调试并维护脚本

5.无人值守测试

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

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

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

19、自动化测试发现BUG多吗?

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

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

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

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

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

误报原因一般是:

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

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

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

15711406345)]
[外链图片转存中…(img-ulOaBX4B-1715711406345)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值