您的位置:首页 > 其它

偷懒大法好,用 selenium 做 web 端自动化测试

2020-06-20 20:00 274 查看

自动化入门介绍

实验介绍

本次实验主要介绍什么是自动化测试和自动化测试工具 selenium。然后介绍怎么安装浏览器驱动工具 webdriver,并且开发一个简单的自动化测试脚本,体会自动化测试是怎么实现的。

知识点

  • 自动化测试介绍
  • selenium 介绍
  • webdriver 安装
  • 第一个脚本开发

自动化测试概念

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。其实质是写脚本或使用工具测试程序。

自动化测试分类

自动化测试是使用各种工具或程序代替人工测试的一种行为。只要是解除人工操作的测试都可以称为自动化测试,细分又有好多种类,下面简单列举一些。

  • Web UI 自动化测试。
  • API 自动化测试。
  • 性能自动化测试。
  • 单元测试。
  • Windows 窗体 UI 自动化测试。

本系列实验以 Python Web UI 自动化测试为主,为了方便起见以后直接简称自动化测试。

怎么学习自动化测试

写好自动化测试的前提是有夯实的手工测试基础,学习自动化测试的基本路线大致如下:

  1. 做好手工功能测试(包括测试理论知识,涉及的工具使用等)。
  2. 学习前端基本知识(HTML、CSS、JavaScript)。
  3. 掌握一门编程语言(例如 Python、Java)。
  4. 精通自动化测试工具(目前最流行的为 Selenium)。
  5. 精通自动化测试框架(UnitTest、Pytest)。
  6. 熟悉自动化测试模型(线性模型、模块化驱动、数据驱动、关键字驱动、行为驱动)。
  7. 熟悉集成工具(例如 Jenkins)。

学完以上七点,便可在项目中进行自动化测试。

本系列实验将会以 Python3 + Selenium 为基础进行展开。

什么样的项目适合自动化测试

对项目进行自动化测试之前要了解项目是否适合做自动化测试。业界普遍从三个方面进行考虑。

  1. 需求稳定,变更不会太频繁。

自动化测试只适用比较稳定的系统或系统中的部分功能模块。如果需求变更过于频繁则自动化测试的脚步维护也就比较大,进而成本也会加大,从而消耗更多的资源,是不划算的。

  1. 维护周期长,具有生命力。

开发自动化测试脚本是需要时间的。如果项目周期比较短,下一个版本已经开始了,对某些模块有了新的变动,而正在进行的自动化测试开发将会变得毫无意义。

  1. 被测系统开发规范,可测性强。

测试脚本的开发需要根据被测系统而考虑,如果被测系统架构不完善则测试工具和测试技术很难应对,一旦测试人员的能力不是很好,则设计出来的测试框架、写出来的测试脚本在应对性上也很差。由此便造成自动测试产生的价值没有手工测试来的直接。

selenium 是什么

Selenium 是一个用于 Web 系统自动化测试的工具集,现在所说的 Selenium 通常是指 Selenium Suite,其包含 Selenium IDE、Selenium WebDriver 和 Selenium Grid 三部分。

  • Selenium IDE:是一个 Firefox 插件,可以根据用户的基本操作自动录制脚本,然后在浏览器中进行回放。
  • Selenium WebDriver:WebDriver 的前身是 Selenium RC,其可以直接给浏览器发送命令模拟用户的操作。Selenium RC 为 WebDriver 的核心部分,它可以使用编程语言如 Java、C#、PHP、Python、Ruby 和 Perld 的强大功能来创建更复杂的测试。Selenium RC 分为 ClientLibraries(编写测试脚本)和 Selenium Server(控制浏览器行为)两部分。
  • Selenium Grid:是一个用于运行在不同的机器、不同的浏览器并行测试的工具,用于加快测试用例的运行速度。

安装浏览器驱动

WebDriver 是 Selenium Tool 套件中最重要的组件,其就像一个媒介,用脚本驱动 WebDriver,WebDriver 再去控制浏览器,从而实现脚本对浏览器的操作。

只有安装了浏览器驱动才能使用 Selenium 发送指令模拟人类行为操作浏览器。不同的浏览器需要安装各自的驱动,接下来以 Chrome 浏览器为例安装 chromedriver.exe。

  1. 查看 Chrome 版本。

由于安装的 chromedriver.exe 版本需要和 Chrome 浏览器版本匹配,所以我们需要知道 Chrome 的版本。从 Chrome 浏览器右上角的菜单中依次选择【帮助(E)】、【关于 Google Chrome(G)】,查看浏览器的版本。

  1. 下载 chromedriver。

进入 chromedriver 下载地址下载 https://chromedriver.storage.googleapis.com/index.html 或使用淘宝镜像地址下载 https://npm.taobao.org/mirrors/chromedriver/ ,进入后选择对应的版本号。

然后根据自己的系统选择对应的 zip 文件进行下载。如实验的系统是 Linux 则下载 chromedriver_linux64.zip,并将其保存在 

/home/shiyanlou/Code/
 下。

下载后通过 cd 命令进入到 

/home/shiyanlou/Code/
 目录中,使用命令 
unzip chromedriver_linux64.zip
 进行解压。

3. 将 chromedriver 移至 python 所在目录下。

将 chromedriver 移动至 Python 编辑器所在的目录 

/usr/bin/
 下,使 chromedriver 与 python 处于同一目录下,这样做的目的是便于 Python 在执行时可以找到 chromedriver。 使用命令 
sudo cp -r /home/shiyanlou/Code/chromedriver /usr/bin/

不同的浏览器需要是使用不同的驱动,下面列出 FireFox 和 IE 浏览器驱动的下载地址。

开发第一个自动化测试脚本

打开 Xfce 终端,依次输入下面命令,先安装 Python3 安装第三方库的程序 pip,安装完成后对 pip 进行升级,然后安装 selenium 库。

sudo apt install python3-pip
sudo pip3 install --upgrade pip
pip3 install selenium

继续输入下面命令,进入到 python 环境中,然后导入 webdriver。

python3
from selenium import webdriver

输入 

driver = webdriver.Chrome()
 启动 Chrome 浏览器。

输入 

driver.get("https://www.shiyanlou.com/")
 后在浏览器中打开实验楼首页。

输入 

driver.close()
 关闭浏览器。

在命令行中体验了怎么运行,现在将上面的步骤写成 py 文件。

在 

/home/shiyanlou/Code/
 目录下新建 
myfirst_project.py
 文件。

在 

myfirst_project.py
 中编辑代码,操作浏览器打开实验楼首页,然后关闭浏览器。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.shiyanlou.com/")
driver.close()

然后打开 Xfce 终端,输入下面命令运行 

myfirst_project.py
 脚本。

python3 /home/shiyanlou/Code/myfirst_project.py

命令执行后脚本会驱动 webdriver 打开 Chrome 浏览器,然后访问实验楼首页,最后关闭浏览器。

实验总结

实验知识点回顾:

  • 自动化测试介绍
  • selenium 介绍
  • webdriver 安装
  • 第一个脚本开发

本次实验主要是一些概念性内容,在做完本实验后对自动化测试有一个基本的认识,了解到本系列实验展开的方向。并且实际动手进行了一次自动化测试脚本开发,体会到自动化测试运行的过程。

以上内容来自课程《Python Web 自动化测试入门实战》,课程后续你将学到:

< ad8 img src="https://upload-images.jianshu.io/upload_images/226662-e1eec46e335f78f9.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="" loading="lazy">

 

点击《Python Web 自动化测试入门实战》,学习完整课程内容!

本课程由《Python Web 自动化测试入门与实战》中部分内容改编而成。从自动化入门、元素的基础操作、常用方法的使用等基础知识开始,到单元测试框架 UnitTest 和测试模型的介绍,最后使用 PO 模型结合实验楼网站的几个功能进行项目实战。课程结合工具 Jenkins 进行持续构建,是一个完整的自动化测试体系。

课程中提供详细的步骤和丰富的截图进行展示,内容编排循序渐进,在实验中理论与实践同步进行,尽可能的使学习者掌握所学知识并且熟练运用。

通过学习本课程都能够快速进入 Web 自动化测试领域,对 Web 自动化测试有一个清晰地理解,并且具备承担 Web 自动化测试开发的能力。

 

发送邮件 tynam.yang@gmail.com 联系笔者获取邀请码,可享受九折优惠。

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: