前言

  1. 随着互联网技术的高速发展,信息的高效传播,业务需求的变化越来越快,这对软件开发的交付速度要求是越来越高的,甚至要达到持续交付的程度。在这种敏捷开发模式在整个开发团队里面运用得越来越多,运维们也开始高举DevOpsAIOps的大旗,作为软件开发环节中保证软件交付质量最重要的一环的测试,也不能再安逸于用例设计和简单的手工测试了,必须加快测试的速度,提高自己的交付能力了。而要提高测试速度,甚至做到持续测试,自动化就是其中最关键的一步了。<br /> 现在要谈起web UI自动化,就不可能不提到近几年一直占据自动化测试工具排行榜首位的Selenium了。本书将使用目前最新版本的Selenium 3进行介绍(据官方介绍Selenium 4将在今年-2019年圣诞节发布,敬请期待),从最基本的Selenium3的介绍、基本原理、元素定位、元素操作开始介绍,从零基础开始带大家深入了解Selenium 3,了解WebDriver。<br /> 这个版本是基于近两年最受欢迎的语言Python来介绍的,Java版也会做同步更新。<br /> Java版访问地址:[https://www.yuque.com/testops/afopxn/uxorxu](https://www.yuque.com/testops/afopxn/uxorxu)

Selenium 3介绍

什么是Selenium 3?

Selenium是一个免费的分布式自动化测试工具。它主要用于Web应用程序的自动化,但是也不仅限于此,对于只要是基于以Web管理为基础的应用都可以适用(APP就是其中之一)。
Selenium支持多语言:Java、Python、Ruby、C#、JavaScript等都可以;
支持多平台:Windows、Linux、Mac;
支持多浏览器:Chrome、Firefox、IE、Safari、Opera等,同样支持无头浏览器;
分布式:适用Selenium Server可以把测试用例分布到不同的测试机器上执行。

Selenium组件选择

1.png
如果你想创建强大的、基于浏览器的自动化回归测试脚本,或者跨多个平台执行测试请使用Selenium WebDriver+Selenium Server。
Selenium WebDriver使用针对不同浏览器的驱动来操作浏览器(取代Selenium 1和Selenium 2中的Remote Control)。

2.png
如果你想快速生成自动化测试脚本,可以使用Selenium IDE,它是基于Firefox或者Chrome的附加组件,可以对浏览器的交互进行简单的录制和回放。

注:本文仅仅介绍Selenium WebDriver和Selenium Server的使用。

环境部署

安装Python

Linux:
1、 下载指定版本的python 源码文件:
下载地址:https://www.python.org/downloads/source/

2、解压该压缩文件:

  1. tar -zxvf package-version.tar.gz


3、安装依赖组件及编译源码:

  1. yum -y install zlib-devel bzip2 bzip2-devel
  2. readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
  3. ./configure --prefix=/usr/python
  4. --enable-shared CFLAGS=-fPIC
  5. make
  6. make install

4、环境变量配置:

  1. cd /etc/ld.so.conf.d/
  2. vi python3.conf
  3. #在文件中添加Python路径:/usr/python/lib
  4. ldconfig

5、创建软连接:

  1. ln -s /usr/python/bin/python3
  2. /usr/bin/python3
  3. ln -s /usr/python/bin/pip3 /usr/bin/pip3

注:Linux自带Python 2,此处安装版本为Python 3

Windows:
1、 下载指定版本的安装包
下载地址:https://www.python.org/downloads/windows/

2、双击下载好的.exe文件,以图形化界面安装:
3.png

MAC:
1、 下载指定版本的安装包
下载地址:https://www.python.org/downloads/mac-osx/

2、 双击下载好的安装文件,完成安装。

安装Selenium

使用pip命令安装
pip install selenium

使用源码安装:
1、 下载指定版本的安装包,
下载地址:https://docs.seleniumhq.org/download/

2、 解压下载好的安装包

3、使用Python 3安装源码:
python3 install setup.py

下载配置浏览器驱动

WebDriver需要使用针对不同浏览器的驱动程序来操作浏览器,所以需要下载好不同的浏览器驱动。
下载完成后,将各个驱动放置到指定位置即可(可以为项目文件夹内,也可以为测试脚本可找到PATH中)

Chrome:
下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads

若无法方法,可以选择国内地址:http://chromedriver.storage.googleapis.com/index.html

注:不同的Chrome的版本对应的chromedriver.exe 版本也不一样,下载时不要搞错了。如果是最新的Chrome, 下载最新的chromedriver.exe 就可以了。

Firefox:
下载地址:https://github.com/mozilla/geckodriver/

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

IE:
下载地址:http://selenium-release.storage.googleapis.com/index.html

其它:
驱动下载地址均可在下列页面查看:https://docs.seleniumhq.org/download/

安装编辑器

Python常用的编辑器非常多,大家可以根据自己的喜好进行选择,这里推荐以下几款以供大家参考。

Pycharm:
5.png
PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性,是最流行的Python编辑器之一。
下载地址:http://www.jetbrains.com/pycharm/download/#section=windows

Visual Studio Code:
6.png
Visual Studio Code (简称 VS Code)是微软出品的一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段、代码对比 Diff、GIT命令 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。

Sublime Text:
7.png
Sublime Text是一个轻量、简洁、高效、跨平台的编辑器。它的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。由于方便的配色以及兼容vim快捷键等各种优点博得了很多开发人员的喜爱。

第一个自动化测试脚本

在搭建好Selenium的基本环境之后,可以开始编写我们的第一个自动化测试脚本:

  1. #导入WebDriver模块
  2. from selenium import webdriver
  3. #导入时间模块
  4. import time
  5. #使用ChromeDriver打开Chrome浏览器
  6. driver = webdriver.Chrome()
  7. #打开腾讯课堂
  8. driver.get("https://ke.qq.com/")
  9. #定位搜索输入框
  10. searchEle = driver.find_element_by_id("js_keyword")
  11. #输入搜索关键字
  12. searchEle.send_keys("testops")
  13. #定位搜索按钮
  14. searchBtnEle = driver.find_element_by_id("js_search")
  15. #点击搜索按钮
  16. searchBtnEle.click()
  17. #强制等待,以利于人眼观察
  18. time.sleep(3)
  19. #关闭浏览器
  20. driver.quit()

这段脚本完成了从打开谷歌浏览器,进行腾讯课堂页面,并搜索“testops”相关课程,然后退出操作。

WebDriver元素定位

WebDriver基本元素操作

WebDriver扩展元素识别及操作

WebDriver API

UnitTest与PyTest

数据驱动

PO设计模式

Selenium Grid 与分布式测试

多线程执行测试用例

Jenkins 持续集成与发布