Selenium web UI自动化测试简介与环境搭建

一、 自动化测试简介

1. 自动化测试本质

通过自动化的形式来模拟人工一系列操作(面试可能会问,结合一个场景来回答)
打开项目->定位元素->操作元素->模拟页面动作->断言结果(判断预期结果与实际结果是否一致)->生成报告
举例:云商项目
1) 打开云商项目地址
2) 定位输入框
3) 操作控件(给输入框输入内容),如输入“男装”、点击搜索
4) 跳转到对应页面后,模拟页面动作,如下拉、上滑、页面滑动
5) 断言结果,通过自动化的形式判断预期结果与实际结果是否一致,一致则pass,不一致则fail
6) 生成报告
对于自动化,不能跨步走(即不能在页面1(首页)去操作页面2(购物车)的控件)

2. 适合自动化测试场景

(1) 需求不频繁变动。如果项目还处于探索阶段,不知道项目会发展成什么样子,此时需求会频繁变动,页面的功能也会变化。UI自动化是基于用户界面和功能的,不适合需求频繁变动的项目。最好是在1.0版本已经上线,基本功能已经稳定,之后是不断地迭代更新功能,整个产品需求走势已经确定时开始进行UI自动化工作。
(2) 项目周期较长(3个月及其以上,且基于项目稳定的情况下)
(3) UI比较稳定(页面的布局、控件和功能的显示),和需求不频繁变动是相关联的。
(4) 大量回归测试任务(重复的老功能)

  • 适用测试阶段

(1) 冒烟测试(核心主干功能,对新功能的冒烟)
(2) 回归测试(对老功能的回归,迭代的功能对老功能是否有影响)

  • 不适合UI测试的场景

(1) 音视频播放器(音视频交互性太强,无法拿到视频源、黑屏、蓝屏等无法判断)
(2) 打电话
(3) 游戏类

3. Selenium特点

Selenium主要用于web应用程序的自动化测试,但并不局限于此,它还支持所有基于web的管理任务自动化,其特点如下:

  1. 开源、免费
  2. 多浏览器支持:Firefox、Chrome、IE、opera、edge
  3. 多平台支持:Linux、Windows、MAC
  4. 多语言支持:Java、Python、Ruby、C#、JavaScript、C++
  5. 对web页面有良好的支持
  6. 简单(API简单,API:在类里面封装好的方法,即暴露给别人的一个可用的接口)、灵活(用开发语言驱动)、足够稳定
    Selenium历经3个大版本,selenium1.0、selenium2.0、selenium3.0。selenium不是由单独一个工具构成的,而是由一些插件、类库组成,每个部分都有其特点和应用场景。
  • 扩展知识
  1. Robot framework只是一个关键字驱动框架,它只是封装了selenium、封装了request。使用RF可以做web端自动化、APP端自动化、接口自动化,但是底层还是用的selenium。
  2. RF是一个非常局限于测试工程师思想的工具,比如打开浏览器使用关键字open browser,然后写个URL地址,就可以打开,不需要写任何代码。我们做自动化核心在于我们要知道背后的原理,怎样通过代码实现,其过程是非常灵活的,而不应局限于已经封装好的工具。
4. Selenium3.x版本介绍
  1. 去掉selenium RC。selenium1.0和selenium2.0的底层都使用了selenium RC。
  • 去掉selenium RC的原因
    ① 对于selenium RC的核心实现的是通过JS去控制操作浏览器的,安全性差(每个人都可以调JS)、效率低(中间加了一层)
    ②selenium2.0以webdriver为主,selenium RC并存,selenium
    RC在selenium3.0直接被去掉,selenium3.0的核心就是webdriver
  • 扩展知识
    Web页面有3个核心的东西:html(页面布局)/js(页面实际操作的动作,比如按钮点击)/css(样式,比如颜色、字体大小、段落格式)
  1. Selenium3.0中的Firefox驱动独立了。在selenium3.0之前,只要在不同编程语言下安装好selenium就可以驱动Firefox浏览器运行自动化测试脚本。这是因为不同语言下的selenium库中移动包含了Firefox浏览驱动。然而,现在Firefox浏览器驱动与selenium库分离,单独提供下载。
  2. Edge和Safari原生驱动的支持
5. Ui自动化测试设计原则
  1. 一个case完成一个功能点测试(1个自动化case对应1条手工测试用例,整个行业都是这样做)
  2. 一个脚本是一个完整的场景(使用较少)
  3. 脚本之间独立,不能有依赖(如果有依赖关系,则前面的case失败后会影响后面的执行结果。所以每一条自动化用例都是从打开浏览器、登录开始的,都是相互独立的,不会有任何依赖)
  4. 设置合适的检查点(即断言结果)
  5. 设计良好的框架

二、 Python3+selenium3.x自动化测试环境搭建

1. 安装Python

1) 进入Python官网下载Python,下载地址:https://www.python.org/downloads/
在这里插入图片描述

2) 双击已下载的Python安装包,安装时选择安装界面的“Add Python 3.7 to PATH”进行勾选,避免再次配置环境变量;
在这里插入图片描述

3) 验证Python是否安装成功:windows+R打开cmd命令行,输入命令“python”,如果有提示Python版本,则表示配置成功
在这里插入图片描述

2. 配置Python环境变量

如果在步骤1中没有勾选添加环境变量,则需要手动配置
配置环境变量方法:
1) 找到python.exe所在路径,我所在路径为:C:\Users\Administrator\AppData\Local\Programs\Python\Python37
在这里插入图片描述

2) 选择计算机,鼠标右键->属性->高级系统设置->高级->环境变量,选择系统变量中的Path,将python.exe所在路添加到Path中去,然后点击确定。
注意:win7中的环境变量需要以英文状态下的分号;分隔。
添加环境变量的方法:将exe可执行程序所在的路径添加到path中去,因为cmd执行python命令时,找的就是Python.exe这个文件,配置其他环境变量的方法与这个类似。(将exe可执行文件所在路径添加到环境变量中。)
在这里插入图片描述

3. 配置pip环境变量

与步骤2类似,将pip.exe所在路径添加到path中去,pip.exe通常在python文件夹下的Scripts文件夹下,即路径为:C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts
在这里插入图片描述

4. 安装配置selenium

在cmd下直接执行pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
在这里插入图片描述

5. 下载并安装pycharm编译器

可以通过pycharm编写python代码,目前用的比较多的IDE就是Pycharm,下载地址:https://download.jetbrains.com/python/pycharm-community-2017.3.2.exe,也是下一步下一步默认安装即可。
之前已经安装过,这一步省略。

6. 配置pycharm

打开pycharm,选择左上角file->settings->project->project interpreter
在project interpreter选择Python安装路径,确认下面存在selenium的库
在这里插入图片描述

7. 下载浏览器及对应的驱动

不管是firefox浏览器还是chrome浏览器我们通过selenium自动化操作浏览器都需要用到一个driver,需要进行下载
1) Firefox浏览器及驱动下载

  • Firefox浏览器下载地址:https://www.firefox.com.cn/download/
  • 对应驱动下载地址:https://github.com/mozilla/geckodriver/releases
  • firefox的版本和geckodriver的版本有对应关系,可以自行在网上查找
  • 火狐浏览器版本查看:打开火狐浏览器,点击右上角菜单-帮助-关于Firefox
    在这里插入图片描述

2) Chrome及驱动下载

  • Chrome驱动下载地址:http://chromedriver.storage.googleapis.com/index.html

  • chrome浏览器也和chromedriver有对应关系,需要下载与浏览器对应版本的驱动,如我的谷歌浏览器版本为:87.0.4280.88
    在这里插入图片描述

  • 选择对应版本的驱动(如果没有对应版本的驱动,可使用接近的版本,如果电脑是64位的,也可以选择win32的驱动,都可以正常使用)
    在这里插入图片描述

3) 驱动安装
将下载好的驱动放到与python.exe平行的路径下
在这里插入图片描述

8. 第一个自动化程序

在pycharm中运行以下代码,查看环境是否都已配置成功,如果可以自动打开浏览器并进入百度首页,即说明环境配置完毕

#火狐浏览器
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get('https://www.baidu.com')
time.sleep(5)
#谷歌浏览器
from selenium import webdriver
import time
driver = webdriver. Chrome()
driver.get('https://www.baidu.com')
time.sleep(5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓晓白的软件测试进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值