包虫病

注册

 

发新话题 回复该主题

Hive基础命令一 [复制链接]

1#

出品

51Testing软件测试网

3.2测试数据的基本语法

本节主要介绍RobotFramework测试数据的基本语法和使用方法。RobotFramework是用Python写的,所以和Python在很多地方有类似的定义和用法。

01

测试数据的结构

一个测试文件可以分成4部分—Settings、Variables、TestCase和Keywords。每部分下面有些特殊的标记符号。其结构和每一部分的解释如下。

***Settings***#配置部分Documentation#本测试套件的描述文档SuiteSetup#进入本测试套件的准备工作SuiteTeardown#收尾工作,完成测试套件里所有测试用例后执行的步骤TestSetup#本测试套件的每一测试用例里默认的准备工作TestTeardown#本测试套件的每一测试用例里默认的收尾工作ForceTags#强行给每个测试用例设置标签DefaultTags#没有标签的测试用例默认使用这里设置的标签TestTemplate#测试用例的测试模板TestTimeout#测试套件的超时时间Resource#引用的资源文件Library#应用的测试库Variables#变量文件***?Variables?***#变量定义部分${var}#定义一个Scalar变量

{list}#定义一个List变量{dict}#定义一个Dictionary变量***Test?Cases?***#测试用例部分Hello_TestCase#测试用例名字[Documentation]#测试用例的文档说明[Tags]#给测试用例设置某些标签[Setup]#定义测试用例的准备工作,会覆盖测试套件里的定义[Template]#测试用例模板[Timeout]#测试用例运行的超时时间step1#测试用例的具体实现步骤step2……[Teardown]#定义测试用例的收尾工作,会覆盖测试套件里的定义***Keywords***#关键字部分Keyword_Name#关键字名字[Arguments]#关键字输入参数列表[Documentation]#关键字的文档说明[Tags]#关键字的标签[Timeout]#关键字运行的超时时间step1#关键字的具体实现步骤step2……[Teardown]#关键字的收尾工作[Return]#关键字的返回值(左右滑动查看完整原文)

需要说明的是,并不是每个文件都必须有这些部分。测试文件分为测试套件文件、测试主目录的__init__文件和资源文件这3种。测试套件文件里可以包含所有部分,也可以只包含“***TestCases***”部分。

资源文件比较特殊,它不能有“***TestCases***”部分。“***Settings***”部分也最多只能有Documentation、Resource、Library和Variables。?“***Variables***”和“***Keywords***”部分(和测试套件一样)可以都包含。一般资源文件主要的功能就是存放公用的关键字。

测试工程介于测试套件和资源文件之间,它虽然也不能包含“***TestCases***”部分,但是可以有SuiteSetup、SuiteTeardown等。__init__文件用于定义本目录下公用的关键字、变量和统一的Setup/Teardown操作。

表3-1总结出了测试工程、测试套件和资源文件各部分的异同。M表示必须有,O表示可选,X表示不支持。

02

文件格式

RobotFramework支持的文件格式包括ROBOT、TXT、TSV和HTML,但是从3.1版本开始默认使用ROBOT格式。如果使用其他格式文件,需要在执行测试用例时采用“--extension格式”告诉Robot命令用什么格式解释测试数据。示例如下。

robot--extensiontxt/path/to/testdata

文件格式是不区分大小写的,txt和TXT都可以使用。如果有多种格式的测试文件,可以用冒号(:)分隔。示例如下。

--extensiontxt:tsv

后续的RobotFramework版本可能会只支持ROBOT格式,所以建议尽量使用ROBOT格式。不管用什么格式保存文件,在RIDE界面上看到的测试用例都用统一的表格形式展现。然而,如果用其他工具打开,显示的结果会不一样。

ROBOT和TXT都是文本格式,各个元素之间用4个空格分隔。例如,hello_RF使用TXT或ROBOT格式,其测试数据如下。

***Settings***Documentation我的第一个RobotFramework测试用例***TestCases***case1${myChar}Set?VariableHelloRobotFrameworkLog${myChar}ShouldBeEqualAsStrings${myChar}HelloRobotFramework(左右滑动查看完整原文)

如果使用TSV格式,测试数据如图3-21所示。

图3-21TSV格式的测试数据

测试数据之间不以4个空格分隔,而以一个制表符分隔。

如果使用HTML格式,测试数据如图3-22所示。

图3-22HTML格式的测试数据

看上去HTML格式的测试文件非常整齐和美观,为了达到这种美观的效果,RobotFramework自动在背后添加了很多内容。从源码层级来看,ROBOT、TXT和TSV格式和上面显示的一样,但是HTML格式就复杂多了。这个HTML格式的helloRF的源代码如下。

!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"htmlheadmeta

分享 转发
TOP
发新话题 回复该主题