Robot Framework 使用【1】

Stella981
• 阅读 1093

前言

   Robot Framework作为公司能快速落地实现UI自动化测试的一款框架,同时也非常适合刚入门自动化测试的朋友们去快速学习自动化,笔者计划通过从搭建逐步到完成自动化测试的过程来整体描述它的使用。

Robot Framework环境搭建步骤

Robot Framework是基于Python语言开发的一款框架,搭建步骤如下:
对于Robot Framework熟悉的老手尝鲜新版 或 python熟悉的朋友看如下简易安装步骤即可(详细截图说明内容适合新入门朋友)
简易安装步骤:

  1. 安装python3.7
  2. 在dos命令输入 pip install robotframework 在线安装robotframework
  3. 在dos命令输入 pip install Pypubsub==3.3.0 在线安装 Pypubsub
  4. 在dos命令输入 pip install wxPython==4.0.3 在线安装 wxPython
  5. 在dos命令输入 pip install robotframework-ride 在线安装robotframework-ride
  6. 在dos命令输入 pip list 检查是否安装成功
  7. 在dos命令输入 ride.py 检查是否出现RIDE主界面,如不能出现,可去 python安装路径\scripts\ride.py 手动双击启动

详细安装步骤:

  1. 安装 python3.7

  2. 在线安装 robotframework 在dos命令中输入 pip install robotframework
    Robot Framework 使用【1】

  3. 在线安装 Pypubsub 在dos命令中输入 pip install Pypubsub==3.3.0
    Robot Framework 使用【1】

  4. 在线安装 wxPython 在dos命令中输入 pip install wxPython==4.0.3(截图略,与上截图类似)

  5. 在线安装 robotframework-ride 在dos命令输入 pip install robotframework-ride ,安装过程中需要安装依赖,过程较慢(截图略,与上截图类似)

  6. 在dos命令输入 pip list ,检查上述软件是否安装成功
    Robot Framework 使用【1】

  7. 在dos命令输入 ride.py 命令打开RIDE主界面
    Robot Framework 使用【1】

常见问题

  1. 依赖相关问题
    robotframework-ride 1.7.3.1 安装所使用的Pypubsub版本要求的兼容版本为3.3.0,如果太新,安装过程中会出现警告信息,但笔者实验后发现出现警告也可以使用,但还是建议大家使用所要求的兼容版本。

  2. 偶发性的报错
    由于笔者是软测培训相关的讲师,在教学过程中,学生安装时出现过如下截图的偶发性错误:
    Robot Framework 使用【1】
    dos命令下错误信息:
    C:\WINDOWS\system32>ride.py
    Traceback (most recent call last):
    File "d:\python\lib\site-packages\robotide\application\application.py", line 59, in OnInit
    self._plugin_loader.enable_plugins()
    File "d:\python\lib\site-packages\robotide\application\pluginloader.py", line 43, in enable_plugins
    p.enable_on_startup()
    File "d:\python\lib\site-packages\robotide\application\pluginconnector.py", line 52, in enable_on_startup
    self.enable()
    File "d:\python\lib\site-packages\robotide\application\pluginconnector.py", line 57, in enable
    self._plugin.enable()
    File "d:\python\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py", line 162, in enable
    self._build_ui()
    File "d:\python\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py", line 558, in _build_ui
    self._build_notebook_tab()
    File "d:\python\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py", line 734, in _build_notebook_tab
    self.out = self._create_output_textctrl()
    File "d:\python\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py", line 769, in _create_output_textctrl
    font = self._create_font()
    File "d:\python\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py", line 789, in _create_font
    font=wx.SystemSettings.GetFont(wx.SYS_ANSI_VAR_FONT)
    wx._core.wxAssertionError: C++ assertion "wxFontEnumerator::IsValidFacename(font.GetFaceName())" failed at ....\src\msw\settings.cpp(301) in wxSystemSettingsNative::GetFont():
    OnInit returned false, exiting...
    Error in atexit._run_exitfuncs:
    wx._core.wxAssertionError: C++ assertion "GetEventHandler() == this" failed at ....\src\common\wincmn.cpp(478) in wxWindowBase::~wxWindowBase(): any pushed event handlers must have been removed
    解决方案:
    根据如上提示信息,找到 testrunnerplugin.py文件路径,如上是
    d:\python\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py
    用pycharm等python代码编辑工具打开该py文件,编辑789行:
    把 font=wx.SystemSettings.GetFont(wx.SYS_ANSI_VAR_FONT) 改为 font=wx.SystemSettings.GetFont(wx.SYS_ANSI_FIXED_FONT)
    如果还不成功,则改为
    font=wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT)

  3. 没有权限报错
    在使用Text Edit区域编写代码完成,保存代码的时候会出现如下图报错:
    Robot Framework 使用【1】
    错误信息:
    Error in serializing 'C:\robotframeworkcode\newdream':
    [Errno 13] Permission denied: 'C:\robotframeworkcode\newdream.'
    解决方案:
    问题的主因是Robot Framework的RIDE没有相关权限引起的。
    强制关闭 Robot Framework 的RIDE界面后,找到 ride.py 文件的存放路径(python安装路径\Scripts\ride.py),
    Windows 7 操作系统,右击 ride.py 文件 -- 选择 管理员取得所有权 即可。
    Windows 10操作系统,右击 ride.py 文件 -- 选择 授予访问权限 -- 特定用户 -- 选择自己登录Windows10的账号共享即可。

  4. 离线安装
    离线安装不会自动安装依赖类库,需要手动把相关依赖类库下载才可进行安装,笔者不推荐此安装方式。
    如果在没有网络的环境下,使用离线安装环境,需要提前下载对应的类库安装文件,按如下顺序下载安装:
    robotframework-3.1.1 、PyPubSub-3.3.0 、six-1.12.0、Pygments-2.3.1、robotframeworklexer-1.1、robotframework-ride-1.7.3.1
    下载网站:https://pypi.org/
    离线安装python类库步骤:
    1)解压下载的类库软件
    2)在dos命令中进入解压目录,输入 python setup.py install 安装

  5. robotframework-excellibrary库暂时不支持
    该库暂时不支持,没有解决方案,有相关方案的朋友可以反馈下。

后记

  在2019年之前,robotframework-ride的版本一直是1.5.2.1,是2016年1月份的版本,里面需要使用 wxPython2.8-win64-unicode-2.8.12.1-py27.exe,wxPython2.8只能安装在python2.7的环境上,导致如果想同时使用robot framework做测试且又需要python3环境编写python代码的小伙伴都需要在操作系统上安装两个python环境(2.7和3.7)。
  2019年,robotframework-ride迎来的这次更新算是解决了此问题,从此只需要安装python3.6以上的python环境即可。

参考文献
robotframework 官方文档 : https://pypi.org/project/robotframework/#installation

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这