测试执行

如何创建测试套件结构解析 执行测试数据,如何继续执行一个测试用例失败后, 以及如何优雅地停止整个测试执行。

执行流

执行测试套件和

总是在一个测试套件执行测试用例。 一个测试套件 创建从一个 测试用例文件 直接测试,而套房吗 创建的 目录 有孩子的测试套件,要么 测试或自己的孩子套件。 在默认情况下所有的测试在一个 执行套件运行,但它是可能的 选择测试 使用 选项 ——测试 , ——套件 , ——包括 和 ——排除 。 测试套件包含没有被忽略。

从顶层开始执行测试套件中。 如果套件 执行测试,他们一个接一个,如果它有套房 以深度优先顺序递归地执行。 当一个人测试 执行情况,它所包含的关键词是运行在一个 序列。 通常执行当前的测试结束 关键词的失败,但也可以 后继续失败 。 确切的 执行顺序 以及如何 可能的 安装和拆卸 讨论了影响执行 在接下来的部分。

安装和卸载

可以使用设置和拆解 测试套件 , 测试用例 和 用户关键字 的水平。

套件设置

如果一个测试套件设置,这是执行测试前和孩子 套房。 如果套件设置,测试执行仍在继续 正常。 如果失败了,所有的测试用例套件和它的孩子 套件包含标记失败了。 测试和可能的套件设置 和拆解孩子不执行测试套件。

套件设置通常用于设置测试环境。 因为测试不运行如果套件设置失败,很容易使用 套件设置验证环境的状态 测试可以执行。

套件卸载

如果一个测试套件拆解,它毕竟执行测试 情况和儿童套房。 套件拆解无论执行 测试状态,即使匹配的套件设置失败。 如果套件 拆卸失败,所有的测试套件中失败之后 报告和日志。

套件拆解大多用于清理测试环境 后执行。 确保所有这些任务完成, 所有的 关键字用于执行拆卸 即使他们中的一些 失败。

测试设置

可能的测试设置关键词之前执行测试用例。 如果安装失败,关键字不执行。 的主要用途 为测试设置是设置特定的测试环境 的情况。

测试拆卸

可能的测试执行拆卸后的测试用例 执行。 它也不管测试状态和执行 如果测试设置失败了。

同样作为套件拆机,主要用于测试拆解 清理活动。 也完全执行,即使他们的一些 关键词失败。

关键字拆卸

用户的关键字 不能设置,但他们可以拆解工作 就像其他的拆解。 关键字拆解后运行关键字 否则执行,无论地位,甚至完全执行 如果他们的一些关键字失败。

执行顺序

测试用例执行测试套件中定义相同的顺序 在测试用例文件中。 测试套件在更高级别的测试套件 执行不区分大小写的字母顺序基于文件或目录 的名字。 如果多个文件和/或目录从命令行, 他们的顺序执行。

如果有需要使用特定的内部测试套件执行顺序 目录中,可以添加前缀 01 和 02 文件和目录的名字。 这样的前缀 包括在生成的测试套件名称分开 套房有两个下划线的基本名称:

01__my_suite.html -> My Suite
02__another_suite.html -> Another Suite

如果按照字母顺序排序,套房内测试套件 问题,一个好的解决方法是让他们分开的 需要秩序。 这很容易导致过于漫长的启动命令, 但 参数文件 允许清单文件每行一个文件。

还可以 随机化的执行顺序 使用 的 ——随机 选择。

通过执行

典型的测试用例,设置和拆解被认为如果通过 所有关键字包含执行,没有一个失败。 从 机器人Framework 2.8开始,也可以使用 内装式 关键字 通过执行 和 通过执行如果 停止执行与 通过状态和跳过剩余的关键词。

如何 通过执行 和 通过执行如果 的行为 在不同的情况下解释如下:

  • 当用在任何 安装或拆卸 (套件、测试或关键字),这些 关键字通过安装或拆卸。 可能开始的拆解 关键字执行。 测试执行或状态不受影响。
  • 在一个测试用例使用时安装或拆卸,外关键字传递 特定的测试用例。 可能的测试和执行关键字拆解。
  • 可能的 可持续的失败 发生在使用这些关键字之前, 以及在拆解执行失败之后,将执行失败。
  • 它是强制性的给一个解释消息 为什么执行被中断,也可以吗 修改测试用例标记。 更多细节,和使用的例子,请参阅 这些关键词的文档 。

通过执行的测试,安装或拆卸 小心使用。 在最坏的情况下会导致跳过所有的测试 部分可以发现问题在测试应用程序。 在这种情况下,执行外部因素不能继续做, 往往是失败的测试用例,使其更安全 非关键 。

继续失败

通常测试用例时立即停止他们的关键词 失败。 这种行为可以缩短测试执行时间和防止 如果后续关键字挂或造成问题 被测系统处于不稳定的状态。 这通常的缺点 随后的关键词会给更多的状态信息 系统。 因此机器人框架提供了几种特征后继续 失败。

运行关键字而忽略错误 和 运行关键字并期望误差 关键字

内装式 关键字 运行关键字而忽略错误 和 运行 关键字和预计错误 处理失败,测试执行 立即终止。 不过,使用这些关键字 测试用例经常增加了额外的复杂性,所以以下特性 值得考虑简化后继续失败。

从关键字特别失败

库关键字 使用异常报告失败,它是 可以使用特殊例外告诉核心框架 可以继续执行失败无关。 如何将这些异常 可以创建的解释吗 测试库API章 。

测试结束时,已经有一个或多个可持续失败, 测试将失败。 如果有一个以上的失败, 他们将枚举在最后的错误信息:

Several failures occurred:

1) First error message.

2) Second error message ...

测试执行结束后如果发生正常故障可持续 失败。 也在这种情况下所有的失败将上市 最后的错误消息。

从失败的关键字,返回值可能分配到一个 变量,总是Python 没有一个 

运行关键字和继续失败 关键字

内装式 关键字 运行关键字和继续失败 允许 将失败转化为可持续的失败。 这些失败 由框架完全一样的可持续的失败 来自图书馆的关键词。

自动执行继续拆解

要确保所有的清理活动被照顾, 继续失效模式是自动的 测试套件 拆解 。 在实践中这意味着,在拆解 关键词在所有水平总是执行。

所有顶级关键词时执行测试模板

当使用 测试模板 ,所有的数据行总是执行 让它确保所有不同的组合进行测试。 在这个 使用持续仅限于顶级关键词,和里面 通常执行结束时如果有non-continuable失败。

停止测试执行优雅

有时候需要停止测试执行之前所有的测试 已经完成了,但是这样创建日志和报告。 不同的方式 为此解释如下。 在所有这些情况下剩下的 测试用例失败。

从机器人Framework 2.9自动的测试失败 robot-exit 将包含标签和生成的报告 不是robot-exit 结合标记模式 很容易看到这些测试,没有跳过。 请注意 测试的退出不会发生了 robot-exit标签。

紧迫的 ctrl - c

执行时停止 ctrl - c 按在控制台 在测试运行。 在Python运行测试时, 立即停止执行,但在Jython之后才结束 当前执行的关键字结束。

如果 ctrl - c 再次按下,立即执行结束, 不创建报告和日志。

使用信号

在类unix机器上可以终止测试执行 使用信号 INT 和 术语 。 这些信号可以发送 从命令行中使用 杀了 命令,发送信号 也很容易自动化。

信号具有相同的限制Jython是紧迫的 ctrl - c 。 同样第二信号停止执行有力。

使用关键字

执行由执行关键字也可以停止。 有一个 单独的 致命错误 内装式 关键字为这个目的 自定义关键字可以使用 致命的异常 当他们失败。

第一个测试用例失败时停止

如果选择 ——exitonfailure 使用,测试执行停止 如果任何立即 关键的测试 失败。 还剩下的测试 都标记为失败。

停止解析或执行错误

机器人框架分离 失败 失败造成的关键词 错误 造成的,例如,无效的设置或失败的测试库进口。 在默认情况下这些报告错误 测试执行错误 ,但错误 否则自己不会失败测试或影响执行。 如果 ——exitonerror 使用选项,不过,所有这些错误 致命的和执行停止,这样剩下的测试都失败了。 与 解析错误遇到在执行开始之前,这意味着没有 实际运行测试。

请注意

——exitonerror 在机器人2.8.6框架。

拆解处理

默认情况下拆解的测试和套房已经开始 即使测试执行执行停止使用的方法之一 以上。 这允许运行清理活动无论如何执行 结束。

也可以跳过拆解当执行停止使用 ——skipteardownonexit 选择。 这可能是有用的,例如, 花费很多时间清理任务。

robotframework笔记18的更多相关文章

  1. Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel

    Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel Ext.Net GridPanel 有两种编辑模式:编辑单元格和编辑行. 单元格编辑: 行编辑: 可以看出,单元格编辑的时候,只 ...

  2. SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题

    目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如 ...

  3. JAVA自学笔记18

    JAVA自学笔记18 1.Map接口: 1)功能: 2) Map<String,String>m=new HashMap<String,String>(); //添加元素,元素 ...

  4. golang学习笔记18 用go语言编写移动端sdk和app开发gomobile

    golang学习笔记18 用go语言编写移动端sdk和app开发gomobile gomobile的使用-用go语言编写移动端sdk和app开发https://blog.csdn.net/u01249 ...

  5. springmvc学习笔记(18)-json数据交互

    springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...

  6. cocos2d-x学习笔记(18)--游戏打包(windows平台)

    cocos2d-x学习笔记(18)--游戏打包(windows平台)           之前做好的游戏,都是在vs2008下编译执行的.假设说想把游戏公布到网上或者和其它人一起分享游戏,那就得对游戏 ...

  7. robotframework笔记22

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

  8. robotframework笔记2

    法文件和目录 层次结构安排测试用例构建如下: 在创建测试用例 测试用例文件 . 自动创建一个测试用例文件 测试套件 包含 测试用例文件. 一个目录包含测试用例文件形成一个更高级别的测试 套件. 这样一 ...

  9. Linux实战教学笔记18:linux三剑客之awk精讲

    Linux三剑客之awk精讲(基础与进阶) 标签(空格分隔): Linux实战教学笔记-陈思齐 快捷跳转目录: * 第1章:awk基础入门 * 1.1:awk简介 * 1.2:学完awk你可以掌握: ...

随机推荐

  1. 3-WebPack

    一. 什么是WebPack WebPack可以看做是模块加载.打包工具. 它所做的事情是 1.分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,Typ ...

  2. javase建议学习路线

    javase建议学习路线:1.环境的搭建2.基本变量类型3.流程控制4.数组5.集合6.IO7.异常8.线程9.网络编程

  3. null&this&super&向上转型

    向上转型:父类声明子类实例化对象 例如A是父类 B是子类    1 : 实际上是父类的对象但将会丢失子类没有的父类方法 ,如果调用方法 将会调用子类重写的父类方法    2:上转型对象不能调用子类新增 ...

  4. BZOJ 3674: 可持久化并查集加强版

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3674 题意:三种操作:(1)合并ab所在集合:(2)查询ab是否在一个集合:(3) ...

  5. RabbitMQ在CentOS上的简单安装配置

    安装 1.依赖Erlang,yum install erlang安装之 2.去官网下载Fedora/RHEL的rpm包,rpm -ivh rabbitmq-server-*.noarch.rpm 安装 ...

  6. [SAP ABAP开发技术总结]BAPI调用

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

  7. NSKeyedArchive(存储自定义对象)

    在viewController.m中: - (void)viewDidLoad { [super viewDidLoad]; ZWPerson *p = [[ZWPerson alloc] init] ...

  8. iOS - XML 数据解析

    前言 @interface NSXMLParser : NSObject public class NSXMLParser : NSObject 1.XML 数据 XML(Extensible Mar ...

  9. js call与apply的区别-Tom

    .apply和.call方法是在函数原型中定义的两个方法(因此所有的函数都可以访问它)允许去手动设置函数调用的this值,他们用接受 的第一个参数作为this值,this 在调用的作用域中使用.这两个 ...

  10. Html.Listbox的用法(实例)

    homecontroller控制器中的index动作代码如下:         public actionresult index()        { list<selectlistitem& ...