判断软件项目是否适合实施UI自动化测试
UI:User Interface,简称UI,用户界面是系统和用户之间进行交互和信息交换的媒介
UI自动化测试:使用程序、脚本对系统界面体现的功能和数据信息展示等进行的测试技术
自动化测试:让程序代替人工去验证系统功能的过程
自动化测试分类:
1、Web自动化测试
2、移动自动化测试 APP自动化测试
项目需要实施UI自动化测试需要满足以下前置条件 / 什么样的项目适合自动化:
1、项目需要回归测试 (甲⽅⾃营项⽬、⾦融、电商)
2、项目需要实现自动化的功能模块需求变更不频繁 稳定的模块
3、项目周期要长 (甲⽅⾃营项⽬、6个⽉以上的外包) 功能测试 :UI自动化测试 = 1 : 3
自动化执行时机
一般情况下在手工测试完成之后
版本或项目功能趋于稳定
部分公司存在独立的自动测试小组,可能在项目刚开始时 就已经同步启动UI自动化测试工作,例如:环境部署、计划 制定等... ...
自动化测试能解决什么样的问题
1.解决-回归测试
2.解决-压力测试
3.解决-兼容性测试
4.提高测试效率,保证产品质量
回归测试:项目在发新版本之后对项目之前的功能进行验证
压力测试:可以理解多用户同时去操作软件,统计软件服务器处理多用户请求的能力
兼容性测试:不同浏览器(IE、Firefox、Chrome)等等
UI自动化测试的作用
1、节省人力成本:回归测试工作由脚本代替人工去执行
2、提高回归测试效率:脚本执行速度更快
3、提高测试质量:一旦自动化脚本库完善后测试执行过程更标准和准确
4、构建测试数据
5、作为项目文档辅助
6、体现测试价值:测试人员需要从重复的回归测试抽离出来投入更重要功能模块测试中
web项目实施自动化:python + selenium + unittest
app项目实施自动化:python + appium + unittest
自动化测试工具
1、QTP:商业化的功能测试工具,收费,⽀持UI,桌面自动化测试
2、Robot Framework:是一个基于python可扩展关键字驱动的测试自动化框架。使⽤封装好的关键字驱动、半代码⽔平、 ⽀持UI
3、selenium:是一个开源的web自动化测试工具,免费,主要做功能测试。
市场工具多样,如何选择?
基于web项目回归测试,会考虑:
项目的兼容性:平台、浏览器
基于脚本编写和维护,会考虑:
是否方便迁移
是否可以定制、开发个性功能
编程语言选择
工具本身使用成本
Selenium介绍
Selenium 特点:
1、开源软件 免费
2、跨平台 linux Windows Mac都能运行
3、支持多种浏览器
4、支持多种语言 Java Python JavaScript
5、功能强大、成熟稳定
Selenium核心组件
1、Selenium-IDE:FireFox火狐插件,录制脚本工具。支持脚本回放和导出。 可以导出Python和Java等类型的单元测试脚本
2、Selenium-Grid:分布式执行自动化测试用例工具,用于大批量测试用例的 执行
面试题:如果有2000条测试用例,怎么能在最短的时间内执行完测试用例?
用不同电脑执行不一样的测试用例,多线程 + 分布式
提示:selenium-grid可以做分布式(批量在不同平台中运⾏⽤例),⾃动化⽤例较多时、或测试不 同浏览器在不同平台运⾏时可以使⽤。
3、Selenium-Webdriver:脚本编写核心工具,提供模拟手工操作的常用方法
提示:对⻚⾯元素实施⾃动化测试,主要使⽤:webdriver
Web 自动化测试Selenium环境搭建
Web 自动化测试环境搭建步骤:
1、Python开发环境:python解释器、pycharm编码工具
2、安装Selenium:Selenium提供自动化实现的常用方法
3、安装浏览器:脚本结果直接体现Chrome、FireFox
安装浏览器驱动:保证能够使用程序驱动浏览器,实现自动化测试
安装包:
pip install selenium
提示:在安装命令错误时系统会给出正确的版本号 如:pip install selenium==3.123123123
查看包:
pip show selenium
卸载包:
pip uninstall selenium安装浏览器驱动:
1、下载浏览器驱动程序
不同浏览器都有自己独立驱动程序
不同的版本需要下载匹配其版本的驱动程序
查看谷歌浏览器驱动:帮助 --- 关于Google Chrome
2、配置驱动文件环境变量
可直接将驱动文件拷贝到python的安装目录
命令:where python
谷歌浏览器驱动下载地址:
CNPM Binaries Mirror (npmmirror.com)
https://registry.npmmirror.com/binary.html?path=chromedriver/
火狐浏览器驱动下载地址:
Releases · mozilla/geckodriver · GitHub
https://github.com/mozilla/geckodriver/releases
自动化测试脚本初尝试
"""
通过程序启动浏览通过程序启动浏览器,并打开百度首页,暂停3秒,关闭浏览器器,并打开百度首页,暂停3秒,关闭浏览器
"""
# 1、导包
from selenium import webdriver
from time import sleep
# 2、创建浏览器驱动对象
driver = webdriver.Chrome()
# 3、打开web页面
driver.get('http://www.baidu.com')
# 4、暂停3秒
sleep(3)
# 5、关闭驱动对象
driver.quit()
提示:如果忘记浏览器驱动地址怎么办?
# 创建浏览器驱动对象
driver = webdriver.Chrome()
按住ctrl键,点击 Chrome 进入底层,可以看到提示:
You will need to download the ChromeDriver executable from
http://chromedriver.storage.googleapis.com/index.html