自动化测试是什么?Selenium实战!
目录
- 1. 自动化
- 1.1 自动化作用(含面试题)
- 1.2 回归测试
- 2. 自动化分类及模型
- 2.1 自动化分类
- 2.2 自动化金字塔与冰激凌蛋筒反模式
- 3. Web自动化测试
- 3.1 驱动(打开浏览器)
- 3.2 安装驱动管理
- 4. Selenium
关注我,学习更多企业开发和面试内容~
1. 自动化
生活中有很多工具也是自动化,比如草坪的浇水装置都是水龙头自主360度喷水。测试中也有自动化,不需要人再去手动测试。
而在工作中,计算机质量 > 人工质量,人容易出错,但机器不会。
1.1 自动化作用(含面试题)
- 减少人力消耗,并提高测试的质量和效率。
- 自动化测试主要用于回归测试。
1.【问】自动化测试能否代替手工测试?
答:不能。
- 测试人员需要编写自动化测试脚本。
- 增加新的功能:测试人员负责新增对应的自动化脚本。
- 自动化测试报错:测试人员需要维护脚本并解决自动化测试问题。
2.【问】自动化测试能否大幅度减少工作量?
答:不能。自动化测试只占测试工作的一小部分,测试贯穿于整个软件的生命周期。从需求分析阶段到手动测试,再到后期运行维护都需要测试人员。
*【tips】面试/笔试时不要说太绝对的话,如大幅度减少工作量。
1.2 回归测试
测试:bug维度 -> 功能维度 -> 产品维度
回归测试:
- 功能回归测试:产品维度
- bug回归测试:功能维度
回归测试的场景:
- 多个版本需要进行回归测试。
- 功能的回归测试,避免新功能影响到旧功能
用例子对上述图进行解释:
【例1 】
- 第一个版本, 测试功能后,进行回归测试(把所有功能结合起来, 查看不同功能之间交互是否正常, 进行整体的回归测试)比如测试百度网页,点击百度一下是否会跳转到对应界面。
- 第n个版本, 新增加了额外的功能。在测试完新增加的功能后, 需要对这些新增加的功能进行整体的回归测试,确认新功能们没有问题。然后再次站在产品维度对历史功能和新功能再进行一次整体的回归测试。
【历史功能太多耗费时间太多?】使用自动化测试。
- 在测试完第一个版本的功能并进行回归测试后,产品上线后, 编写自动化测试脚本。
- 在第n个版本时无需再手动测试历史功能。只需手动测试每个新增加的功能,再对这些新功能回归测试, 再将新旧功能结合起来进行回归测试, 等产品上线后只增加新功能的自动化测试脚本即可。
【例2】
- 谷歌浏览器有许多版本,每个版本都要进行回归测试。有了自动化会降低人力的消耗。
回归测试不止适用于产品的功能和版本的回归, 还有bug的回归测试。
并测试接口1:17:28
Selenium只适用于web自动化 客户端:按钮, 弹幕。 Web:
2. 自动化分类及模型
自动化测试只是一个统称,它能细分成几类。
举例:酷学长, 打开开发者工具,
2.1 自动化分类
软件由三部分组成:后端(接口), 前端(客户端 / Web)。测试也分成三类:
- 接口自动化测试
- UI自动化测试(界面自动化)
- 客户端界面自动化测试
- PC端界面
- 移动端界面
- Web界面自动化测试
- 客户端界面自动化测试
前端(UI)分为客户端界面和Web界面。客户端就是应用程序的界面,它又分为PC端界面和移动端界面,比如QQ的界面;而Web是浏览器打开的网页,比如淘宝网站。
- 接口层面:发送请求,属于后端代码。
- 客户端界面:界面,属于客户端代码。
- 浏览器界面:Web界面,属于前端代码。
2.2 自动化金字塔与冰激凌蛋筒反模式
【针对理想模型】
1.手动测试:能发现的问题较少。
2.前端自动化测试:前端出现的问题较少。
3.API(接口)测试:测试中服务器端(后端)出现的问题比较多,前端出现的问题比较少,前端问题在手动测试阶段就能发现。
4.单元测试:程序员自己写的代码自己更容易看懂,测试起来更容易。
【针对实际工作】
1.手动测试:实际工作中,手动测试能发现大量问题。
2.前端自动化测试:它能发现的问题比接口自动化要多(回报更高),因为很多后端问题都会体现在前端界面上。
3.接口自动化测试:根据请求检查响应结果(响应数据类型、数据),但数据参数是否正确无法测试。
4.单元测试:开发人员对于既做开发又负责测试是极其不情愿的,单元测试也就是走个流程。
3. Web自动化测试
【要求】在百度搜索关键词"塞尔达",并展示相关词条。
【手动测试的步骤】
- 打开浏览器。
- 输入百度一下的网址。
- 找到百度输入框,输入“塞尔达”三个字。
- 找到"百度一下"按钮,并点击。
- 关闭浏览器。
【Web自动化测试的步骤】
- 打开浏览器。
- 输入百度一下的网址。
- 找到百度输入框,输入“塞尔达”三个字。
- 找到"百度一下"按钮,并点击。
- 关闭浏览器。
实行自动化测试需要三个必需品:浏览器(软件),驱动(打开浏览器),Selenium工具(编写自动化脚本)。
【问题1】 如何打开浏览器?
手动测试:找到浏览器软件,鼠标点击——手动驱动。 自动化测试:用驱动打开浏览器。【问题2】 浏览器的选择?
推荐谷歌,如果用其他的浏览器,测试结果可能不一样。
3.1 驱动(打开浏览器)
驱动:程序想要打开Web浏览器就需要安装Web驱动(即WebDriver,它以本地化方式驱动浏览)。不同的浏览器需要不同的WebDriver,不同版本的浏览器也需要不同版本的WebDriver。驱动其实就是一个服务器。
【问】综上所述,浏览器版本很多也就说明要下载很多驱动,当浏览器版本更新后,需要下载新的驱动,不然自动化脚本会报错,可我们又不知道浏览器何时更新,怎么解决?
【答】使用驱动管理程序,无需手动下载驱动程序,只需要在程序中下载对应的依赖,驱动管理程序会自动下载正确的驱动。
3.2 安装驱动管理
-
创建一个Maven项目,如图所示。
-
在程序中下载对应的依赖(Maven的pom.xml),驱动管理程序会自动下载正确的驱动。
浏览器和驱动都已经解决,现在自动化测试还差最后一个——Selenium。
4. Selenium
用Selenium编写自动化测试脚本。