命名

测试套件的名称
 
之后,你可能应该描述你的名字。
名称是从文件或目录名自动创建:
扩展了。
强调了转换空间。
如果名称都是小写,大写的单词是。
名称可以是比较长的,但是太长的名字不方便 文件系统。
“顶层套房的名字可以覆盖从命令行使用的 姓名选项,如果需要。
实例:
 
  • login_tests.robot -> Login Tests
  • IP_v4_and_v6 -> IP v4 and v6
 
测试用例名称
 
试验名称应描述类似套房的名字。
如果一套包含许多类似的测试,和套件本身是好的名字,名字可以 试验。
名字就是你指定的测试用例文件没有任何 转换。
例如,如果我们要在一个文件中无效的登录相关测试invalid_login.robot,这些会好的测试用例的名字:

*** Test Cases ***
Empty Password
Empty Username
Empty Username And Password
Invalid Username
Invalid Password
Invalid Username And Password

这些名字有点长:

*** Test Cases ***
Login With Empty Password Should Fail
Login With Empty Username Should Fail
Login With Empty Username And Password Should Fail
Login With Invalid Username Should Fail
Login With Invalid Password Should Fail
Login With Invalid Username And Invalid Password Should Fail

关键词名称
 
还应明确描述和关键字的名称。
要解释什么是关键词,而不是如何做的。
非常不同的抽象层次(如输入文本或管理员登录到系统 )。
没有明确的指导方针应充分标题关键字套管或应 只有第一个字母是大写的。
标题的关键词的名字是套管经常用时短(例如输入文本)。
资本只是第一个字母一般用关键词 那样的句子(如管理员登录到系统)。这些 关键词通常也是高水平。
好 :
*** Keywords ***
Login With Valid Credentials
坏:
*** Keywords ***
Input Valid Username And Valid Password And Click Login Button
命名的安装和拆卸 
 
尝试使用名字做什么。
尽可能使用现有的关键词。
更抽象的名字可安装或拆卸包含无关的步骤。
在名称列表的步骤是复制和维护的问题 (登录到系统中,添加用户,激活报警和制衡)。
使用一般的东西,往往更好(例如初始化系统)。
内置的关键词运行关键词如果关键词执行较低的 台阶已经存在好的工作。
当你不确定最佳使用可重复使用的安装程序需要的情况或是 tearDown只有一次。
每个人都有这些测试工作应该明白安装或拆卸不 。
*** Settings ***
Suite Setup     Initialize System
好(如果只是用一次)。 
*** Settings ***
Suite Setup     Run Keywords
... Login To System AND
... Add User AND
... Activate Alarms AND
... Check Balance
坏:
*** Settings ***
Suite Setup     Login To System, Add User, Activate Alarms And Check Balance
文档
 
测试用例文档
 
加上全面的文档测试用例文件通常是一个好主意。
应该包含的背景信息,为什么测试的创建,对 执行环境的笔记,等。
不要只是重复测试套件的名称。
更好,如果它是不是真的需要没有任何文件。
不包括测试用例太多细节。
测试应该清楚一个人。
重复信息是浪费和维修问题。
文件可以包含更多信息的链接。
考虑使用测试套件的元数据,如果你需要的文献信息 表示为名称-值对(例如版本:1或Linux的:)。
文件和顶层套房元数据可以从命令行使用 文件和——元数据选项,分别。
好:

*** Settings ***
Documentation Tests to verify that account withdrawals succeed and
... fail correctly depending from users account balance
... and account type dependent rules.
... See http://internal.example.com/docs/abs.pdf
Metadata Version 0.1

坏(特别是如果套件为好account_withdrawal.robot):
*** Settings ***
Documentation    Tests Account Withdrawal.
测试用例文档
 
测试通常不需要的文件。
名字和父套件和测试自己的名字 可能文件应给出足够的背景信息。
测试用例的结构应该没有文件或其他 评论是够清楚的。
标签通常更灵活,提供更多的功能(统计, 包含/排除,比文件等)。
有时测试文档是有用的。不需要害怕使用它。
*** Test Cases ***
Valid Login[Tags]    Iteration-3    Smoke    Open Login Page
Input Username ${VALID USERNAME}
Input Password ${VALID PASSWORD}
Submit Credentials
Welcome Page Should Be Open
坏:

*** Test Cases ***
Valid Login
[Documentation] Opens a browser to login url, inputs valid username
... and password and checks that the welcome page is open.
... This is a smoke test. Created in iteration 3.
Open Browser ${URL} ${BROWSER}
Input Text field1 ${UN11}
Input Text field2 ${PW11}
Click Button button_12
Title Should Be Welcome Page

使用关键词的文件
 
如果关键词比较简单,不需要。
好的关键字和参数的名称和结构清晰,应该够了。
重要的是记录的参数和返回值。
在资源文件中的文档生成与显示libdoc编辑 如骑可以显示它在完成关键字和其他地方。
测试套结构
 
在一个测试套件应该是彼此相关。
常见的安装或拆卸往往是一个很好的指标。
不应该有太多的测试(最大10)在一个文件,除非他们数据驱动测试。
测试应该是独立的。使用安装/拆卸的初始化。
有时测试之间的依赖性是无法避免的。
例如,它可以把太多的时间来初始化所有的测试分开。
没有相关的测试长链。
考虑验证使用内置的以前的测试状态{ } $沪指测试状态变量。
测试用例的结构
 
测试用例应该很容易理解。
一个测试用例应该检测一件事。
东西可小(一个单一功能的一部分)或大(端到端)。
选择合适的抽象层次。
使用抽象水平一致(抽象原则的单级)。
不包括在测试用例层不必要的细节。
两种测试用例:
工作流测试
数据驱动测试
工作流测试
 
通常这些阶段:
前提(可选,往往在设置)
行动(做系统)
验证(验证结果,强制)
清理(可选,总是在拆卸来保证它的执行)
关键词的描述一个测试。
使用明确的关键字的名称和适当的抽象层次。
应包含足够的信息来手动运行。
不需要的文档或注释说明的测试。
不同的测试可以有不同的抽象层次。
一个详细的功能测试更精确。
端到端的测试可以在很高的水平。
一个测试应该只使用一个抽象层
不同的风格:
低层次的细节和集成测试技术测试。
“可执行规范”作为要求。
使用领域语言。
每个人(包括顾客和/或产品所有者)应该明白。
在测试用例的水平没有复杂的逻辑。
在环或if / else结构的话。
使用变量的赋值与护理。
测试用例不应该像脚本!
最大10步,preferably less。
使用“正常”的关键字驱动方式:
*** Test Cases ***
Valid Login
Open Browser To Login Page
Input Username demo
Input Password mode
Submit Credentials
Welcome Page Should Be Open

使用更高级别的例子:

*** Test Cases ***
Valid Login    Given browser is opened to login page
When user "demo" logs in with password "mode"
Then welcome page should be open
数据驱动测试
 
每测试一个高层次的关键词。
不同的参数创建不同的测试。
一个测试可以运行相同的关键词多次验证多个 相关变化
如果关键字作为用户关键词来实现的,它通常包含 相似的工作流程工作流测试。
如果需要在其他地方,这是一个好主意,创造了在同一文件 测试使用。
推荐使用测试模板功能。
不需要重复多次的关键词。
更容易在一个测试的多种变化。
可能的话,推荐,名称的列标题
如果一个非常大的数量的测试是必要的,考虑发电的基础 外部模型。
例子:
*** Settings ***
Test Template         Login with invalid credentials should fail

*** Test Cases ***
    USERNAME PASSWORDInvalid Username
      invalid              ${VALID PASSWORD}Invalid Password
${VALID USERNAME}    invalid
Invalid Both          invalid              invalid
Empty Username${EMPTY}${VALID PASSWORD}Empty Password${VALID USERNAME}${EMPTY}Empty Both${EMPTY}${EMPTY} *** Keywords *** Login with invalid credentials should fail[Arguments]${username}${password}
Input Username ${username}
Input Password ${password}
Submit Credentials
Error Page Should Be Open

web演示项目包含一个可执行版本的这个例子

 
 
用户关键词
 
应该很容易理解。
同样的规则与流程测试。
不同的抽象层次。
可以包含一些可编程逻辑(for循环,如果/其他)。
特别是在低水平的关键词。
复杂的逻辑,而不是在图书馆用户关键词。
变量
 
封装长和/或复杂的价值。
将信息从他们的命令行使用——变选项
之间传递信息的关键词。
变量命名
 
清晰但不太长的名字。
可以使用注释在变量表文件他们更多。
使用CASE:
较低的情况下,局部变量只适用一定范围内。
与他人的大写(全球、套房或测试水平)。
空间和下划线可以作为一个字分离器。
推荐名单也变量,动态地设置在变 表。
通常使用内置的关键词集集套变。
初始值应该解释/真实值设置。
例子:
*** Settings ***
Suite Setup Set Active User *** Variables ***
# Default system address. Override when tested agains other instances.
${SERVER URL} http://sre-12.example.com/
${USER} Actual value set dynamically at suite setup *** Keywords ***
Set Active User
${USER} = Get Current User ${SERVER URL}
Set Suite Variable ${USER}
 
传递和返回值
 
常见的方法是返回值分配给变量 关键词,然后通过他们对其他关键词的争论。
清晰和易于理解的方法。
允许创建独立的关键词,方便使用。
看起来像编程从而不太好的测试用例的水平。
另一种方法是将信息存储在图书馆或使用内置设置测试变量关键词
避免对测试用例层次的编程风格。
可以遵循,使重用关键词更难更复杂。
 
*** Test Cases ***
Withdraw From Account
Withdraw From Account $50
Withdraw Should Have Succeeded *** Keywords ***
Withdraw From Account
[Arguments] ${amount}
${STATUS} = Withdraw From User Account ${USER} ${amount}
Set Test Variable ${STATUS} Withdraw Should Have Succeeded
Should Be Equal ${STATUS} SUCCESS
退出应该成功应该是平等的$ {地位}成功
不太好:
*** Test Cases ***
Withdraw From Account${status} =    Withdraw From Account    $50
Withdraw Should Have Succeede
d    ${status}
*** Keywords ***
Withdraw From Account[Arguments]
${amount}${status} =    Withdraw From User Account
    ${USER}${amount}[Return]
${status}Withdraw Should Have Succeeded[Arguments]
${status}
Should Be Equal ${status} SUCCESS
睡眠是一个非常脆弱的方式同步测试。
安全边际造成太长睡在平均。
而不是睡觉,使用关键字,调查具有一定的行为发生。
关键词的名字开始等待…。
应该有一个最大等待时间。
可能把其他关键词里面自带的关键词等到关键词成功。
有时睡觉是最简单的解决方法。
总是小心使用。
不要使用用户的关键字,通过试验或其他关键词经常使用。
可以是有用的,在调试停止执行。
对话框库通常更好的作品。
 

【直译】

robotframework笔记3--如何编写好的测试用例使用机器人的框架的更多相关文章

  1. 如何使用RobotFramework编写好的测试用例

    如何使用Robot Framework编写优秀的测试用例 概述 命名 测试套件命名 测试用例命名 关键字命名 setup和teardown的命名 文档 测试套件文档 测试用例文档 用户关键字文档 测试 ...

  2. robotframework笔记26

    测试数据文档工具(Testdoc) Testdoc是机器人框架内置的工具生成高水平 根据测试用例文档. 创建的文档是在HTML中 格式和它包括名称.文档和其他元数据 测试套件和测试用例,以及和他们的顶 ...

  3. robotframework笔记22

    创建测试库 支持的编程语言 机器人框架本身是用写的 Python 和自然的测试 库扩展它可以使用相同的实现 语言. 运行时框架上 Jython ,图书馆也可以 实现使用 Java . 纯Python代 ...

  4. robotframework笔记4

    机器人框架概述   机器人框架是一个通用的开源的自动化测试框架 验收测试和验收测试驱动开发(ATDD).它具有易于使用的表格的测试数据 语法采用关键字驱动 测试方法.其检测能力可以通过测试库 用Pyt ...

  5. robotframework笔记1

    机器人框架是一个基于Python的,可扩展的关键字驱动的自动化测试最终到终端的验收测试和验收测试驱动开发(ATDD)框架.它可用于检测分布式异类应用程序,其中,验证要求感人几种技术和接口. 下面列出了 ...

  6. AM335x(TQ335x)学习笔记——触摸屏驱动编写

    前面几篇文章已经通过配置DTS的方式完成了多个驱动的移植,接下来我们解决TQ335x的触摸驱动问题.由于种种原因,TQ335x的触摸屏驱动是以模块方式提供的,且Linux官方内核中也没有带该触摸屏的驱 ...

  7. 用java和junit编写app自动化测试用例

    package myTest; import static org.junit.Assert.*; import io.appium.java_client.android.AndroidDriver ...

  8. 用python和unittest编写app自动化测试用例

    import unittest import webdriver import time class Test(unittest.TestCase): @classmethod def setUpCl ...

  9. Yii框架学习笔记(二)将html前端模板整合到框架中

    选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...

随机推荐

  1. VC++ 工程添加 Unicode Debug和Unicode Release编译支持

    转载:http://blog.csdn.net/djhdu/article/details/171766 转载:http://blog.163.com/long_lh/blog/static/2769 ...

  2. 修复跨站攻击 php

    在公用文件中加入如下代码 <?php /*云体检通用漏洞防护补丁v1.1 更新时间:2013-05-25 功能说明:防护XSS,SQL,代码执行,文件包含等多种高危漏洞 */ $url_arr= ...

  3. 解决 Eclipse 重写方法时参数为arg0,arg1

    我们在用eclipse 中Alt+ / 补全代码时.方法重写会出现arg0这样可读性差的参数. 原因是没有找到android 的源文件. 一.下载文件 需要下载 sources for android ...

  4. python 列表去重(数组)的几种方法

    一.方法1  代码如下 复制代码 ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ids:     if id not in news_id ...

  5. Oracle ——————建表、select、视图

    --建表 -- 关键字 : create -- 用法 : /* create table table_name ( lie1_name 数据类型 是否为空, lie2_name 数据类型 是否为空, ...

  6. 5.4.1 termios结构,关闭回显功能,一键入字符fgetc立刻返回,不用按下回车键

    Linux提供了一组编程接口,用来控制终端驱动程序的行为.这样我们可以更精细的来控制终端. 例如: 回显:允许控制字符的回显,例如读取密码时. 使用termios结构的密码程序 #include &l ...

  7. [C和指针]第一部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. [C程序设计语言]第三部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. python_way day21 Django文件上传Form方式提交,原生Ajax提交字符处啊,Django文件上传之原生Ajax方式、jQuery Ajax方式、iframe方式,Django验证码,抽屉示例,

    python_way day21 1.Django文件上传至Form方式 2.原生Ajax文件上传提交表单 使用原生Ajax好处:不依赖jquery,在发送一个很小的文件或者字符串的时候就可以用原生A ...

  10. MVC服务器前台提示

    [HttpPost] public ActionResult AddMsg(MsgModel model) { string strSql = "insert into tbl_msg(ti ...