目录
自动化测试理念基础
1、什么是自动化测试?
概念:有程序或者工具来代替人工进行系统体验的过程
1.1 自动化测试能解决的问题?
● 解决回归测试
● 解决压力测试
● 解决兼容性测试
● 提高工作效率、保障产品质量
1.2 自动化测试的优点?
● 在较少的时间内运行更多的测试用例
● 自动化的脚本可以重复运行(但是像注册账户这些是例外,后面会介绍针对这种情况的三个方案)
● 可以减少人为的错误
● 可以克服手工测试的局限性
1.2.1 手工测试的局限性:
● 1、手工测试不能覆盖所有代码路径,比如说一些逻辑判断
● 2、基本的功能性能测试用例在每一轮中都不能少。由于工作量往往比较大,属于重复性的、非智力型和非创造性,并要求准 确细致使用机器比人类更有优势
● 3、许多死锁、资源冲突、多线程等有关的不正确 ,我们手工对软件的负荷率很小,所以很难检测到这类异常
● 4、系统压力、性能测试,需要模拟大数据或大并发用户等各种测试场景,很难通过手工测试执行
● 5、系统可靠性测试,需要模拟系统长时间运行,以验证系统能否稳定运行,难以通过手工测试执行
● 6、如果有大量(几千)的测试用例,须要在短时间内(1天)完成,手工测试几乎不可能做到
1.3 自动测试的误区
● 自动测试比手工测试厉害
● 自动化测试可以完全代替手工测试
● 自动化测试可以发现更多的BUG
● 自动化测试适用于所有的功能
1.4 自动化测试分类
● Web自动化测试 浏览器访问系统
● App自动化测试 手机应用程序(App原生与H5)
● 接口自动化测试 后台服务
● 单元测试 针对开发的代码进行测试,由开发自己测试(可能是一个函数或者一个类)
● 桌面程序自动化测试 针对Windows的桌面应用程序进行自动化测试
● 嵌入式设备的自动化测试 针对路由器、机顶盒等嵌入式设备进行自动化测试
● 安全类的自动化测试 Sql注入、越权访问、信息加密、csrf、xss
2、什么是UI自动化测试?
● UI:(User Interface,简称UI,用户界面)是系统和用户之间进行交 互和信息交换的媒介
● Web自动化测试以及App自动化测试都是属于UI自动化测试
2.1 什么项目适合做UI自动化测试?★★★
● 项目的周期时间要长
● 项目需求变更不频繁
● 需要做回归测试
2.2 UI自动化测试在什么阶段后?
● 都是在手工测试完成之后
2.3 自动化测试为什么要在手工测试之后?
● 在手工测试完成之前,软件还不够稳定,必须软件的界面都很成熟了,变动不大了,比如在产品后期交付,界面比较稳定不会做
大的调整的过程中,为了保证每一个版本不受其他代码变动的影响可以在后期版本中运行自动化测试
2.4 UI自动化测试所属分类
● 黑盒(功能测试)测试 UI自动化
● 白盒(单元测试)测试
● 灰盒(接口测试)测试
2.5 主流的Web自动化工具
● QTP:能够支持web以及桌面的自动化测试,商业化的工具,(收费)
● Selenium:开源免费,只要用来测试Web的
● Robotfrawork:集成化的平台。继承Selenium、Appium、Requests
Selenium环境搭建
三种安装方式
● 在线安装:DOS命令输入:pip install selenium
● 离线安装:
○ 下载获取到对应的离线安装包(https://pypi.org/project/lxml/)
○ 解压,在DOS命令中进入解压的目录,执行命令:python setup.py install
● 在pycharm搜索栏中输入selenium(找对应名称模块),点击install package安装即可
● 检查模块是否安装成功:DOS命令输入pip show selenium
浏览器驱动安装
注意:浏览器驱动的版本与浏览器的版本要配套
获取到对应的浏览器驱动后,解压,并把解压之后的exe文件放到python的安装根目录下,不要放到pycharm的安装根目录
Chrome浏览器驱动下载
https://npm.taobao.org/mirrors/chromedriver/
火狐浏览器驱动下载
https://npm.taobao.org/mirrors/geckodriver/ (火狐的目前下26或者27版本的都可以)
安装完成后通过代码进行检测
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
time.sleep(3)
driver.quit()