知识不是靠一篇或者几篇博客就能掌握的,它从来都不是轻松的
当明白这个道理时,我静下心来选择了《Python测试驱动开发》来学习,目前还用不上,但是这本书是今年前半年的计划,新工作也比较忙,写博客的目的第一个是做笔记,第二个是分享
这本教程涵盖了自动化测试大部分内容,包括Unittest框架、Django Web框架、Selenium库、HTML等的使用日常使用方法,想学自动化的童鞋可以找来看看.挺不错的一本书
需要安装的软件
• Firefox Web 浏览器
Selenium 其实能驱动任意一款主流浏览器,不过以Firefox 举例最简单,因为它跨平台。而且使用Firefox 还有另外一个好处——和公司利益没有多少关联。
• Git 版本控制系统
Git 可在任何一个平台上使用。Windows 安装环境带有Bash 命令行,这是本书所需的。
• 装有Python 3、Django 1.11 和Selenium 3 的虚拟环境
Python 3.4+ 现在自带virtualenv 和pip(早期版本没有,这是一大进步)。搭建虚拟环境的详细说明参见后文。
• Geckodriver
这是通过Selenium 远程控制Firefox 的驱动。在“安装Firefox 和Geckodriver”一节会
给出下载链
针对Windows的说明
Windows 用户有时会觉得被开源世界忽略了,因为macOS 和Linux 太普遍了,很容易让人忘记在Unix 之外还有一个世界。使用反斜线作为目录分隔符?盘符?这些是什么?不过,阅读本书时仍然可以在Windows 中实践。下面是一些小提示。
- 在Windows 中安装Git 时,一定要选择“Run Git and included Unix tools from the
Windows command prompt”(在Windows 命令提示符中运行Git 和所含的Unix 工具)。选择这个选项之后就能使用Git Bash 了。把Git Bash 作为主要命令提示符,你就能使用所有实用的GNU 命令行工具,例如ls、touch 和grep,而且目录分隔符也使用斜线表示。 - 在Git 安装程序中,还要勾选“Use Windows’default console”(使用Windows 的默认控制台),否则Python 在Git Bash 窗口中无法正常使用。
- 安装Python 3 时,除非已经安装了Python 2 且想继续将它用作默认版本,否则一定要选中“Add Python 3.6 to PATH”(把Python 3.6 添加到系统路径中,如图P-1 所示),这样才能在命令行中顺利运行Python。测试所有软件是否正确安装的方法是,打开Git Bash 命令提示符,在任意一个文件夹中执行命令python 或pip。
安装浏览器和驱动
安装Firefox和Geckodriver
从https://www.mozilla.org/firefox/ 可下载Windows 和macOS 的Firefox 安装包。Linux 可能已经预装了Firefox;如果没有,使用包管理器安装。
Geckodriver 可从https://github.com/mozilla/geckodriver/releases 下载。下载后解压,放到系统路径中的某个位置。
• 对macOS 或Linux 来说,可以放在~/.local/bin 目录中。
• 对Windows 来说,可以放在Python 的Scripts 文件夹中。
为了确认是否成功安装,打开一个Bash 控制台,执行下述命令:
geckodriver --version
geckodriver 0.17.0
The source code of this program is available at
https://github.com/mozilla/geckodriver.
This program is subject to the terms of the Mozilla Public License 2.0. You can obtain a copy of the license at https://mozilla.org/MPL/2.0/
如果无法执行这个命令,可能是因为~/.local/bin 不在PATH 中(针对Mac 和Linux 系统)。这个文件夹最好加到PATH 中,因为使用pip install --user 安装的Python 包都存储在这里。把这个文件夹添加到.bashrc 文件中的方法如下所示2:
echo 'PATH=~/.local/bin:$PATH' >> ~/.bashrc
然后关闭终端,重新打开,再次确认能否执行geckodriver --version 命令。
搭建虚拟环境
Python 项目所需的环境使用virtualenv(virtual environment 的简称)搭建。在不同项目的虚拟环境中可以使用不同的包(例如不同版本的Django,甚至是不同版本的Python)。而且虚拟环境中的包不是全局安装的,因此无须root 权限。Python 从3.4 版开始集成了用于搭建虚拟环境的virtualenv 工具,不过我始终建议使用virtualenvwrapper 这个辅助工具。先安装virtualenvwrapper(对Python 版本没有要求):
注:以$开始的命令都是在Git Bash窗口中运行,而不是CMD
Windows中
pip install virtualenvwrapper
然后让Bash自动加载virtualenvwrapper
echo "source virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc
virtualenvwrapper 把所有虚拟环境都放在一个地方,而且为激活和停用虚拟环境提供了便利的工具。下面创建一个名为“superlists”3 的虚拟环境, 并在里面安装Python 3:
#在Linux中
mkvirtualenv --python=python3.6 superlists
#在Windows中,我是在Windows所以用这个
mkvirtualenv --python=`py -3.6 -c"import sys; print(sys.executable)"` superlists
激活和停用虚拟环境
(superlists) $ which python
/home/harry/.virtualenvs/superlists/bin/python
#(在Windows中会显示为下面这样
/C/Users/IEUser/.virtualenvs/superlists/Scripts/python)
(superlists)
启用虚拟空间,workon superlists
,每一行会有显示superlists
(superlists) $ deactivate
$ which python
/usr/bin/python
$ python --version
# 在我的设备中,虚拟环境外部的“python”默认为Python 2
Python 2.7.12
$ workon superlists
(superlists) $ which python
/home/harry/.virtualenvs/superlists/bin/python
(superlists) $ python
配置好了后在我的本地显示为
$ which python
/C/Users/guota/.virtualenvs/superlists/Scripts/python
(superlists)
也可以查看Python版本
$ python --version
Python 3.7.0
安装Django和Selenium
安装Django 1.11 和最新版 Selenium<4,即 Selenium 3:
# 注意django这里安装的是版本<1.12,selenium版本<4
pip install "django<1.12" "selenium<4"
我的本地环境安装如下:
跑完之后,安装成功,进入第二章
常见错误作者的解释
对刚接触虚拟环境的人来说,肯定会经常忘记激活虚拟环境(说实话,老手也经常犯这个 错,比如我)。这时,你会看到一个错误消息,其中的重要部分如下所示:
ImportError: No module namedselenium
或者是:
ImportError: No module named django.core.management
如果遇到这种错误,不要慌,先看看命令提示符中有没有(superlists)。通常只需执行 workon superlists 就能解决问题。
除此之外,可能还会遇到这个错误:
bash: workon: command not found
这表明你前面少做了一步,没有把virtualenvwrapper 添加到.bashrc 中。从前文中找到 echo source virtualenvwrapper.sh 命令,再执行一遍。
'workon' is not recognized as aninternal or external command, operable program or batch file.
这表明你打开的是Windows 的默认命令提示符cmd,而不是Git Bash。关掉cmd,打开 Git Bash。