如何编写Robot Framework测试用例1

2024-12-01 09:06:31
推荐回答(2个)
回答1:

 最重要的一条原则就是保证测试用例对于不熟悉这个领域的人来讲越简单越好。
  关于这个主题的更多信息,你可以查看以下这些优秀的资源:
  Writing Maintainable Automated Acceptance Tests 作者:Dale H. Emery
  How to Structure a Scalable And Maintainable Acceptance Test Suite 作者:Andreas Ebbert-Karroum
  命名
  测试套件的命名
  套件的名称应该尽可能地描述这个套件的用途。
  名称可以相对长一些,但是如果超过40个字那也太长了一些。
  记住 Robotframework 的套件名称是直接从文件/目录的名字转换来的。文件的后缀名被去掉了而且下划线会被转换成空格,如果你的用到的单词都是小写的,那么开头字母会被转换成大写的。比如 login_test.txt 会被转换成 Login Tests, DHCP_and_DNS 会被转换成 DHCP and DNS。
  测试用例的命名
  测试用例的名字应该与套件的名字描述相似。
  如果一个套件里包含了好多个相似的测试用例,而且测试套件本身已经很好地命名了,那么用例的名称可以简短一些。
  在测试用例文件中的名称应该恰好表达了你需要做什么。
  关键词命名
  同样的,关键词的名称也应该是清晰具体的。
  应该可以表达这个关键词干了什么,而不是它如何去做。
  关键词应该是非常不同的抽象层次(比如,「输入字符」或者「用户登录到系统」)。
  生成和分解的命名
  试着用名称来描述这个步骤完成了什么。
  或许你可以用一个已经存在的关键词
  如果生成或者分解包含了不相关的步骤,那么可以接受更抽象一点的名称。
  在名称中列举步骤是一个重复化和维护的问题(比如:登入系统,添加用户,激活警报和检查平衡)。
  或许需要用到一些通用一些的名称比如「初始化系统」
  每个用到这几个测试用例的人都需要明白这几个生成或者分解动作是干什么的。
  文档
  测试套件的文档
  通常把文档添加到包含测试用例的最底层套件中是一个不错的想法。
  高层的套件不需要那么频繁地文档化。
  文档应该包含必要的背景信息,比如为什么要创建这些测试用例,测试环境中需要注意的点等等。
  文档内容不要只是简单地重复套件的名称。
  如果不是真的有文档还不如不添加文档。
  文档的内容不要包含关于测试用例的太详细的信息。
  测试用例本身就应该足够清楚易懂了。
  重复的信息是一种浪费,而且也不容易维护。
  文档中可以添加一些详细内容的链接。
  如果你需要在文档中添加一些比如(版本:1.0 或者 OS:Linux)这样的「名称-值」组的话,可以考虑使用测试套件 metadata

回答2:

这样的表格存储到一个文件中,就是一组测试用例。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个参数。