前言
随着互联网技术的高速发展,信息的高效传播,业务需求的变化越来越快,这对软件开发的交付速度要求是越来越高的,甚至要达到持续交付的程度。在这种敏捷开发模式在整个开发团队里面运用得越来越多,运维们也开始高举DevOps、AIOps的大旗,作为软件开发环节中保证软件交付质量最重要的一环的测试,也不能再安逸于用例设计和简单的手工测试了,必须加快测试的速度,提高自己的交付能力了。而要提高测试速度,甚至做到持续测试,自动化就是其中最关键的一步了。<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组件选择
如果你想创建强大的、基于浏览器的自动化回归测试脚本,或者跨多个平台执行测试请使用Selenium
WebDriver+Selenium Server。
Selenium WebDriver使用针对不同浏览器的驱动来操作浏览器(取代Selenium 1和Selenium 2中的Remote Control)。
如果你想快速生成自动化测试脚本,可以使用Selenium IDE,它是基于Firefox或者Chrome的附加组件,可以对浏览器的交互进行简单的录制和回放。
注:本文仅仅介绍Selenium WebDriver和Selenium Server的使用。
环境部署
安装Python
Linux:
1、 下载指定版本的python 源码文件:
下载地址:https://www.python.org/downloads/source/
2、解压该压缩文件:
tar -zxvf package-version.tar.gz
3、安装依赖组件及编译源码:
yum -y install zlib-devel bzip2 bzip2-devel
readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
./configure --prefix=/usr/python
--enable-shared CFLAGS=-fPIC
make
make install
4、环境变量配置:
cd /etc/ld.so.conf.d/
vi python3.conf
#在文件中添加Python路径:/usr/python/lib
ldconfig
5、创建软连接:
ln -s /usr/python/bin/python3
/usr/bin/python3
ln -s /usr/python/bin/pip3 /usr/bin/pip3
注:Linux自带Python 2,此处安装版本为Python 3
Windows:
1、 下载指定版本的安装包
下载地址:https://www.python.org/downloads/windows/
2、双击下载好的.exe文件,以图形化界面安装:
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:
PyCharm 是一款功能强大的
Python 编辑器,具有跨平台性,是最流行的Python编辑器之一。
下载地址:http://www.jetbrains.com/pycharm/download/#section=windows
Visual Studio Code:
Visual Studio Code (简称 VS Code)是微软出品的一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段、代码对比 Diff、GIT命令 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。
Sublime Text:
Sublime Text是一个轻量、简洁、高效、跨平台的编辑器。它的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。由于方便的配色以及兼容vim快捷键等各种优点博得了很多开发人员的喜爱。
第一个自动化测试脚本
在搭建好Selenium的基本环境之后,可以开始编写我们的第一个自动化测试脚本:
#导入WebDriver模块
from selenium import webdriver
#导入时间模块
import time
#使用ChromeDriver打开Chrome浏览器
driver = webdriver.Chrome()
#打开腾讯课堂
driver.get("https://ke.qq.com/")
#定位搜索输入框
searchEle = driver.find_element_by_id("js_keyword")
#输入搜索关键字
searchEle.send_keys("testops")
#定位搜索按钮
searchBtnEle = driver.find_element_by_id("js_search")
#点击搜索按钮
searchBtnEle.click()
#强制等待,以利于人眼观察
time.sleep(3)
#关闭浏览器
driver.quit()
这段脚本完成了从打开谷歌浏览器,进行腾讯课堂页面,并搜索“testops”相关课程,然后退出操作。