自动化测试概述
1、自动化分类:
(1)单元测试自动化:
单元测试(Unit):模拟各种异常场景,外部依赖较少,且可以做测试单元到最小的一种测试方法。
Java单元测试框架Junit、TestNG;
Python单元测试框架Unittest。
(2)接口自动化
接口测试(API):对系统的结构和系统间的调度非常清楚,了解接口逻辑关系。
工具有Jmeter、Postman、Loadrunner等;
(3)web/移动端自动化:
页面测试(GUI):常见的黑盒自动化测试,最接近用户真实场景,容易发现问题,但实现成本最高且容易受外部依赖影响脚本成功率。常见的测试工具有QTP(商业、适用于B/S、C/S结构)、Selenium(开源、B/S)、Appium(开源、C/S)等。
2、自动化测试目标
(1)为什么做自动化测试?
答:1.提高测试效率、质量 2.提高测试人员的成就感 3.减少测试人员,节省企业成本 4.线上产品监控
(2)缺点
答:1.不能取代手工测试 2.手工测试比自动化测试发现的缺陷更多 3.测试人员技能要求更高
(3)误区
答:1、自动化测试完全替代手工测试 2.自动化测试一定比手工测试厉害 3.自动化可以发掘更多的Bug
3、什么项目适合做自动化
(1)功能、页面相对稳定,不会频繁变动
(2)比较频繁的回归测试、每次构建后的验证
(3)软件维护周期长
(4)测试人员具备一定的编程能力
4、自动化测试工具的选择
(1)Selenium特点
答:开源、免费
多浏览器支持:Firefox、Chrome、IE、Safari
多平台支持:linux、windows、MAC
多语言支持:Java、Python、Ruby、PHP、Perl、C#、JavaScript
官网文档:https://docs.seleniumhq.org/docs/03_webdriver.jsp 如下图所示:
(2)Selenium WebDriver和QTP工具的特点比较
答:QTP完全模拟终端用户,独占屏幕,只能开启一个独占的实例(selenium浏览器在后台执行,一台机器可以执行多个实例)
QTP只支持IE和Firefox
QTP只能使用VBScript编写脚本,不支持其他语言和外部库
QTP只支持Windows
QTP按照安装的机器台数计费,版权费用昂贵
QTP不支持持续集成
5、学习Selenium工具的能力要求
答:HTML CSS JavaScript
6、学习目标
(1)熟练掌握Python编程语言
(2)Selenium模块的使用
(3)xpath定位
(4)Unittest框架
(5)断言
(6)logging,日志模块
(7)数据驱动