前言

我们公司在推广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个文件夹:binincludelib ,以及一个文件: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.htmloutput.xmlreport.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】环境搭建的更多相关文章

  1. Robot Framework + Selenium library + IEDriver环境搭建

    转载:https://www.cnblogs.com/Ming8006/p/4998492.html#c.d 目录: 1 安装文件准备2 Robot框架结构3 环境搭建  3.1 安装Python  ...

  2. 【Robot Framework 项目实战 01】使用 RequestsLibrary 进行接口测试

    写在前面 本文我们一起来学习如何使用Robot Framework 的RequestsLibrary库,涉及POST.GET接口测试,RF用例分层封装设计等内容. 接口 接口测试是我们最常见的测试类型 ...

  3. Robot Framework(1)——环境搭建及安装

    一.了解Robot Framework Robot Framework不是一个测试工具,准确来说,它是一个自动化测试框架,或者说它是一个自动化测试平台 特性如下: 1.支持关键字驱动.数据驱动和行为驱 ...

  4. 项目实战 Prometheus环境搭建

    项目摘要: 本文是搭建一套prometheus环境的教程. 前期准备:准备三台虚拟机,本文以centos7为例. 项目具体实施:分别进入每台虚拟机设置hostname:# hostnamectl se ...

  5. 【Robot Framework 项目实战 02】SeleniumLibrary Web UI 自动化

    前言 SeleniumLibrary 是针对 Robot Framework 开发的 Selenium 库.它也 Robot Framework 下面最流程的库之一.主要用于编写 Web UI 自动化 ...

  6. 【Robot Framework 项目实战 03】使用脚本自动生成统一格式的RF自动化用例

    背景 虽然大家都已经使用了统一的关键字,但是在检查了一些测试用例之后,还是发现因为大家对RF的熟悉程度不一导致的测试用例颗粒度差异很大的情况:而且在手动方式转化测试用例过程中,有不少工作是完全重复的且 ...

  7. 【Robot Framework 项目实战 02】使用脚本生成统一格式的RF关键字

    背景 在微服务化的调用环境下,测试数据及接口依赖的维护是一个问题,因为依赖的接口和数据可能不在同一个服务下,而这相关的多个服务往往是不同人员来测试的. 因此为了节省沟通成本,避免关键字的重复冗余.所以 ...

  8. 【Robot Framework 项目实战 04】基于录制,生成RF关键字及 自动化用例

    背景 因为服务的迁移,Jira版本的更新,很多接口文档的维护变少,导致想要编写部分服务的自动化测试变得尤为麻烦,很多服务,尤其是客户端接口需要通过抓包的方式查询参数来编写自动化用例,但是过程中手工重复 ...

  9. Zend Framework学习日记(1)--环境搭建篇(转)

    Zend Framework学习日记(1)--环境搭建篇 (1)开发工具 Zend Framework框架:http://framework.zend.com/download/latest 包含2个 ...

随机推荐

  1. jQuery在iframe里取得父窗口的某个元素的值

    提供一款jQuery在iframe里取得父窗口的某个元素的值实现,这个iframe用js也差不多,有需要的朋友可以参考一下. 1.在父窗口中获取指定iframe(testiframe) id 为 te ...

  2. CMPXCHG指令

    一.CMPXCHG汇编指令详解. 这条指令将al\ax\eax\rax中的值与首操作数比较: 1.如果相等,第2操作数的直装载到首操作数,zf置1.(相当于相减为0,所以0标志位置位) 2.如果不等, ...

  3. MAX_STATEMENT_TIME uses confusing syntax

    From   https://bugs.mysql.com/bug.php?id=72540   [5 May 2014 18:46] Morgan Tocker Description: Via C ...

  4. python 类的私有方法例子

    #coding=utf-8 class Person(object):    id=12    def __init__(self,name):        self.name=name       ...

  5. 2018-2019-2 20165209 《网络对抗技术》Exp3:免杀原理与实践

    2018-2019-2 20165209 <网络对抗技术>Exp3:免杀原理与实践 1 免杀原理与实验内容 1.1 免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中 ...

  6. seo标题关键字描述字数限制Title,keywords,description长度最长多长 ?

    seo标题关键字描述字数限制 seo优化各个搜索引擎收录Title,keywords,description长度最长多长 ?SEO网站优化中Title标签的作用为重中之重,好的Title也就成功了一半 ...

  7. Linux 命令安装bin文件

    Linux 命令安装bin文件 安装命令: //1,增加文件的可执行权限 chmod a+x jdk-6u30-linux-x64.bin //2,程序即安装在执行命令的文件夹下 ./jdk-6u30 ...

  8. 20145304 Exp3 免杀原理与实践

    20145304 Exp3 免杀原理与实践 基础问题回答 (1)杀软是如何检测出恶意代码的? 检验特征码,包含特征码的代码会被杀软认为是恶意代码,例如一些常用恶意代码加壳后就有一个固定的代码会被认为是 ...

  9. 20162311 解读同伴的收获&解决同伴的问题(11月29日,周三)

    20162311 解读同伴的收获&解决同伴的问题(11月29日,周三) 解读同伴的收获 我的同组同学是20162325学号金立清同学 同组同学的收获是:递归算法的非递归实现.分治法.动态规划法 ...

  10. UESTC 594 我要长高 - 单调性优化

    韩父有N个儿子,分别是韩一,韩二…韩N.由于韩家演技功底深厚,加上他们间的密切配合,演出获得了巨大成功,票房甚至高达2000万.舟子是名很有威望的公知,可是他表面上两袖清风实则内心阴暗,看到韩家红红火 ...