特点

  • 提供可视化界面 ride、 eclipse
  • txt、html 等格式编写测试用例,而不是编程语言
  • 支持关键字驱动(直接调用已有的关键字,组成自动化用例)
  • 支持 web 、app、api 自动化测试
  • 开源,基于 Python 编写

Robot Framework 环境搭建

  • 安装 wxPython
  1. $ 下载页面: http://wxpython.org/download.php#stable
  2. 在选择版本下载的时候要注意选择与 Python 版本对应的版本,并且选择 unicode 版本。
  3. 比如版本:wxPython2.8-win64-unicode-py27.exe,否则安装完成后不能支持中文。
  4. 下载完成后,选择默认项进行安装即可。
  • 安装 Robot Framwork
  1. $ pip install robotframwork
  2. 图形化界面:RIDE
  3. pip install robotframework-ride
  4. pip install robotframework-ride==1.7.4.1(指定版本安装)
  • 安装 selenium2library
  1. $ pip install robotframework-selenium2library
  2. Robot Framework 引入 Selenium2Library
  • 第三方包本地安装
  1. $ **.whl :
  2. $ pip install **.whl
  3. $ **.egg :
  4. $ 1. 先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装
  5. $ 2. easy_install **.egg
  6. $ **.zip / tar.gz
  7. python setup.py install

安装后确认

  • 启动RIDE

    • 通过文件启动(双击 [dirPath]\python\Lib\site-packages\robotide下的 init.py 文件)
    • 通过命令启动(运行 -> ride.py 回车 / 确认)

      1. cd C:\Python27\Scripts\
      2. 运行:
      3. python ride.py
    • 将C:\Python27\Scripts\ride.py 创建快捷键,打开 ride.py 文件之后(以 python 方式打开),点击“运行(start)”按钮。

  • 查看pybot版本
  1. $ cd C:\Python27\Scripts
  2. # 运行
  3. $ pybot --version

Robot Framework + pyCharm

  • pyCharm 插件
  1. $ File >> Settings >> Plugins >> intelliBot 插件 install
  • RobotFramework 的文件类型识别配置
  1. $ File >> Settings >> Editor >> File Types
  2. $ 列表中 找到 Robot Feature 选中
  3. $ File Name Patterns: 点击 + >> 分别添加 *.txt *.
  • Suite 和 Case 的执行配置
  1. $ 在我们在执行脚本时,可以单独执行一个case,也可以执行case的集合:suite(测试套),所以我们这里要做两个配置。
  2. $ File >> Settings >> Tools >> External Tools >> 点击 +
  3. $ NameRobot Run SingleTestCase
  4. $ Program: C:\Python\Python27\Scripts\robot.exe
  5. $ Arguments:-d results -t "$SelectedText$" ./
  6. $ Working directory$FileDir$
  7. $ 点击 +
  8. $ NameRobot Run TestSuite
  9. $ Program: C:\Python\Python27\Scripts\robot.exe
  10. $ Arguments:-d results $FileName$
  11. $ Working directory$FileDir$
  • 问题解决
  1. 解决:‘chromedriver executable needs to be in PATH 问题
  2. (在使用 selenium 启动谷歌 Chrome 浏览器的时候,是需要用到 chromedirver 的)
  3. 1.首先需要下载 Chromedriver,下载后得到的是一个 chromedriver.exe 文件。
  4. chromedriver下载地址: http://npm.taobao.org/mirrors/chromedriver/
  5. 2. chromedriver.exe 拷贝至谷歌浏览器目录(如 C:\Program Files\Google\Chrome\Application)以及 python 根目录(C:\Python27)。
  6. 3.将谷歌浏览器环境变量添加到pathC:\Users\HD003\AppData\Local\Google\Chrome\Application)。
  7. 至此,就可以解决 chromedriver executable needs to be in PATH问题了。
  8. Edge: WebDriverException: Message: 'MicrosoftWebDriver.exe' executable needs to be in PATH
  9. 1. 前往 http://go.microsoft.com/fwlink/?LinkId=619687 选择对应的浏览器版本下载
  10. 2. 解压后就OK了,把里面的 msedgedriver.exe 放到 python.exe 目录下和所在浏览器目录下
  11. 比如 我的浏览器目录; C:\Program Files (x86)\Microsoft\Edge\Application
  12. Python 目录: C:\Python27

Robot Framework + Eclipse

Robot Framework + RIDE

RIDE 日志输出乱码

Python3.7环境

  1. Lib\site-packages\robotide\contrib\testrunnertestrunnerplugin.py565 SYSTEM修改为OUTPUT
  2. textctrl.AppendTextRaw(bytes(string, encoding['OUTPUT'])) # DEBUG .encode('utf-8'))

Python2.7环境

  1. 步骤1
  2. Lib\site-packages\robot\utils目录下,unic.py文件
  3. 增加:import json,增加以下代码(cp936也可用utf-8gbk编码格式替换)
  4. if isinstance(item, (list, dict, tuple)):
  5. try:
  6. item = json.dumps(item, ensure_ascii=False, encoding='cp936')
  7. except UnicodeDecodeError:
  8. try:
  9. item = json.dumps(item, ensure_ascii=False, encoding='cp936')
  10. except:
  11. pass
  12. except:
  13. pass
  14. 重启RIDE后看下是否还乱码》如果还有问题继续往下进行
  15. 步骤2
  16. 检查Python的默认编码格式:
  17. Python命令窗口:
  18. >>>import sys
  19. >>>sys.getdefaultencoding()
  20. 如果是Ascii,在PythonLib\site-packages文件夹下,新建一个sitecustomize.py文件,内容如下:
  21. #coding=utf8
  22. import sys
  23. reload(sys)
  24. sys.setdefaultencoding('utf8')

控制台乱码解决方法

  1. ib\site-packages\robotide\contrib\testrunner目录下 testrunner.py 中将 latinl 修改为 mbcs
  2. mbcs为多字节字符集,会根据系统自动显示为对应的语言字符集,中文系统中展示GB2312

RIDE 的使用

  1. 工程创建:
  2. File => New Project
  3. => Type: Directory(方便管理) 如果内容简单选择 file
  4. => Format: 推荐 txt
  5. => New Suite(测试套件)
  6. => Type: file
  7. => Format: robot
  8. => New Test Case
  9. 注意: *测试套件,表示它有了新的修改,还没有保存
  10. Project 工作区:
  11. 第一行的 Source 列出了这个 Project 的路径
  12. Settings:
  13. Documentation:文档,每一项都有。可以给当前的对象加入文档说明。
  14. Setup TearDown 分别表示启动和停止,也就是你可以在对应的文本框设置一个关键字,那么指定的事件触发的时候就会执行这个关键字。
  15. Suite Stetup: 套件启动
  16. Suite Teardown: 套件停止
  17. Test Steup: 案例启动
  18. Test Teardown: 案例停止
  19. Force Tags: 强制 tag 标记,强制的给他的所有子元素加上这些tags。后面运行的时候我们可以选择指定tag的案例来运行。
  20. 资源添加:
  21. 右键 工程名称 => New Resource
  22. 右键 External Resources => Add Resource
  23. 用户关键字:(Resource 用来保存用户关键字)
  24. 右键新创建的资源 => New User Keyword
  25. User Keyword 工作区:
  26. Tags
  27. Documentation:文档,每一项都有。可以给当前的对象加入文档说明。
  28. $$ Arguments: 设置传入参数
  29. Teardown: 设置完成时的动作,比如写上 Close All Browsers,表示在这个用户关键字执行完成之后会执行什么关键字。
  30. Timeout: 设置超时时间,如写上 1min,表示 1 分钟超时,如果这个关键字执行超过 1 分钟则认为失败。
  31. $$ Return Value: 设置返回值
  32. User Keywords 其实就是一个函数,Bulletin Keywords TestLib 里的 Keywords 也都是一个个的函数,只是封装在不同层面。后 2 个是在代码级的封装,将 python 代码写成的函数封装成可以调用的关键字,而User Keywords 就是把这些可调用的关键字进一步的封装,可以理解为应用层面的封装,而且可以层层封装。到后面你会发现,大部分时间,你其实是和User Keywords在打交道,利用好User Keywords,会方便很多。

测试套件(TestSuite)
  1. 测试套件工作区:
  2. 第一行的 Source 列出了这个 TestSuite 的路径
  3. Settings:
  4. Documentation
  5. Suite Stetup:
  6. Suite Teardown:
  7. Test Steup:
  8. Test Teardown:
  9. Test Template:测试模版,可以指定某个关键字为这个测试套件下所有 TestCase 的模版,这样所有的 TestCase 就只需要设置这个关键字的传入参数即可
  10. Test Timeout
  11. Force Tags: 在文件型 Suite 这里还可以继续给子元素增加 Force Tags,但是他不能删除父元素设置的 tags
  12. Default Tags:默认标记,其实和 Force Tags 没啥区别的,效果都是一样的,只是颜色不同而已。
  13. 再往下大体分为三部分
  14. 1)加载外部文件
  15. Add Library :加载测试库,主要是[PYTHON目录]\Lib\site-packages里的测试库
  16. Add Resource:加载资源,主要是你工程相关的资源文件
  17. Add Variables:加载变量文件
  18. 2)定义内部变量
  19. Add Scalar:定义变量
  20. Add List:定义列表型变量
  21. Add Dict:定义字典型变量
  22. 3)元数据定义
  23. Add Metadata:定义元数据。作用是在 report log 里显示定义好的内容,格式和 document 一样。

测试用例(TestCase)
  1. 测试用例工作区:
  2. Settings:
  3. Documentation:略
  4. Stetup:
  5. Teardown:
  6. Template:略
  7. Timeout:略

Run 页面
  1. Execution Profile:选择运行方式
  2. => pybot :
  3. => jybot : 需要安装 Jython 的支持
  4. => custom script : 选择自定义的脚本来运行
  5. Arguments: pybot 的参数(或者 jybot 等),比如我后面截图里加上了一个参数。
  6. 完整版的参数可以在 doc 命令行输入 pybot.bat --help
  7. Only Run Tests with these Tags: 只运行这些标记的测试案例
  8. Skip Tests with these Tags: 跳过这些标记的测试案例