Robot Framework之创建变量和执行用例

一、变量的使用

种子变量

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

在命令行中使用变量文件的基本语法是--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\\Local Settings\Temp。${EXECDIR} 获取测试执行开始目录的绝对路径。空格和空变量可以使用${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 MESSAGE} 当前测试用例可能的错误信息。只能在测试用例的 teardown  中使用

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

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

${PREV TEST MESSAGE} 前一个测试用例可能的错误信息。可以在任何地方使用

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

${SUITE SOURCE} 测试集文件或目录的绝对路径,可以在任何地方使用。

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

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

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

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

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

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

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

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

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

TestCase Go

二、连接对象

Catenate关键字可以连接多个对象

Catenate关键字

执行结果:

Starting test: Test.Testsuit.test

20171213 08:57:43.133 :  INFO : ${hi} = hello woeld!

20171213 08:57:43.133 :  INFO : hello woeld!

Ending test:  Test.Testsuit.test

加上“SEPARATOR=”可对多个连接的信息进行分割:

SEPARATOR分割

执行结果:


三、用例执行

RF 的测试用例可以创建在文件或目录中,在运行脚本后接需要执行用例的名文件名或路径名。路径可以是绝对路径,更普遍的是相对路径。文件或目录构成顶级测试集,该测试集如果没有被--name option 所覆盖,它将使用文件或目录名作为自己的名字

RF 可以自动的产生顶级的测试集, 具体的文件或目录将变成它的子测试集。 产生的测试集的名称将由子测试集的名字和 “&”组成

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

设置参数值:大部分参数需要一个参数值, 位于参数名后面。 长参数和短参数都接受由空格分开的参数值, 例如: “--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 %中。如果您使用外部的工具来运行用例,请查询相关的文档来了解如何获得返回值

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,511评论 18 139
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,113评论 2 34
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 25,385评论 5 18
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,680评论 6 342
  • 我所有的笑话都讲完了 如今我两眼空空,口干舌燥 可笑地嗫嚅着乏味的字眼 用没有意义的故事,掩盖住 那个可怕的事实 ...
    郭绿狮阅读 373评论 0 1