【Robot Framework 项目实战 00】环境搭建
前言
我们公司在推广RF这个框架做后端接口测试,力求让同事们能更快的完成服务端需求的自动化,作为主导者之一,决定分享一些经验,方便后来者。
我会从安装部署、Request、selenium、自定义框架、jenkins集成docker运行五个方面来记录这些信息。
环境部署
Python3
我们的第一步就是安装Python3,安装方法可以自行搜索。
venv
每个应用可能需要各自拥有一套“独立”的Python运行环境。venv就是用来为一个应用创建一套“隔离”的Python运行环境。
在新版本的Python3中,venv环境隔离工具已经集成到了标准库中,我们可以开包即用。首先,创建一个目录,如:RF_XX,在终端中切换到这个目录,执行下面的命令:
python3 -m venv venv
命令解析:前一个venv 表示执行venv 命令,后一个venv表示创建一个名称叫venv的虚拟环境。
执行上面的命令之后,我们的虚拟环境的创建完成了,以类unix环境为例,Windows大同小异。我们能看到生成了一个venv目录,目录下有3个文件夹:bin、include 、lib ,以及一个文件:pyvenv.cfg。其中bin存储的是这个环境的一些可执行程序,lib 存储的是从主Python中复制过来的包,我们后续要安装的包也会保存在这里。pyvenv.cfg中的信息如下,我们可以修改include-system-site-packages来控制在虚拟环境中是否使用系统中的库。
# cat pyvenv.cfg
home = /usr/local/bin
include-system-site-packages = false
version = 3.7.1
venv的使用
如果我们使用的是Pycharm我们可以直接在设置中搜索Project Interpreter来设置当前项目使用的Python环境(包含虚拟环境)。直接在终端中,我们也可以通过下面的方式来设置Python的运行环境,以上面的虚拟环境为例,我们执行下面的指令就能进入虚拟环境:
source venv/bin/activate
注: Windows下直接执行activate即可,但是cmd窗口需以管理员权限运行,脚本在script目录下,不在bin目录下。
进入虚拟环境的标志是你的终端提示符前面会展示你的环境名称,比如博主就是:
(venv) bingo@Mac RF$
和进入python虚拟环境一样,退出也很简单:
deactivate
退出后终端前面的环境信息会消失。
安装robotframework
按照RF很简单,在终端中确保是在虚拟环境中(提示信息前缀),执行下面的命令:
pip install robotframework
校验
将下面的信息保存到一个文件中,比如hello.robot,然后执行pybot hello.robot
*** Test Cases ***
test case1
log hello robot framework
注: Windows用户虚拟环境Scripts 目录下是否有 pybot.bat 文件,正确安装 Robot Framework 一定会生成该文件。如果要在非venv环境执行,记得一定要将Scripts目录添加到环境变量 path。
执行上面的命令后会看到如下的日志信息,同时目录下面会生成三个文件:log.html、output.xml、report.html
(venv) bingo@Mac standard_case$ pybot hello.robot
==============================================================================
Hello
==============================================================================
test case1 | PASS |
------------------------------------------------------------------------------
Hello | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output: /Users/bingo/Hebinz/PY/RF/testcase/standard_case/output.xml
Log: /Users/bingo/Hebinz/PY/RF/testcase/standard_case/log.html
Report: /Users/bingo/Hebinz/PY/RF/testcase/standard_case/report.html
至此,我们的RF环境就搭建完成了,我们可以在浏览器中打开report.html:

用例编写工具
RIDE
RIDE当前官方的仅支持Python2.x,虽然有开发者做了Python3版本的,但是不太稳定。
下载地址:https://github.com/HelioGuilherme66/RIDE/releases
pycharm IntelliBot
pycharm>File>setting>Plugins,搜索IntelliBot 即可
Eclipse RED
Red插件安装:
Click Help -> Eclipse Marketplace -> and type into Find field "RED robot"
Click Help -> Install New Software -> Add and set address in Location to:
http://master.dl.sourceforge.net/project/red-robot-editor/repository
初学者推荐使用RED,这个是诺基亚开源的插件。更多的插件大家可以访问这个地址:https://robotframework.org/#tools
基本上主流的编辑器都能找到对应的:

运行测试
RF的用例一般都是以命令行的方式运行的,插件集成的运行最终也是体现到命令行上,所以我们一起了解一些它都有哪些运行方式。
运行文件中一条用例:
pybot --test test_case_name test_suit.robot
运行指定文件:
pybot test_suit.robot
运行当前目录下以.robot为后缀名的测试文件
pybot *.robot
运行当前test_a目录下的所有用例
pybot test_a
运行当前目录及其子目录所有用例
pybot ./
运行指定tag的用例
pybot --include evalua request.robot
总结
- Python3 venv
- RF 安装
- 用例运行方式总结
- 编辑器
【Robot Framework 项目实战 00】环境搭建的更多相关文章
- Robot Framework + Selenium library + IEDriver环境搭建
转载:https://www.cnblogs.com/Ming8006/p/4998492.html#c.d 目录: 1 安装文件准备2 Robot框架结构3 环境搭建 3.1 安装Python ...
- 【Robot Framework 项目实战 01】使用 RequestsLibrary 进行接口测试
写在前面 本文我们一起来学习如何使用Robot Framework 的RequestsLibrary库,涉及POST.GET接口测试,RF用例分层封装设计等内容. 接口 接口测试是我们最常见的测试类型 ...
- Robot Framework(1)——环境搭建及安装
一.了解Robot Framework Robot Framework不是一个测试工具,准确来说,它是一个自动化测试框架,或者说它是一个自动化测试平台 特性如下: 1.支持关键字驱动.数据驱动和行为驱 ...
- 项目实战 Prometheus环境搭建
项目摘要: 本文是搭建一套prometheus环境的教程. 前期准备:准备三台虚拟机,本文以centos7为例. 项目具体实施:分别进入每台虚拟机设置hostname:# hostnamectl se ...
- 【Robot Framework 项目实战 02】SeleniumLibrary Web UI 自动化
前言 SeleniumLibrary 是针对 Robot Framework 开发的 Selenium 库.它也 Robot Framework 下面最流程的库之一.主要用于编写 Web UI 自动化 ...
- 【Robot Framework 项目实战 03】使用脚本自动生成统一格式的RF自动化用例
背景 虽然大家都已经使用了统一的关键字,但是在检查了一些测试用例之后,还是发现因为大家对RF的熟悉程度不一导致的测试用例颗粒度差异很大的情况:而且在手动方式转化测试用例过程中,有不少工作是完全重复的且 ...
- 【Robot Framework 项目实战 02】使用脚本生成统一格式的RF关键字
背景 在微服务化的调用环境下,测试数据及接口依赖的维护是一个问题,因为依赖的接口和数据可能不在同一个服务下,而这相关的多个服务往往是不同人员来测试的. 因此为了节省沟通成本,避免关键字的重复冗余.所以 ...
- 【Robot Framework 项目实战 04】基于录制,生成RF关键字及 自动化用例
背景 因为服务的迁移,Jira版本的更新,很多接口文档的维护变少,导致想要编写部分服务的自动化测试变得尤为麻烦,很多服务,尤其是客户端接口需要通过抓包的方式查询参数来编写自动化用例,但是过程中手工重复 ...
- Zend Framework学习日记(1)--环境搭建篇(转)
Zend Framework学习日记(1)--环境搭建篇 (1)开发工具 Zend Framework框架:http://framework.zend.com/download/latest 包含2个 ...
随机推荐
- iOS下拉刷新和上拉刷新
在iOS开发中,我们经常要用到下拉刷新和上拉刷新来加载新的数据,当前这也适合分页.iOS原生就带有该方法,下面就iOS自带的下拉刷新方法来简单操作. 上拉刷新 1.在TableView里,一打开软件, ...
- 谁有stanford ner训练语料
[冒泡]良橙(1759086270) 12:14:17请教大家一个问题,我有1w多句用户的问题,但是有些包含了一些骂人,数字,特殊符号,甚至,语句不通,有什么方法可以过滤不[吐槽]爱发呆的小狮子(19 ...
- pdo sqlserver
PHP代码如果想要用以上的方式兼容linux服务器和windows服务器,那么大概的示例代码是这样的. <?php header("Content-type: text/html; c ...
- cf428c 模拟题
这题说的是给了 n个数然后又 k次 的交换任意位置的 数字的机会 计算最长的连续子序列的和 这要撸 模拟整个 过程 并不能就是算最长的递增序列 如果只是 找最长的 和序列的 话 会存在 很多问题 ...
- Storm初探
Storm是一种分布式流式处理技术,这一点和Spark与Hadoop的批处理特性有明显的区别. 在数据连续产生,响应时延要求较低的场景中,Storm具有Spark不可比拟的优势. 网络性能监控系统中, ...
- linux常用命令:iconv 命令
iconv命令是linux下用于文件转编码的常用命令,对于同时使用windows系统和linux系统的同学来说文件转编码也是经常遇到的操作. 1.命令格式: iconv [选项...] [文件...] ...
- 阿里云服务器ECS web环境配置(LNAP)ubantu
Ubuntu 系统中,可以使用 apt-get 命令来搭建 LNMP环境.这种方式较编译方式安装更加简便 安装Nginx 1.使用 sudo apt-get install nginx 就能自动安装 ...
- Linux基础命令---mkfs
mkfs 在磁盘分区上创建ext2.ext3.ext4.ms-dos.vfat文件系统,默认情况下会创建ext2.mkfs用于在设备上构建Linux文件系统,通常是硬盘分区.文件要么是设备名称(例如/ ...
- Js基础知识7-Es6新增对象Map和set数据结构
前言 JavaScript中对象的本质是键值对的集合,ES5中的数据结构,主要是用Array和Object,但是键只能是字符串.为了弥补这种缺憾,ES6带来了一种新的数据结构Map. Map也是键值对 ...
- 响应式瀑布流插件Grid-A-Licious
Grid-A-Licious是一款遵守MIT协议的响应式瀑布流插件.该插件总代码行不超过400行,实现很巧妙,使用时也很流畅.实现原理也很简单,根据屏幕宽度和参数中设置的列宽度以及每项之间的间隔宽度, ...