引子
我们使用符合Robot Framework规范的一种表格语法来编写测试用例。用例一般会是下面这个样子
这样的表格存储到一个文件中,就是一组测试用例。RF支持多种格式,如HTML,TSV,纯文本等。它们长相大同小异,其实描述的都是一种内容。为了方便,推荐使用RIDE这个用例的编辑工具来编写测试用例,这些文本在RIDE环境下被打开长得是一个样子的。
测试用例与文件的关系
一个文件被称作一个测试套件(Test suit),期间可以包含多个测试用例。上图就是一个测试套件,里面包含2个测试用例,My Test 和AnotherTest。
Test suit也能嵌套,比如同一个目录下的多个Test suit组成一个更高层的Test Suit,这些更高层的Test suit可以组成,这种嵌套的层数可以无限多。这种嵌套的用例组织形式在实际应用中很常见。
测试用例文件的内部结构
一个Test Suit文件包含四段内容他们分别是:Setting,Variable,Testcase,Keyword
Setting部分主要的作用是:
引用测试类库文件(test Library),引用资源文件(resource files),引用变量文件(variable files)。
为测试套件或者测试用例定义元数据(metadata)
Variable部分的主要作用是:
定义测试用例中要使用的变量。
TestCase部分的主要作用是:
使用测试关键字来完成测试用例
Keword部分的主要作用是:
把现有关键字进行组合,生成更高一级的新关键字。
对测试用例文本解析的规则
如同各种编程语言一样,RF需要对它规定的这种表格语言进行解析,并用内部引擎把这些脚本语言解释成执行测试用例的具体操作。在解析过程中我们需要如下几点:
忽略字符:根据格式不同,忽略不符合格式的字符,规则很多,但是可以使用RIDE来规避,使用RIDE我们就可以不考虑这些。
转义符:RF使用 \ 作为转义符。举个例子:\${notvar} 代表字符串 ${notvar} 而不是一个变量
空格:RF会自动截断头尾的空格
多行用例
如果参数太多,需要换行,则需要在下一行的关键字处使用英文的省略号(...)表示参数属于同一个关键字。
Test Case | Action | Argument | Argument | Argument |
---|---|---|---|---|
Example | [Documentation] | Documentation | for this | test case. |
... | This can get | quite | long... | |
[Tags] | t-1 | t-2 | t-3 | |
... | t-4 | t-5 |
|
|
Do X | one | two | three | |
... | four | five | six | |
${var} = | Get X | 1 | 2 | |
... | 3 | 4 | 5 | |
... |
从上表中我们可以看到:[Tags]有5个参数,而Do X有6个参数。