Robot-Framework测试环境搭建

安装python环境。

由于Robot Framework是基于python2开发的,所以必须选择安装python2版本,不然会造成很多异常,之后需要的一些依赖python2的库也无法安装。这里我选择安装的是Anaconda2,它自身就包含较多的python库,比较好用。

安装Appium。如果安装过程中遇到问题,还请看Appium安装

1
npm install appium -g

安装Robot Framework

源码安装。下载地址
1
2
cd .../robotframework/
python setup.py install
通过pip安装
1
pip install robotframework

安装wxPython。下载地址

windows环境:exe文件,正常安装
mac环境brew安装,修改源码
1
brew install wxpython                   # 使用Homebrew安装wxpython

对于wxPython的版本控制语句存在于/Library/Python/2.7/site-packages/robotide/__init__.py文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import sys
import os
from string import Template

errorMessageTemplate = Template("""$reason
You need to install wxPython 2.8.12.1 with unicode support to run RIDE.
36 wxPython 2.8.12.1 can be downloaded from http://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/""")
supported_versions = ["2.8"]

try:
import wxversion
from wxversion import VersionError
if sys.platform == 'darwin':
supported_versions.append("2.9")
supported_versions.append("3.0") # 新增该代码,让ride支持wxpython3.0
wxversion.select(supported_versions)
import wx

查看 wxpython 是否在环境变量中

1
brew info wxpython

这说明正常

1
2
3
4
5
6
7
8
9
10
# taoyi @ TYMAC in ~ [1:57:29] C:1
$ brew info wxpython
wxpython: stable 3.0.2.0 (bottled)
Python bindings for wxWidgets
https://www.wxwidgets.org/
/usr/local/Cellar/wxpython/3.0.2.0_1 (1,108 files, 37.9MB) *
Poured from bottle on 2018-09-05 at 01:53:47
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/wxpython.rb
==> Dependencies
Required: python@2 ✔, wxmac ✔

安装ride。

RIDE 是Robot Framework测试数据的编辑器。它使测试用例的创建、运行、测试项目的组织可以在图形界面下完成。

源码安装。下载地址
1
2
cd .../robotframework-ride/
python setup.py install
通过pip安装
1
pip install robotframework-ride

最新版本1.5.2.1可能会出现闪退的问题,那就需要降级,先卸载该版本,然后下载1.5.2版本

命令行启动ride

Windows

定位到ride安装的位置,C:\Anaconda2\Scripts\

1
python ride.py

mac

ride.py已经自动加入到了环境变量下面
可以直接通过运行ride.py执行

安装robotframework-appiumlibrary

1
pip install robotframework-appiumlibrary

安装robotframework-selenium2library

1
pip install robotframework-selenium2library

Mac 下 pkg 安装 Python2.7,启动 ride.py

Mac 下 pkg 安装 Python2.7 的情况下,pip 快捷目录为/usr/local/bin/pip,也就是/Library/Frameworks/Python.framework/Versions/2.7/bin/pip对应的软连接的位置的文件,对应的第三方库安装位置为/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/
然后通过/usr/local/bin/pip install robotframework-ride==1.5.2来安装ride.py,再通过brew来安装wxpython,最后就能通过/Library/Frameworks/Python.framework/Versions/2.7/bin/ride.py来启动ride.py,如果/usr/local/bin/ride.py没有生成的话。

问题解决

遇到ride无法启动的问题【Windows】
1
2
3
4
5
6
7
8
9
Python 2.7.11 |Anaconda 4.0.0 (64-bit)| (default, Feb 16 2016, 09:58:36) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> from robotide import main
wxPython not found.
You need to install wxPython 2.8 toolkit with unicode support to run RIDE.
wxPython 2.8.12.1 can be downloaded from
http://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/

安装的ride是基于wxPython 2.8.12.1 编译的,所以就需要安装 wxPython 2.8.12.1。

还有另一个问题,可能会遇到ride界面工具crash的问题
需要删除.robotframework

1
rm -rf ~/.robotframework/

mac 强制安装 wxpython2.8.12.1 或 wxpython3.0.2.0
  1. 下载wxPython2.8-osx-unicode-2.8.12.1-universal-py2.7.dmg
  2. 下载wxPython3.0-osx-3.0.2.0-cocoa-py2.7.dmg (36.0 MB)
  3. 打开得到wxPython2.8-osx-unicode-universal-py2.7.pkg;右键显示包内容,再得到wxPython2.8-osx-unicode-universal-py2.7.pax.gzpostflight;解压wxPython2.8-osx-unicode-universal-py2.7.pax.gz,再得到/usr/local/lib/wxPython-unicode-2.8.12.1,把该文件夹放入系统的/usr/local/lib/中,切换到postflight目录,运行命令sudo ./postflight,安装好wxpython2.8.12.1。
  4. 执行ride.py提示:

    1
    python should be executed in 32-bit mode with wxPython on OSX.

    是因为wxpython是32位的,而我们安装的是64位的。
    输入以下命令强制执行32位:

    1
    defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
ride 一次使用后再次打开崩溃的问题

因为用pip install robotframework-ride安装的ride是1.5.2.1版本,会出现这个问题,所以安装指定的1.5.2版本

1
pip install robotframework-ride==1.5.2

切换使用pyenv来管理python环境后,ride.py无法启动

因为安装的ride.py在启动时,调用了虚拟环境的python,但是虚拟环境的python无法启动GUI界面,所以如果需要使用ride.py的GUI界面,就需要从系统python安装的ride.py去启动。
这样就需要使用系统的pip,也就是/usr/local/bin/目录下的pip来安装ride.py
然后通过/usr/local/bin/ride.py来启动ride.py

wxpython 缺失问题解决
1
2
3
4
5
# taoyi @ TYMAC in ~/Desktop [21:22:36]
$ /usr/local/bin/ride.py
Wrong wxPython version.
You need to install wxPython 2.8.12.1 with unicode support to run RIDE.
wxPython 2.8.12.1 can be downloaded from http://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/

因为brew默认启用的地址为:/Users/taoyi/Library/Python/2.7/lib/python/site-packages/
后面的文件夹路径若没有则需要新建:mkdir -p /Users/taoyi/Library/Python/2.7/lib/python/site-packages
再执行:echo ‘import site; site.addsitedir(“/usr/local/lib/python2.7/site-packages”)’ >> /Users/taoyi/Library/Python/2.7/lib/python/site-packages/homebrew.pth

ImportError: cannot import name 'pub' 问题解决
1
pip install pypubsub
Donate comment here