其他Web测试知识参考:Web自动化测试
目录
一、自动化介绍
1、什么是自动化
2、什么是自动化测试
2.1、自动化测试能解决什么问题?
2.2、自动化测试相关知识
3、什么是Web自动化测试
3.1、什么Web项目适合做自动化测试?
3.2、Web自动化测试在什么阶段开始?
3.3、Web自动化测试所属分类
二、Web自动化测试工具选择
1、主流的Web自动化测试工具
2、什么是Selenium?
2.1、Selenium特点
2.2、Selenium发展史(了解)
2.3、Selenium构建自动化测试框架的最大好处
三、Selenium环境搭建
1、安装selenium包
1.1 、安装
1.2、卸载
1.3、查看
2、安装浏览器驱动
四、入门示例
1、需求
2、实现步骤
3、示例代码
其他Web测试知识参考:Web自动化测试
概念:由机器设备代替人工自动完成指定目标的过程
优点:
1. 减少人工劳动力
2. 提高工作效率
3. 产品规格统一标准
4. 规模化(批量生产)
软件测试:校验系统是否满足规定的需求、弄清预期结果与实际结果之间的差别
自动化测试:让程序代替人工去验证系统功能的过程
1. 解决-回归测试
2. 解决-压力测试
3. 解决-兼容性测试
4. 提高测试效率,保证产品质量
回归测试:项目在发新版本之后对项目之前的功能进行验证
压力测试:可以理解多用户同时去操作软件,统计软件服务器处理多用户请求的能力
兼容性测试:不同浏览器(IE、Firefox、Chrome)等等
优点:
1. 较少的时间内运行更多的测试用例;
2. 自动化脚本可重复运行;
3. 减少人为的错误;
4. 克服手工测试的局限性;
误区:
1. 自动化测试可以完全替代手工测试;
2. 自动化测试一定比手工测试厉害;
3. 自动化测试可以发掘更多的BUG;
4. 自动化测试适用于所有功能;
自动化测试分类:
1. Web-自动化测试 (本次学习)
2. 移动-自动化测试
3. 接口-自动化测试
4. 单元测试-自动化测试
概念:让程序代替人工自动验证Web项目功能的过程
1.需求变动不频繁
2.项目周期长
3.项目需要回归测试
功能测试完毕(手工测试)
1. 黑盒测试(功能测试)
2. 白盒测试(单元测试)
3. 灰盒测试(接口测试)
Web自动化测试属于黑盒测试(功能测试)
1. QTP
QTP是一个商业化的功能测试工具,收费,支持web,桌面自动化测试。
2. Selenium(本次学习)
Selenium是一个开源的web自动化测试工具,免费,主要做功能测试。
3. Robot framework
Robot Framework是一个基于Python可扩展地关键字驱动的测试自动化框架。
Selenium是一个强大的基于浏览器的开源自动化测试工具,通常用来编写web应用的自动化测试;中文的意思(硒)
1. 开源软件:源代码开放可以根据需要来增加工具的某些功能
2. 跨平台:linux、windows、mac
3. 支持多种浏览器:Firefox、Chrome、IE、Edge、Opera、Safari等
4. 支持多种语言:Python、Java、C#、JavaScript、Ruby、PHP等
5. 成熟稳定:目前已经被google、百度、腾讯等公司广泛使用
6. 功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能
1. Selenium 1.0
组成:Selenium IDE + Selenium Grid + SeleniumRC
Selenium IDE: 一个Firefox插件,可以录制用户的基本操作,生成测试用例;
Selenium Remote Control (RC) : 支持多种平台(Windows,Linux,Solaris)和多种浏览器(IE,Firefox,Opera,Safari),可以用多种语言(Java,Ruby,Python,Perl,PHP,C#)编写测试用例;
Selenium Grid: 允许Selenium-RC 针对规模庞大的测试案例集或者需要在不同环境中运行的测试案例集进行扩展;
缺陷 :
不支持本机键盘和鼠标事件;
不支持同源策略XSS/HTTP(S);
不支持弹出框,对话框(基本身份证,自签名的证书和文件上传、下载)
2. Selenium 2.0
Selenium 1.0 + WebDriver,是使用 WebDriver 代码实现的 Selenium 1 的重写
Web Driver:针对各个浏览器而开发,通过原生浏览器支持或者扩展(Chrome webDrive、FireFox WebDriver)直接控制浏览器。
支持多平台、多浏览器、多语言去实现自动化测试;
提高了速度,但是稳定性却决定于浏览器开发商;
它将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里的元素,甚至直接操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书等)
3. Selenium 3.0
Selenium 3 是没有 Selenium RC 代码的 WebDriver 的实现
去掉了对Selenium RC的支持
全面拥抱 java8
支持macOS(Sierra or later),支持官方的safaridriver
通过ms官方的webdriver server支持Edge浏览器
支持ie9.0版本以上
通过Mozilla官方的geckodriver来支持Firefox浏览器
4. Selenium 4.0
是一个涵盖一系列工具和库的项目,这些工具和库支持 Web 浏览器的自动化。
它提供了模拟用户与浏览器交互的扩展、用于扩展浏览器分配的分发服务器,以及用于实现 W3C WebDriver 规范的基础设施 ,允许您为所有主要的 Web 浏览器编写可互换的代码。
- 完全开源、免费
- 可以使用您喜欢的编程语言进行框架、脚本的研发,支持: Java、Python、Ruby、 Node JS、PHP、Perl、C#等主流语言
- 可以很便捷的与单元测试测试框架集成,管理测试脚本、测试套件,生成测试报告
github地址
基于Python环境搭建
1. Python 开发环境(前提)
2. 安装selenium包
3. 安装浏览器
4. 安装浏览器驱动 -- 保证能够用程序驱动浏览器,实现自动化测试
前提:Python3 安装完毕且能正常运行
PIP工具
pip是一个通用的 Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载的功能。
pip install selenium
指定版本安装:
pip install selenium==指定版本号
如:pip install selenium==3.150.2
版本输入错误,能查看所有可安装的版本:
pip uninstall selenium
pip show selenium
火狐浏览器:Firefox 火狐浏览器 - 全新、安全、快速 | 官方最新下载
1. Firefox 48 以上版本 selenium 3.x及以上 + Firefox驱动(geckodriver)
驱动下载地址:Releases · mozilla/geckodriver · GitHub
2. Firefox 48 以下版本
selenium 2.x + 内置驱动
谷歌浏览器:Google Chrome 网络浏览器
selenium 2.x及以上 + Chrome驱动(chromedriver)
驱动下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads
Edge浏览器:https://www.microsoft.com/zh-cn/edge?form=MA13FJ#evergreen
selenium 3.x及以上 + Edge驱动(MicrosoftWebDriver)
驱动下载地址:Microsoft Edge WebDriver - Microsoft Edge Developer
Safari浏览器:Apple 不再提供 Windows 版 Safari 浏览器更新。Windows 版 Safari 浏览器 5.1.7 是适用于 Windows 的最后一个版本,而且现已过时。
内置
安装浏览器驱动的步骤 ( 官方文档:安装浏览器驱动 | Selenium)
1. 下载浏览器驱动
各个驱动下载地址:
Selenium官方地址:Downloads | Selenium
Github地址:Selenium 与 浏览器驱动下载
注意:浏览器的版本和驱动版本要一致
2. 把驱动文件所在目录添加到Path环境变量中
或者直接放到Python安装目录,因为Python已添加到Path中
具体步骤,可参考 mac上配置谷歌与火狐浏览器驱动环境_勇胜读书的博客-CSDN博客
window环境变量配置,可参考 JDK环境变量配置(win7、win10)_勇胜读书的博客-CSDN博客
通过程序启动浏览器,并打开百度首页,暂停3秒,关闭浏览器
1. 导包 from selenium import webdriver
2. 创建浏览器驱动对象
Firefox浏览器:
driver = webdriver.Firefox()
//Firefox()的名字要与你配置浏览器驱动文件名一致,如果驱动文件是小写,那就 firefox()
Chrome浏览器:
driver = webdriver.Chrome() //Chrome()的名字要与你配置浏览器驱动文件名一致
Edge浏览器:
driver = webdriver.Edge() //Edge()的名字要与你配置浏览器驱动文件名一致
3. 打开Web页面 driver.get("http://www.baidu.com/")
4. 暂停 time.sleep(3)
5. 关闭驱动对象 driver.quit()
# 导包
from selenium import webdriver
import time
# 创建浏览器驱动对象
driver = webdriver.Firefox()
# driver = webdriver.Chrome()
# driver = webdriver.Edge()
# 加载web页面
driver.get("http://www.baidu.com/")
# 暂停3秒
time.sleep(3)
# 关闭驱动对象
driver.quit()