全网最全robotframework自动化测试环境搭建

一、前言

1、在2019年之前,robotframework-ride的版本一直是1.5.2.1,是2016年1月份的版本,只能安装在python2.7的环境上,导致如果想同时使用robotframework做测试且又需要python3环境编写python代码的小伙伴都需要在操作系统上安装两个python环境(2.7和3.7)。

2、2019年,robotframework终于迎来的这次万众瞩目的更新算是解决了此问题,从此只需要安装python3.6以上的python环境即可。

二、安装robotframework自动化测试环境

1、下载并安装Python3.7.4(注意:不要安装最新的3.8的版本,如存在旧版本先卸载)、并配置python的环境变量。

 (1)下载并安装python3.7.4

 进入python官网地址:Welcome to Python.org      选择Downloads-->Windows选项。如下图所示:

      

     在打开的页面中选择pythong3.7.4 windows64位的版本。如下图所示:

      

 下载后双击安装,修改安装路径到C:\Python37  (注意:环境配置以此地址为例),其他的是无限点【下一步】直到完成。

      (2)配置Python环境变量:

      右击我的电脑-->属性-->高级系统设置-->高级-->环境变量-->找到path变量点击"编辑"按钮-->在path的最前面加入如下内容。

      C:\Python37;C:\Python37\Scripts;             (注意:C:\Python37为Python的安装路径,如安装路径不同请更改)

      

2、下载谷歌浏览器以及谷歌浏览器对应版本的驱动包。(顺带也加入火狐浏览器以及火狐浏览器的驱动包下载地址)

(1)下载浏览器:Chrome和Firefox的其中之一。 谷歌浏览器:https://www.google.cn/intl/zh-CN/chrome/  下载最新版如图所示:

       

     (2)火狐浏览器:http://www.firefox.com.cn/download/#more        下载延长版

(2) 下载浏览器驱动包:查看谷歌浏览器的版本并下载Chrome浏览器对应版本的驱动包(大版本相同即可)
        Chromedriver谷歌驱动:http://npm.taobao.org/mirrors/chromedriver/
    
        Geckodriver火狐驱动:https://github.com/mozilla/geckodriver/releases
       注意:驱动包版本需要和对应的浏览器版本大版本一致。下载后放到python的目录下:如:C:\Python37 

三、安装robotframework和robotframework-ride

1.安装robotframework

在dos中输入命令:pip install robotframework,直到出现如下界面表示安装成功!(因网络原因报错,可以重复运行命令直到安装成功为止。)

2.安装robotFramework-ride   (这个为rf的IDE集成开发环境)

在dos中输入命令:pip install robotframework-ride,这里可能需要一段时间,请耐心等待。出现如下界面表示安装成功。

其中安装了:Pygments,Pypubsub,robotframework-ride,robotframework-exer,wxPython等。

在dos中输入pip list查看检查上述软件是否安装,以及他们的版本。如下图所示:

进入C:\Python37\Scripts目录下,右击ride.py,选择使用python打开。出现RIDE界面表示RIDE安装成功。

四、安装Selenium2Library包。

因为我们要做的是UI自动化测试,那么它对应的类库为:Selenium2Library,所以需要安装Selenium2Library。在dos中输入命令:pip install robotframework-Selenium2Library,出现如下界面表示安装成功。

到此使用robotframework工具开发UI自动化的环境则已经安装完成。那么接下来则是如何使用robotframework并验证这个自动化的测试环境是否有问题。接下来使用robotframework实现一个案例。

五、使用robotframework实现一个案例

1.在RIDE中新建一个UI自动化项目、在RIDE的菜单栏点击File-->new Project,如下图所示:

2.在项目上新建一个测试套件,项目Ecshop上右击、new-->New Suite,如下图所示:

然后在Suite中导入Selenium2Library。左键点击【登录】套件,导入Selenium2Library类库,如下图所示

3.在套件上新建一个测试用例,套件【登录】上右击,New TestCase

4.编写用例,打开谷歌浏览器。

5.运行后自动打开谷歌浏览器并加载百度首页则表示robotframework自动化测试环境终于完美啦,接下来就是熟悉各种操作浏览器的关键字以及自动化测试的四层架构(元素层,业务层,用例层,流程层)了。

 六、错误解决

1、application.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()

解决方案:
根据如上提示信息,找到 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)

2、没有权限报错

在使用Text Edit区域编写代码完成,保存代码的时候会出现如下图报错:

错误信息:
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的账号共享即可。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群:,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Open3D 计算去质心后的点云

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2处理后点云 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博客 一、…

linux运维脚本编写

目录 步骤1 系统基本信息的检查 步骤2 文件系统和磁盘信息的检查 步骤3 内存、cpu、进程信息的检查 1、内存信息检查 2、cpu信息检查 3、进程信息检查 步骤4 其他脚本 正文部分✌ 步骤1 系统基本信息的检查 巡检脚本 步骤2 文件系统和磁盘信息的检查 具体实现的shell脚本如…

NebulaGraph图数据库使用教程

一、NebulaGraph 是什么? NebulaGraph 是一款开源的图数据库,擅长处理千亿个顶点和万亿条边的超大规模数据集。 NebulaGraph 社区已成长为一个荟聚了众多用户、融合了各类图技术场景实践知识的活跃开源社区。你可以在其中与大家共同交流 NebulaGraph 周…

音视频开发入门很难?可能是你姿势不对

作为程序员,听到最烦的两个词一个是bug,在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「音视频开发的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大…

【书生大模型实战】L1-书生大模型全链路开源体系

一、关卡任务 观看本关卡视频后,写一篇关于书生大模型全链路开源开放体系的笔记。 视频链接:【书生浦语大模型全链路开源体系】 https://www.bilibili.com/video/BV1Vx421X72D/?share_sourcecopy_web 二、实验过程 书生浦语大模型全链路开源体系&am…

银行贷款信用评分不足?大数据帮你找回失去的“分”

在这个信息爆炸的时代,无论是个人还是企业,数据都成为了衡量信用和评估风险的重要依据。贷款、融资、求职甚至是日常消费,都可能因为一份好的数据报告而变得更加顺畅。那么,如何高效地查询自己的大数据,面对评分不足时…

【持续集成_02课_Jenkins+Git+Gogs综合应用】

https://www.cnblogs.com/xfeiyun/p/17510472.html Jenkins部署及持续集成——傻瓜式教程-腾讯云开发者社区-腾讯云 一、Jenkins安装 Jenkins由Java语言编写而成,安装包即是一个war包。因此,Jenkins的运行启动依赖于Java环境,同时&#xf…

G120 EPos配置方案及应用场景

EPos功能就是基本定位器功能,它可计算出轴的运行特性,使轴以时间最佳的方式移动到目标位置。EPos功能主要包括:设定值 直接给定(MDI)功能、 选择程序段功能、回参考点功能、点动功能、运行到固定挡块功能。 EPos功能通过处理给定的加速度、速度和位置值生成运行特性曲线,…

昇思 25 天学习打卡营第 15 天 | mindspore 实现 VisionTransformer 图像分类

1. 背景: 使用 mindspore 学习神经网络,打卡第 15 天;主要内容也依据 mindspore 的学习记录。 2. Vision Transformer 介绍: mindspore 实现 VisionTransformer 图像分类;VisionTransformer 论文地址 VisionTransfo…

Redis是多线程还是单线程?

文章目录 1、用户态和内核态2、阻塞IO3、非阻塞IO4、IO多路复用4.1 select4.2 poll4.3 epoll4.4 epoll中的ET和LT4.5 epoll的服务端流程 5、信号驱动6、异步IO7、对比8、Redis是单线程的吗?9、单线程多线程网络模型变更 1、用户态和内核态 1、ubuntu和Centos 都是Li…

day 02

作业: 1> 写一个日志文件,将程序启动后,每一秒的时间写入到文件中 1、2024- 7-29 10:31:19 2、2024- 7-29 10:31:20 3、2024- 7-29 10:31:21 ctrlc:停止程序 ./a.out 4、2024- 7-29 10:35:06 5、2024- 7-29 10:35:07 6、2024- 7-29 10:3…

轻松入门Linux—CentOS,直接拿捏 —/— <2>

一 、权限问题详细讲解 读写的权限可以分别写成 r, w, x 总共有九个权限,可以分组三大组分别是: user:当前文件所属用户的权限 group:与当前文件所属用户同一组的用户权限 others:其他用户的权限 故使用 u, g, o 来代表…

从装机到冯·诺依曼架构,揭秘计算机的硬件组成

在当今数字化的时代,计算机已经成为我们生活和工作中不可或缺的一部分。从日常办公到科学计算,从畅玩游戏到无人驾驶,计算机简直无所不能。而这一切的背后,离不开其精密而复杂的硬件组成。今天,我们将一起探索计算机的…

Selenium Java中的isDisplayed()方法

isDisplayed()方法用于确定元素是否可见。本文将详细讨论 的WebElement接口isDisplayed()方法。 方法声明- boolean isDisplayed()它能做什么?此方法用于判断元素是否显示。这个方法节省了我们…

带有扰动观测器的MPC电机控制

模型预测控制(Model Predictive Contro1, MPC)是一种先进的控制策略,虽然具有鲁棒性、建模简单、处理多变量系统、显示约束、预测未来行为和优化性能的能力等优势。它的不足在于预测控制行为的计算需要繁琐的计算量,以及抗干扰能力较弱。这里提出基于扰动…

视创云展:重塑线上会议体验,六大核心引领数字空间新纪元

视创云展以其革命性的“数字活动”解决方案为核心,精心构建了一个超越想象的未来数字世界。通过整合六大前沿技术模块,它不仅为参会者打造了一个身临其境的线上会议环境,更让每一位参与者都能跨越物理界限,深刻感受会议的每一个瞬…

PointCLIP: Point Cloud Understanding by CLIP

Abstract 近年来,基于对比视觉语言预训练(CLIP)的零镜头和少镜头学习在二维视觉识别中表现出了令人鼓舞的效果,该方法在开放词汇设置下学习图像与相应文本的匹配。然而,通过大规模二维图像-文本对预训练的CLIP是否可以推广到三维识别&#x…

关于#define的使用方法总结

文章目录 #define 预处理指令一、#define宏定义二、查看预处理文件三、#define 的使用方法四、C语言宏中“#”和“##”的用法五、常见的宏定义总结六、常考题目 #define 预处理指令 #define 是 C 和 C 编程语言中的预处理指令,用于定义宏(macro&#xf…

斯坦福UE4 + C++课学习记录 13:UMG-血量条

文章目录 一、创建血量属性二、应用血量更改三、血量UI 一、创建血量属性 Unreal Motion Graphics (UMG)是 UE中用于创建用户界面 (UI) 的工具。它可以实现如下复杂功能: (1)动画:UMG 支持为控件添加动画。可以在 Widget Bluepri…

扩散模型系列0 DDPM:Denoising Diffusion Probabilistic Models

前言: 从7月12号开始 学习了一些扩散模型的论文,越看越上瘾,对未知的渴求激励着我不断地读论文整理、学习、分析、理解 以前发的博客仅仅是对论文的翻译,现在觉得仅仅翻译是不够的,读了一篇论文以后,要形成…