本期导航:了解自动化测试、web自动化、selenium工具,掌握基于python+selenium+浏览器的基础配置,完成一个简单的自动化测试
目录
一、自动化测试与工具selenium
1.自动化测试
自动化测试的定义:把以人为驱动的测试行为转化为机器执行的过程。
关键点:程序测试程序、代码代替思维、脚本代替人工
作用:节约资源、提高效率、提高测试覆盖率
2.自动化测试工具Selenium
Selenium是一个用于Web应用程序测试的工具;中文的意思(硒)。
特点:
- 开源软件:源代码开放可以根据需要来增加工具的某些功能
- 跨平台:linux 、windows 、mac
- 核心功能:就是可以在多个浏览器上进行自动化测试
- 多语言:Java、Python、C#、JavaScript、Ruby等
- 成熟稳定:目前已经被google , 百度, 腾讯等公司广泛使用
- 功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能
Selenium WebDriver 原理示意图:
- Selenium Client Library
Selenium自动化测试人员可以使用Java、Ruby、Python、C#等语言,利用它们提供的库来编写脚本。
- JSON Wire Protocol Over HTTP Client
JSON Wire Protocol是在HTTP服务器之间传输信息的REST风格的API。每个浏览器驱动程序(如FirefoxDriver、ChromeDriver等)都有它们各自的HTTP服务器。
- Browser Drivers
不同的浏览器都包含一个单独的浏览器驱动程序。浏览器驱动程序与相应的浏览器通信。当浏览器驱动程序接收到任何指令时,将在相应的浏览器中执行,响应信息将以HTTP的形式返回。
- Browsers
Selenium支持多种浏览器,如Firefox、Chrome、IE、Safari等。
二、selenium安装配置与简单测试
1.准备工具
所需工具:
- Python 3.5(以上版本)
- PyCharm(Python、PyCharm安装不做介绍)
- selenium
- 浏览器
- 对应的浏览器驱动(WebDriver)
selenium 安装、卸载、查看命令:
- 安装(-i 表示选择地址,下面为选择清华镜像,安装更快快捷)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium
其他镜像推荐:
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
- 卸载
pip uninstall selenium
WebDriver下载地址:
官方列表:
国内镜像(推荐):
EdgeWebDriver:
Microsoft Edge WebDriver | Microsoft Edge Developer
ChromeWebDriver:
FireFoxWebDriver:
2.操作步骤
步骤1:安装selenium
直接在cmd的命令行窗口下使用命令,或者在python终端下使用命令,以下演示为后者:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium
输入pip list 可以查看已经导入的包,这里显示导入了4.15.2版本的selenium:
步骤2:下载Edge浏览器驱动
通过上面介绍可以知道在写Web自动化的过程中,如果使用微软的Edge浏览器,需要加载相应的浏览器驱动,才可以执行Selenium基于Edge浏览器的自动化测试。
首先我们先查看浏览器版本,点击设置后点击最后一栏关于Edge,右上方关于下面可以看到版本号,这里为119.0 .2151.97(正式版本)(64 位)。
然后进入上面给出的地址选择适合版本的 WebDriver,上面准备工具中也给出了Chrome、FireFox的 WebDriver下载地址,其他浏览器的驱动小伙伴们可以自行下载。
EdgeWebDriver:
Microsoft Edge WebDriver | Microsoft Edge Developer
点击进去,查找对应版本下载即可:
步骤3:将驱动程序放入指定目录
下载完成并解压缩后,将其中的msedgedriver.exe
文件放入到python的安装路径下。
或者放在任意目录下,配置一下高级系统设置中的环境变量中的系统变量,在其中新增我们放置解压文件msedgedriver.exe
的目录,并保存。这里操作图示如下:
步骤4:编写python代码进行测试
python文件测试代码如下:
from selenium import webdriver
from time import sleep
# 创建WebDriver对象
# 如果把驱动放置到了 系统环境变量目录中,可不带参数创建
driver = webdriver.Edge()
# 如果没有放置到系统环境变量目录中,需要通过参数指定
# driver= webdriver.Chrome(executable_path="./msedgedriver.exe")
url = 'https://www.baidu.com'
# 使用浏览器打开指定页面
driver.get(url)
sleep(10)
# 关闭浏览器
driver.quit()
运行后自动打开百度,并停留10秒后关闭,测试通过,则表示配置成功。
三、常见错误总结
TypeError: 'module' object is not callable
解决方法:driver = webdriver.edge()语句中.后面的字母要大写,应为.Edge()。
备注:由于一些浏览器有默认自动更新的设置,后续使用中可能会导致版本不一致,从而引发问题,建议关闭自启动。