前言

我们公司在推广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. myeclipse自定义JSP模板

  2. SQL 中单引号 和一些特殊字符的处理

    为了防止程序SQL语句错误以及SQL注入,单引号必须经过处理.有2种办法: 1.使用参数,比如SELECT * FROM yourTable WHERE name = @name; 在Java中就是用 ...

  3. redis和memcached相关

    应该选择哪一种缓存机制 redis相较于memcached更加年轻,功能更加强大. 对小型静态数据进行缓存处理,最具代表性的例子就是HTML代码片段.使用memcached所消耗内存更少. 其他情况下 ...

  4. 在HTML中实现和使用遮罩层

    Web页面中使用遮罩层,可防止重复操作,提示loading:也可以模拟弹出模态窗口. 实现思路:一个DIV作为遮罩层,一个DIV显示loading动态GIF图片.在下面的示例代码中,同时展示了如何在i ...

  5. python练习题-简单方法判断三个数能否组成三角形

    python简单方法判断三个数能否组成三角形 #encoding=utf-8 import math while True: str=raw_input("please input thre ...

  6. centos7 centos-home 磁盘转移至centos-root下

    1.查看分区 df -h (centos-home和centos-root每人的名字可能不一样) vgdisplay (查看空闲磁盘大小) 2.备份home分区文件 tar cvf /tmp/home ...

  7. Struts2 Spring Hibernate 框架整合 Annotation MavenProject

    项目结构目录 pom.xml       添加和管理jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...

  8. loj10009 P1717 钓鱼

    P1717 钓鱼 贪心+优先队列 先枚举最后走到哪个湖,然后用优先队列跑一遍贪心即可 #include<iostream> #include<cstdio> #include& ...

  9. Android http通信 HttpURLConnection

    post 请求: package com.example.administrator.eschool; import android.os.Bundle; import android.os.Hand ...

  10. 06: linux中find查找命令总结

    1.在当前目录下查找以txt结尾的文件 find . -name "*.txt" 2.在当前目录下查找所有以字母开头的文件 find . -name "[a-z]*&qu ...