这27道Web自动化测试面试题,建议收藏√,2024年最新成功跳槽阿里

本文提供了一份针对软件测试的全套学习资料,涵盖基础知识到进阶课程,强调了自动化测试的关键指标、常见问题及其解决方案,以及Selenium工具的使用。作者提倡系统学习以避免浅尝辄止,鼓励加入技术交流社群共同成长。
摘要由CSDN通过智能技术生成

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

07 做自动化测试时关注的一些指标?

自动化测试用例的覆盖率=自动化测试用例数/所用用例总数,这个比例越高测试反馈越快,成本节约越多。

节省的时间成本=手工测试所花的时间-自动化测试所花的时间。

自动化测试的投入=开发脚本的投入+脚本维护的投入+工具价格。

自动化测试发现的缺陷数,每次回归测试时自动化测试发现的缺陷数及漏测数,反应了自动化用例的有效性。

自动化测试投入产出比:

ROI=(手工测试的成本-自动化测试成本)/自动化测试成本。

ROI如果是负值说明自动化测试的成本未收回,ROI为正值说明自动化测试成本已回收,且值越大说明回报越好。

08 自动化测试可以达到100%的覆盖率吗?

比较难,因为有些用例场景无法被自动化,一些验证易用性友好性的用例不适合做自动化,有些边缘的用例很少被重复执行,从投入产出比来说也不适合做自动化。

09 你们公司开展自动化测试遇到一些什么问题?

项目流程不规范,项目变动频繁导致自动化用例维护成本高。

如何解决:深入理解用户需求,规范开发流程,自动化用例先覆盖已经稳定的功能。

对自动化期望太高。

如何解决:自动化也是一个逐步完善的过程,不可能一下子完全代替手工。

有些自动化工程师的技术能力偏弱。

如何解决:提升编程能力、提升自动化工具使用能力、对新人进行培训等。

10 Selenium驱动浏览器使用的协议是什么?

JsonWireProtocol是通过使用WebDriver与remote server进行通信的Web Service协议。通过http请求,完成和remote server的交互。

11 Selenium工具都包含哪些组件?

Selenium WebDriver:

图片

Selenium IDE:

图片

Selenium Grid:

图片

12 Selenium中定位网页元素的八种方式?

图片

13 WebDriver启动常见的浏览器语句?

#!/usr/bin/env python

-- coding:utf-8 --

from selenium import webdriver

driver = webdriver.Chrome()
driver = webdriver.Firefox()
driver = webdriver.Ie()

14 如何选中下拉列表中的下拉选项?

#!/usr/bin/env python

-- coding:utf-8 --

通过选项的顺序,第一个为0

select_by_index(index)

通过value属性

select_by_value(value)

通过选项可见文本

select_by_visible_text(text)

15 如何取消选中下拉列表中的下拉选项?

#!/usr/bin/env python

-- coding:utf-8 --

deselect_by_index(index)
deselect_by_value(value)
deselect_by_visible_text(text)
deselect_all()

16 Selenium如何处理弹窗?

#!/usr/bin/env python

-- coding:utf-8 --

确认

driver.switch_to.alert.accept()

取消

driver.switch_to.alert.dismiss()

在弹出框输入内容

driver.switch_to.alert.send_keys(“输入数据”)

17 Selenium可以处理Windows弹窗吗?

Selenium本身是不可以处理Windows弹窗的,但是Selenium可以借助Autolt小工具来完成对Windows弹窗的操作。

18 如何判断一个元素在页面上是显示出来的?

webelement类中的is_displayed()方法。本身这个函数用于判断某个元素是否存在页面上(这里的存在不是肉眼看到的存在,而是html代码的存在。某些情况元素的visibility为hidden或者display属性为none,我们在页面看不到但是实际是存在页面的一些元素)。

19 Selenium中如何判断元素是否存在?

#!/usr/bin/env python

-- coding:utf-8 --

from selenium.common.exceptions import NoSuchElementException

判断元素是否存在

def isElementPresent(self, by, value):
try:
element =self.driver.find_element(by=by, value=value)
except NoSuchElementException as e:

发生了NoSuchElementException异常,说明页面中未找到该元素,返回False

return False
else:

没有发生异常,表示在页面中找到了该元素,返回True

return True

20 driver.quit()和driver.close()的区别?

driver.close()仅关闭当前用户正在操作的页面;

driver.quit()关闭整个浏览器,关闭所有的页面。

21 自动化测试用例从哪里来?

手工用例中抽取

参考自动化用例的执行策略

22 常见的自动化测试框架有哪些?

线性脚本框架、基于模块化的框架、库结构框架、数据驱动框架、关键字驱动框架、混合框架等。

23 什么是POM?

POM中文字母意思是页面对象模型,POM是一种最近几年非常流行的自动化测试模型,或者说思想。

POM不是一个框架,是一个解决问题的思想。采用POM的目的是为了解决前端中UI变化频繁,从而造成测试自动化脚本维护的成本越来越大。

POM主要有以下优点:

把Web UI对象仓库从测试脚本分离,业务代码和测试脚本分离;

每一个页面对应一个页面类,页面的元素写到这个页面类中;

页面类主要包括该页面的元素定位,和这些元素相关的业务操作代码封装的方法;

代码复用,从而减少测试脚本代码量;

层次清晰,同时支持多个编写自动化脚本开发,例如每个人写哪几个页面,不影响他人;

建议页面类和业务逻辑方法都给一个有意义的名称,方便他人快速编写脚本和维护脚本。

24 Selenium中如何保证操作元素的成功率?

也就是说如何保证我点击的元素一定是可以点击的?

添加元素智能等待时间driver.implicitly_wait()。

try方式进行id、name、class、xPath、css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种。

Selenium保证元素成功率是通过元素的定位,当然它的定位方法很多,一定能有合适的。

但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的,需要开发人员规范开发习惯,如给页面元素加上唯一的name、id等,这样就能大大地提高元素定位的准确性。

当然如果开发人员开发不规范,我们在定位元素的时候尽量使用相对地址定位,这样能减少元素定位受页面变化的影响。只要我们元素定位准确,就能保证每一个操作符合预期结果。

25 如何提高Selenium脚本的执行速度?

Selenium脚本的执行速度受多方面因素的影响,如网速、操作步骤的繁琐程度、页面加载的速度以及我们在脚本中设置的等待时间、运行脚本的线程数等。所以不能单方面追求运行速度的,要确保稳定性,能稳定地实现回归测试才是关键。

我们可以从以下几个方面来提高速度:

减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。

中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。

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

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。

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

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-H4gfhVCs-1713615210646)]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值