Web UI自动化测试之Selenium工具篇

本文大纲截图:

目录

一、自动化测试介绍

1、基本介绍

1.1 自动化

1.2 自动化测试

2、环境搭建

3、测试工具

4、测试流程

5、测试框架

6、基本代码(假定的概念)

二、Selenium工具

1、基本介绍

2、环境安装

2.1 Python3 已安装

2.2 安装 selenium

2.3 安装浏览器驱动

3、工作原理

4、基本代码

5、Selenium API

5.1 元素定位

5.2 元素操作

5.3 特殊元素操作

5.4 元素等待

5.5 鼠标操作

5.6 键盘操作

5.7 浏览器操作


一、自动化测试介绍

1、基本介绍

1.1 自动化

概念: 由机器设备代替人工自动完成指定目标的过程

优点:

  • 1)减少人工劳动力

  • 2)提高工作效率

  • 3)产品规格统一标准

  • 4)规模化(批量生产)

1.2 自动化测试

软件测试:校验系统是否满足规定的需求、弄清预期结果与实际结果之间的差别

软件自动化测试:让程序代替人工去验证系统功能的过程

应用场景:

  • 回归测试:项目在发新版本之后对项目之前的功能进行验证

  • 压力测试:可以理解多用户同时去操作软件,统计软件服务器处理多用户请求的能力

  • 兼容性测试:不同浏览器(IE、Firefox、Chrome)等等

优点:

  • 1)较少的时间内运行更多的测试用例;

  • 2)自动化脚本可重复运行;

  • 3)减少人为的错误;

  • 4)克服手工测试的局限性;

  • 5)提高测试效率,保证产品质量

误区:

  • 1)自动化测试可以完全替代手工测试;

  • 2)自动化测试一定比手工测试厉害;

  • 3)自动化测试可以发掘更多的BUG;

  • 4)自动化测试适用于所有功能

分类:UI自动化、接口自动化、性能测试、单元测试

UI自动化:Web端、移动端

Web端:

  • 什么Web项目适合做自动化测试?
    • 1.需求变动不频繁

    • 2.项目周期长

    • 3.项目需要回归测试

  • Web自动化测试在什么阶段开始?
    • 功能测试完毕(手工测试)

  • Web自动化测试所属分类——黑盒测试(功能测试)
    • 1)黑盒测试(功能测试)

    • 2)白盒测试(单元测试)

    • 3)灰盒测试(接口测试)

移动端:APP应用、小程序、H5页面

2、环境搭建

UI自动化基本环境包括:

  • Java JDK 环境

  • Python和PyCharm安装

  • Selenium WebDriver、浏览器驱动、UnitTest、Pytest、parameterized、json、Selenium Grid

  • MySQL

3、测试工具

  • QTP 是一个商业化的功能测试工具,收费,支持web,桌面自动化测试

  • Selenium 是一个开源的web自动化测试工具,免费,主要做功能测试

  • Robot Framework是一个基于Python可扩展地关键字驱动的测试自动化框架

4、测试流程

  • 1)整理需要进行自动化测试的用例

  • 2)搭建好自动化测试框架环境

  • 3)编写自动化测试用例脚本

  • 4)执行自动化测试用例脚本

  • 5)生成自动化测试报告

5、测试框架

  • Python + Selenium + UnitTest + 数据驱动 + 日志收集

  • PO 模式:封装思想

6、基本代码(假定的概念)

Web 自动化基本代码

""" Web 自动化基本代码 """
# 1、导入模块
from selenium import webdriver
from time import sleep

# 2、实例化浏览器对象:类名()
# 实例化谷歌浏览器对象
# driver = webdriver.Chrome()
# 实例化火狐浏览器对象
driver = webdriver.Firefox()

# 3、打开网页:必须包含协议头
driver.get('http://www.baidu.com')

# 4、观察效果
sleep(6)

# 5、关闭页面
driver.close()

二、Selenium工具

1、基本介绍

Selenium 是一个用于Web应用程序的自动化测试工具。

特点:

  • 开源:源代码开放可以根据需要来增加工具的某些功能

  • 跨平台:linux、windows、mac

  • 支持多语言:Python、Java、C#、JavaScript、Ruby、PHP等

  • 支持常见的浏览器:Firefox、Chrome、IE、Edge、Opera、Safari等

  • 成熟稳定

  • 功能强大

发展史:

Selenium 1.0:

组件Selenium IDESelenium GridSelenium RC[核心组件]

  • Selenium IDE
    • 1)Firefox浏览器插件,可以录制用户的基本操作,生成测试用例

    • 2)测试用例可以在Firefox浏览器里回放

    • 3)测试用例可以转化成其它语言的自动化测试脚本

  • Selenium Grid
    • 允许 Selenium RC 针对规模庞大的测试案例集成;

    • 需要在不同环境中进行的测试案例集进行扩展

  • Selenium RC[核心组件]
    • 1)RC是 Remote Control 的缩写,它的功能就是用来模拟一个浏览器

    • 2)支持多平台、多浏览器及多种开发语言来编写测试用例

  • 缺点:
    • 1)不支持本机键盘和鼠标事件

    • 2)不支持同源策略XSS/HTTP(S)

    • 3)不支持弹出框,对话框(自签名证书和文件的上传、下载)

Selenium 2.0:

  • 组件Selenium 1.0 + WebDriver[核心组件]
    • 注意:2.0 是过渡版本,主要是使用 WebDriver 替换 RC

  • 特点:
    • 1)基于调用 WebDriver API 来模拟用户操作

    • 2)WebDriver 的速度更快,因为它可以直接交互使用

    • 3)支持多种编程语言

Selenium 3.0:

组件Selenium IDESelenium GridWebDriver[核心组件]

Selenium IDE:

  • 作用:负责录制、回放脚本,模拟用户对页面的真实操作

  • 安装:作为浏览器插件安装

  • Chrome插件扩展下载网址:https://www.extfans.com/

Selenium Grid:

  • 作用:用于分布式自动化测试,通过控制多台机器、多个浏览器并行执行测试用例,在测试用例比较多的情况下比较实用。

  • 安装:
    • 1)安装java的jre环境并配置环境变量(配置JDK运行环境)

    • 2)在不同的测试集群机上,分别安装不同类型的浏览器和相应的驱动。并配置好环境变量(将浏览器驱动driver配置进PATH变量中)

    • 3)jar包下载:selenium-server-standalone-XX.XX.jar 下载。在https://selenium-release.storage.googleapis.com/index.html找到适配的版本(与Python中安装selenium版本一致)并将其放到电脑的某一个目录下。

WebDriver[核心组件]:

  • 作用:提供 API 来操作浏览器,如:Chrome、FireFox、IE 等

  • 安装:
    • 1)安装 Python 环境(以及PyCharm编辑器<一种Python IDEIntegrated Development Environment,集成开发环境>)

    • 2)安装命令:pip install selenium

  • 使用:在Python中调用来写测试脚本,去操作Web端网页应用

  • 注意:3.0 版本下所有浏览器除了需要安装 Selenium 框架 以外,还需要安装对应的驱动程序

特点:

  • 1)去掉了对 Selenium RC 的支持

  • 2)全面支持 Java8

  • 3)支持macOS(Sierra or later),支持官方的 SafariDriver

  • 4)通过软件的 WebDriver Server,支持Edge浏览器

  • 5)支持IE9.0以上版本

  • 6)通过火狐官方的GeckoDriver来支持Firefox

2、环境安装

2.1 Python3 已安装

pip是一个通用的 Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载的功能。

2.2 安装 selenium

  • 安装命令:pip install selenium

  • 卸载命令:pip uninstall selenium

  • 查看命令:pip show selenium

2.3 安装浏览器驱动

下载浏览器驱动:

  • 各个驱动下载地址:http://www.seleniumhq.org/download/

  • 注意:浏览器的版本和驱动版本要一致!

火狐浏览器:

  • 1)Firefox 48 以上版本:selenium 3.x + Firefox驱动(geckodriver)
    • 火狐驱动下载地址:https://github.com/mozilla/geckodriver/releases

  • 2)Firefox 48 以下版本:selenium 2.x + 内置驱动

谷歌浏览器:

  • selenium 2.x/3.x + Chrome驱动(chromedriver)

  • 谷歌驱动下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads

Edge浏览器(了解):

  • selenium 3.x + Edge驱动(MicrosoftWebDriver)

  • Edge驱动下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

环境变量配置: 把驱动文件所在目录添加到Path环境变量中或者直接放到Python安装目录,因为Python已添加到Path中。

3、工作原理

  • 1)运行用python写好的selenium脚本,向web service中发送一个http请求;

  • 2)浏览器驱动中的web service会根据这个请求生成对应的js脚本。注意:相同的操作生成的js脚本在不同浏览器中会有所不同,因此不同的浏览器要有不同的驱动;

  • 3)js脚本驱动浏览器,完成selenium脚本中的各种操作,并返回给web service

  • 4)web service将结果通过http响应的形式返回给客户端。

4、基本代码

# 导包
from selenium import webdriver
import time

# 创建浏览器驱动对象
# Chrome浏览器:
driver = webdriver.Chrome()
# Firefox浏览器:
driver = webdriver.Firefox()
# Edge浏览器:
driver = webdriver.Edge()

# 打开Web页面
driver.get("http://www.baidu.com")

# 暂停
time.sleep(3)

# 关闭驱动对象
driver.quite()

5、Selenium API

5.1 元素定位

元素定位方法

  • 方法一:

# 导包
from selenium import webdriver

#定位一个元素
# driver.find_element_by_xxx()

driver.find_element_by_id()
driver.find_element_by_name()
driver.find_element_by_class_name()
driver.find_element_by_tag_name()
driver.find_element_by_link_text()
driver.find_element_by_partial_link_text()
driver.find_element_by_xpath()
driver.find_element_by_css_selector()

# 定位一组元素
# driver.find_elements_by_xxx()

driver.find_elements_by_id()
driver.find_elements_by_name()
driver.find_elements_by_class_name()
driver.find_elements_by_tag_name()
driver.find_elements_by_link_text()
driver.find_elements_by_partial_link_text()
driver.find_eleme
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值