既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
选择适合的测试工具或分析当前的工具是否适合新项目
选择合适的自动化测试框架
确定要做自动化测试的范围和不做自动化测试的范围
测试环境的准备与搭建
制定一个粗略的脚本开发的时间表
制定脚本执行的一些策略,如冒烟测试的频率、回归测试的时间点及频率等
定义自动化测试的输出,比如脚本、测试数据、发现的缺陷、测试报告等
05 编写自动化脚本时的一些规范?
统一的命名约定,如用例名、方法名等
良好的脚本注释
遵循代码规范,使用适当的缩进
对异常进行处理
06 你一般一天能编写多少个自动化脚本?
这个取决于测试用例场景的复杂度,一般一天能写~个左右,复杂的话一天只能写一个。
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对象仓库从测试脚本分离,业务代码和测试脚本分离;
每一个页面对应一个页面类,页面的元素写到这个页面类中;
页面类主要包括该页面的元素定位,和这些元素相关的业务操作代码封装的方法;
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
vmQ-1715622160599)]
[外链图片转存中…(img-TvGLgDAs-1715622160601)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新