Robot Framework使用技巧之内部变量

【转载】

1、变量的使用

变量可以在命令行中设置,个别变量设置使用--variable (-v)选项,变量文件的选择使用--variablefile (-V)选项。 通过命令行设置的变量是全局变量,对其所有执行的用例都有效。它们将覆盖变量表格中的同名变量或是 通过变量文件引入到测试数据中的同名变量。

设置单个变量的语法是--variable name:value, “name”是不使用${}的变量名称, “value”则是其赋予的值。 可以多次使用该选项设置多个变量。仅有标量变量可以使用该语法且只能赋值字符串。许多特殊字符在命 令行中很难表示,但可以使用转义字符转义它们,使用—escape 选项。

--variable EXAMPLE:value

--variable HOST:localhost:7272

--variable USER:robot

--variable ESCAPED:Qquotes_and_spacesQ

--escape quot:Q

--escape space:_

在命令行中使用变量文件的基本语法是--variablefile path/to/variables.py

使用 Set Test Variable 创建的变量,可以在该测试用例范围内的任何位置有效。例如,你在一个用户关键字 中创建了变量,它将在测试用例级别有效及当前测试中的所有其他用户自定义关键字中有效。其他测试用 例将看不到该变量。

使用 Set Suite Variable 创建的变量,可以在当前测试集范围内的任何位置有效。使用该关键字创建变量同使 用测试数据文件的设置表格设置变量和引入变量文件相同。其他的关键字,包括可能的子测试集,都将不 能看到该关键字创建的变量。

使用 Set Global Variable keyword 创建的变量, 在所有测试用例和测试集中有效。 通过该关键字创建的变量同 使用命令行选项-variable 或—variablefile 创建的变量相同。因为该关键字可以在任何地方改变变量值,所有 需要小心使用

有效的操作系统内建变量

Variable Explanation

${CURDIR}  提供当前测试文件存放的绝对路径。该变量是大小写敏感的。

${TEMPDIR}  获取操作系统临时文件夹的绝对路径。 在UNIX系统是在/tmp, 在windows系统是在c:\Documents and Settings\<user>\Local Settings\Temp.

${EXECDIR}  获取测试执行开始目录的绝对路径。该变量是在 Robot Framework2.1 新加的。

空格和空变量

可以使用${SPACE}和${EMPTY}创建空格和空变量。这些变量非常有用,否则需要使用反斜杠用于转义空格或 空单元格。当需要使用多个空格时,可以使用该语法${SPACE*5}。如下面的例子,should be equal 使用了同 样的参数,但使用该语法比使用反斜杠更简单清晰。

一些自动变量可以在测试用例中使用。这些变量在执行时会有不同的值,并且他们不是在任何时候都是有 效的。

Variable Explanation Available

${TEST NAME}  获取当前测试用例名称  Test case

@{TEST TAGS}  包含当前测试集中的 tag,按字母排序  Test case

${TEST STATUS} 获取当前测试用例的状态,PASS 或 FAIL 中的一种。只能在测试用例 的 Teardown 中使用

Test

teardown

${TEST MESSAGE}  当前测试用例可能的错误信息。只能在测试用例的 Teardown 中使用

Test

teardown

Variable Explanation Available

${PREV TEST NAME}  前一个测试用例的名称,或者为空字符串【当没有任何测试用例执行 过】 。可以在任何地方使用

Everywhere

${PREV  TEST STATUS}

前一个测试用例的状态,PASS,FAIL 或者未空字符串, 【当没有任何 用例执行过】 。可以在任何地方使用

Everywhere

${PREV  TEST MESSAGE}

前一个测试用例可能的错误信息。可以在任何地方使用  Everywhere

${SUITE NAME}  当前测试集的全名称。可以在任何地方使用。

Everywhere

${SUITE SOURCE} 测试集文件或目录的绝对路径,Robot Framework2.5 新增变量。可以 在任何地方使用。

Everywhere

${SUITE STATUS}  当前测试集的状态, PASS 或 FAIL。只能在测试集的 teardown 中使用。

Suite teardown

${SUITE MESSAGE} 测试集的所有消息,包括统计。只能在测试集的 teardown 中使用。

Suite teardown

${OUTPUT FILE} 当前输出文件的绝对路径。当输出文件被分割会有不同的值。可以在 任何地方使用。

Everywhere

${LOG FILE} 当前日志文件的绝对路径或字符串 None【当没有日志文件时】 。当输 出被分割时,将可能有不同的值。

Everywhere

${REPORT FILE}  当前报告文件的绝对路径或字符串 NONE【当没有报告文件生成时】 。

Everywhere

${SUMMARY FILE}  摘要文件的绝对路径或字符串 NONE【当没有摘要文件时】 。

Everywhere

${DEBUG FILE}  调试文件的绝对路径或字符串 NONE【当没有调试文件时】 。

Everywhere

${OUTPUT DIR}  输出目录的绝对路径  Everywhere

变量文件创建变量时,

创建列表变量,变量 名称必须使用前缀LIST__(注意是两个下划线)。LIST__STRINGS = ["list", "of", "strings"]

2、用例执行部分

指定测试数据执行

RF 的测试用例可以创建在文件或目录中,在运行脚本后接需要执行用例的名文件名或路径名。路径可以是 绝对路径,更普遍的是相对路径。文件或目录构成顶级测试集,该测试集如果没有被--name option 所覆盖, 它将使用文件或目录名作为自己的名字。不同的执行情况将在下面的例子中说明。本章节中只有 pybot 被用 到,但 jybot 脚本的用法类似。

pybot test_cases.html

pybot path/to/my_tests/

pybot c:\robot\tests.txt

我们可以通过用空格分割来一次给出多个文件的路径,来运行多个文件或目录下的文件。RF 可以自动的产 生顶级的测试集, 具体的文件或目录将变成它的子测试集。 产生的测试集的名称将由子测试集的名字和 “&” 组成。例如下面的第一个例子中,顶级的测试集名称为 My Tests & Your Tests。但是,有时自动产生的测试 集的名字将很长很复杂。通常,更好的做法是使用—name option 来覆盖名称,正如第二个例子所示:

pybot my_tests.html your_tests.html

pybot --name Example path/to/tests/pattern_*.html

使用参数

当使用参数时,参数必须位于运行脚本和源数据中间。例如:

pybot -L debug my_tests.txt

jybot --include smoke --variable HOST:10.0.0.42 path/to/tests/

设置参数值

大部分参数需要一个参数值, 位于参数名后面。 长参数和短参数都接受由空格分开的参数值, 例如: “--include tag”或“-i tag” 。使用长参数时,可以将等号“=”作为分隔符,例如“--include=tag” ,使用短参数时,分 隔符可以省略,例如“-itag” 。

某些参数可以被具体赋值多次。例如, “--variable VAR1:value --variable VAR2:another”设置了两个变量。如 果某个只有一个值的参数被赋值多次,则最后一次生效。

简单正则表达式

很多参数后可接正则表达式的参数值。 “*”和“?”可替代具体的字符, “*”可匹配任何包括空值在内的 字符串, “?” 可以匹配任何单个字符。 例如:

“--include prefix-*” 匹配所有以 “prefix-” 开头的 tag,

“--include a???” 匹配所有以“a”开头 4 个字符的 tag。

返回码

运行脚本通过返回码使所有测试用例的状态和系统交互。如果所有的用例执行启动成功而且没有严重的失 败,返回码将是 0,所有可能的返回码都列在下表中。

返回码

用例执行完之后,很容易通过返回码来确定所有用例执行的状态。例如,在 bash shell 中,返回码保存在具 体的变量“ $?”中,在 Windows 系统中,返回码保存在变量% ERRORLEVEL %中。如果您使用外部的工 具来运行用例,请查询相关的文档来了解如何获得返回值。

用例的启动:

在第一个例子中,使用不同的浏览器做相同的 WEB 测试,并合并测试结果。使用 shell 脚本实现该功能就 非常简单,只需要把需要使用到的命令逐行列出来。

#!/bin/bash

pybot --variable BROWSER:Firefox --name Firefox --log none --report none --output out/fx.xml login

pybot --variable BROWSER:IE --name IE --log none --report none --output out/ie.xml login rebot --name Login --splitoutputs 1 --outputdir out --output login.xml out/fx.xml out/ie.xml

在 Windows 中使用批处理文件来实现上述功能也不是很复杂,有一点很重要,pybot 和 rebot 是由批处理文 件实现的,当运行其他批处理文件时,必须要使用 call。当第一个批处理文件结束时,测试也将结束。

@echo off

call pybot --variable BROWSER:Firefox --name Firefox --log none --report none --output out\fx.xml login

call pybot --variable BROWSER:IE --name IE --log none --report none --output out\ie.xml login

call rebot --name Login --splitoutputs 1 --outputdir out --output login.xml out\fx.xml out\ie.xml

执行测试集和测试用例

测试用例总是在某个测试集中执行。由目录产生的测试集包含由测试用例文件或目录组成的子测试集,由 测试用例文件组成的测试集直接包含测试用例。默认情况下,所有的测试用例都会执行,可以通过参数 “--test” 、 “--suite、 “--include”和“--exclude”来选择用例执行。测试集中如果没有用例,将不会执行。 RF 从顶级的测试集开始执行。如果测试集中包含用例,则顺序执行。如果测试集中再包含测试集,则按照 深度优先的顺序依次执行。当执行单个用例时,关键字按顺序执行。通常用例中的任何一个关键字失败了, 用例将停止执行,但是,我们可以做到让失败后继续执行。接下来的章节中将具体介绍准确的执行顺序和 setups 和 teardowns。

原文地址:https://www.cnblogs.com/baby0814/p/8675507.html

时间: 2024-07-29 19:00:39

Robot Framework使用技巧之内部变量的相关文章

Robot Framework使用技巧

1.变量的使用 变量可以在命令行中设置,个别变量设置使用--variable (-v)选项,变量文件的选择使用--variablefile (-V)选项.通过命令行设置的变量是全局变量,对其所有执行的用例都有效.它们将覆盖变量表格中的同名变量或是通过变量文件引入到测试数据中的同名变量.设置单个变量的语法是--variable name:value, “name”是不使用${}的变量名称, “value”则是其赋予的值.可以多次使用该选项设置多个变量.仅有标量变量可以使用该语法且只能赋值字符串.许

robot framework学习笔记之三—Scalar变量

一.变量赋值 1)Set赋值 通常使用Set Variable关键字对变量进行赋值,其他Set相关的带Variable的关键字也可以进行赋值 赋值的时候,变量后面写不写『=』都可以,如下: 如果${vara}的值和abcd字符串相等,就赋值321给${varc};如果不相等则赋值678 2)Get赋值 主要用于返回值上,包括系统关键字的返回值和用户关键字的返回值,如下: 第一个例子是获取变量${vara}的长度,第二个例子是获取时间 二.变量使用 1)在判断中使用 如果${vara1}和jay字

Robot Framework - 基础关键字 BuiltIn 库(二)

本篇教程,我们继续接着上篇内容进行讲解,我们本节教程讲解的是Robot Framework 机器人框架中的变量中使用判断.字符串的拼接.Evaluate的用法.调用Python文件.条件分支语句.以及For循环语句案例和字典中的基本使用,介绍字典的目的是方便后面我们做接口测试!好吧,我们开始搞起吧~~~ 判断中使用变量 字符串的拼接 Evalute用法 调用Python文件 条件分支案例 For循环语句案例 一.判断中使用变量 二.字符串的拼接 三.Evalute用法 四.调用Python文件

Robot Framework 内置变量

转自:https://blog.csdn.net/qq_26886929/article/details/53907755 Robot Framework 内部提供了一下直接可用的内置变量 1. 操作系统相关变量 内置的操作系统相关的变量,减少了测试数据对操作系统之间的差异性的关注 RF 中可用的操作系统相关的内置变量如下表: 变量 用途 ${CURDIR} 测试数据文件所在目录的绝对路径,该参数是大小写敏感的 ${TEMPDIR} 操作系统临时目录的绝对路径,在类 Unix 系统中,该路径通常

Robot Framework(八) 资源和变量文件

2.7资源和变量文件 测试用例文件和测试套件初始化文件中的用户关键字和变量只能在创建它们的文件中使用,但资源文件提供了共享它们的机制.由于资源文件结构非常接近测试用例文件,因此很容易创建它们. 变量文件提供了一种创建和共享变量的强大机制.例如,它们允许除字符串以外的值,并允许动态创建变量.它们的灵活性来自于它们是使用Python代码创建的,这也使它们比Variable表更复杂. 2.7.1资源文件 使用资源文件 使用“ 设置”表中的“ 资源”设置导入资源文件.资源文件的路径在设置名称后面的单元格

Robot Framework 初学者上手资料

首先要声明一下这是从http://www.cnblogs.com/yufeihlf/p/5949984.html拷贝的. 在这里只是自己的一个笔记,方便日后添加.修改内容. 总结下Robot Framework最基本的用法, 一来呢,希望自己以后看到这篇总结,很快能回忆起如何使用Robot Framework. 二来呢,以初学者的姿态总结Robot Framework,希望帮助到刚入门,却无从下手的新手们,毕竟网上很多资料可能是一些大神整理的,跳跃性很大. 目录 一,环境的搭建 二,最基本流程

使用Robot Framework框架远程操作UNIX系统

bot Framework是一个强大的自动化测试框架,依靠社区力量编写的Test Library为它提供了非常强的扩展性.下面我将介绍的就是如何使用第三方提供的扩展测试库(Test Library)来远程登录Unix,并在上面做常见操作. 环境准备(W32环境下): 1.首先我们得拥有Robot Framework的运行环境. a.必须安装python,因为Robot Framework是用python实现的,目前Robot Framework只支持Python2.X版本. b.安装Robot

如何编写Robot Framework测试用例1---(基本格式篇)

引子 我们使用符合Robot Framework规范的一种表格语法来编写测试用例.用例一般会是下面这个样子 这样的表格存储到一个文件中,就是一组测试用例.RF支持多种格式,如HTML,TSV,纯文本等.它们长相大同小异,其实描述的都是一种内容.为了方便,推荐使用RIDE这个用例的编辑工具来编写测试用例,这些文本在RIDE环境下被打开长得是一个样子的. 测试用例与文件的关系 一个文件被称作一个测试套件(Test suit),期间可以包含多个测试用例.上图就是一个测试套件,里面包含2个测试用例,My

Robot Framework自动化测试(一)---第一个脚本

最近工具中用Robot Framework框架来做自动化,所以,花时间学习了一下. =======所需环境=================== Python: https://www.python.org/ RF框架是基于python 的,所以一定要有python环境. Robot framework : https://pypi.python.org/pypi/robotframework/2.8.5 这个不是解释了,RF框架.虽然在做基于UI的自动化时,它展现出来的很像QTP,我之前也以为