自动化测试面试问答(三)

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

  • 编写自动化测试计划
  • 设计自动化测试用例
  • 编写自动化测试框架和脚本
  • 调试并维护脚本
  • 无人值守测试
  • 后期脚本维护(添加用例、开发更新版本)

2、自动化测试的使用场景?

  • 需求稳定,不会频繁变更。
  • 研发和测试周期长,需要频繁执行回归测试。
  • 需要在多种平台上重复运行相同测试的场景。
  • 某些测试项目,通过手工测试无法实现,或者手工成本太高。
  • 被测软件的开发较为规范,能够保证系统的可测试行

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

不多,因为之前项目组是把已经测试通过的基本功能再进行自动化脚本编写和在后续版本执行自动化测试,它主要是保证已经测试通过的功能在新版本更新后没有问题。(UI自动化的目的不是为了发现多少Bug,主要是为了减轻重复的基础操作和线上监控的作用

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

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

误报原因一般是:

  • 元素定位不稳定,需要尽量提高脚本的稳定性;
  • 开发更新了页面但是测试没有及时更新维护

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

根据项目实际经验回答,如:

  • 频繁地变更页面,经常要修改页面对象类里面的代码
  • 自动化测试偶尔出现过误报
  • 自动化测试结果出现覆盖的情况:Jenkins根据时间建立文件夹
  • 自动化测试代码维护比较麻烦

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

  • 主要是用selenium driver.execute_script()方法,来修改js的元素
  • 利用javaScript去修改当前元素的边框样式来到达高亮显示的效果

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

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

8、举例一下说明一下你遇到过哪些异常?

  • NoSuchElementException:没有该元素异常
  • TimeoutException :超时异常
  • ElementNotVisibleException :元素不可见异常
  • NoSuchAttributeException :没有这样属性异常
  • NoSuchFrameException :没有该frame异常

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

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

10、如何实现文件上传?

  • 定位元素后,直接使用send_keys()方法设置就行,参数为需要上传的文件的路径。
  • 借助第三方工具去操作windows弹窗
  • 利用sikuli,win32去操作windows弹窗

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

  • 线程等待(强制等待)如time.sleep(2):线程强制休眠2秒钟,2秒过后,再执行后续的代码。建议少用。
  • imlicitlyWait(隐式等待)会在指定的时间范围内不断的查找元素,直到找到元素或超时,特点是必须等待整个页面加载完成。
  • WebDriverWait(显式等待)通常是我们自定义的一个函数代码,这段代码用来等待某个元素加载完成,再继续执行后续的代码

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

  • 不稳定
  • 可靠性
  • 不易维护
  • 成本与收益

13、如何处理多窗口?

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

  • 我们在点击链接前使用driver.current_window_handle获得当前窗口句柄。
  • 再点击链接。点击后通过driver.window_handles获得所有窗口的句柄, 然后再循环找到新窗口的句柄,然后再通过driver.switch_to.window()方法跳转到新的窗口。

14、Selenium 中如何保证操作元素的成功率?也就是说如何保证我点击的元素一 定是可以点击的?

  • 添加元素智能等待时间 driver.implicitly_wait(30)
  • 添加强制等待时间 time.sleep()
  • try 方式进行id,name,clas,x path, css selector不同方式进行定位,如 果第一种失败可以自动尝试第二种

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

根据实际项目经验回答,

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

16、在Selenium中如何实现截图,如何实现用例执行失败才截图?

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

官网的最新方法:driver.save_screenshot(’./image.png’)

#自动化测试##测试面经##测试#
测试岗面经 文章被收录于专栏

整理面试过程中的测试问答,常看常新,多多学习!有些问题是从其他人那里转载而来,会在文章下面注明出处,希望大家多多支持~~,觉得满意的话就送一朵小花花,谢谢! 内容目录:https://www.nowcoder.com/discuss/779856598809264128?sourceSSR=users

全部评论
受益匪浅
点赞 回复 分享
发布于 07-16 14:40 广东

相关推荐

1.自我介绍2.最近的测试项目主要负责哪一块的,项目情况和个人职责。3.测试过程中,印象比较深刻的Bug是什么。背景描述:在我参与的一个电商项目中,有一个购物车功能模块。在一次版本迭代后,我负责测试购物车的结算功能。Bug的具体表现:在测试过程中,我发现当用户添加多个商品到购物车并尝试结算时,结算金额显示异常。具体表现为,当购物车中有超过10件商品时,结算金额会比实际金额少10%。发现过程:我通过边界值分析的方法,测试了购物车中不同数量的商品(如1件、5件、10件、11件等)。当商品数量超过10件时,问题复现。分析与定位:我查看了前端请求和后端响应的数据,发现后端在处理购物车商品数量时,使用了一个错误的算法。当商品数量超过10件时,系统错误地应用了一个折扣逻辑,导致结算金额计算错误。在我参与的一个电商项目中,有一个购物车功能模块。在一次版本迭代后,我负责测试购物车的结算功能。Bug的具体表现:在测试过程中,我发现当用户添加多个商品到购物车并尝试结算时,结算金额显示异常。具体表现为,当购物车中有超过10件商品时,结算金额会比实际金额少10%。发现过程:我通过边界值分析的方法,测试了购物车中不同数量的商品(如1件、5件、10件、11件等)。当商品数量超过10件时,问题复现。分析与定位:我查看了前端请求和后端响应的数据,发现后端在处理购物车商品数量时,使用了一个错误的算法。当商品数量超过10件时,系统错误地应用了一个折扣逻辑,导致结算金额计算错误。现后端在处理购物车商品数量时,使用了一个错误的算法。当商品数量超过10件时,系统错误地应用了一个折扣逻辑,导致结算金额计算错误。解决与验证:开发团队修复了算法问题后,我重新测试了购物车结算功能,确保问题已解决,并进行了回归测试,验证了其他相关功能未受影响。总结与反思:这个bug让我意识到边界值测试的重要性,尤其是在处理数量、金额等关键数据时。同时,我也学到了如何更好地与开发团队沟通,快速定位问题根源。总结通过这样的回答,你不仅能展示你的测试技能和思维,还能体现你的问题解决能力和团队协作能力。确保你的回答简洁明了,重点突出,给面试官留下深刻印象。4.对于软件测试岗位的认识5.了解作为校学生会就业创业负责人,沟通能力如何,有遇到问题有需要分享的事情吗6.遇到测试不达标,应该怎么解决7.反问环节8.代码能力怎么样9.AI运用的怎么样
查看8道真题和解析
点赞 评论 收藏
分享
08-07 11:33
门头沟学院 Java
点赞 评论 收藏
分享
评论
5
35
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务