测试执行
如何创建测试套件结构解析 执行测试数据,如何继续执行一个测试用例失败后, 以及如何优雅地停止整个测试执行。
执行流
执行测试套件和
总是在一个测试套件执行测试用例。 一个测试套件 创建从一个 测试用例文件 直接测试,而套房吗 创建的 目录 有孩子的测试套件,要么 测试或自己的孩子套件。 在默认情况下所有的测试在一个 执行套件运行,但它是可能的 选择测试 使用 选项 ——测试 , ——套件 , ——包括 和 ——排除 。 测试套件包含没有被忽略。
从顶层开始执行测试套件中。 如果套件 执行测试,他们一个接一个,如果它有套房 以深度优先顺序递归地执行。 当一个人测试 执行情况,它所包含的关键词是运行在一个 序列。 通常执行当前的测试结束 关键词的失败,但也可以 后继续失败 。 确切的 执行顺序 以及如何 可能的 安装和拆卸 讨论了影响执行 在接下来的部分。
安装和卸载
可以使用设置和拆解 测试套件 , 测试用例 和 用户关键字 的水平。
套件设置
如果一个测试套件设置,这是执行测试前和孩子 套房。 如果套件设置,测试执行仍在继续 正常。 如果失败了,所有的测试用例套件和它的孩子 套件包含标记失败了。 测试和可能的套件设置 和拆解孩子不执行测试套件。
套件设置通常用于设置测试环境。 因为测试不运行如果套件设置失败,很容易使用 套件设置验证环境的状态 测试可以执行。
套件卸载
如果一个测试套件拆解,它毕竟执行测试 情况和儿童套房。 套件拆解无论执行 测试状态,即使匹配的套件设置失败。 如果套件 拆卸失败,所有的测试套件中失败之后 报告和日志。
套件拆解大多用于清理测试环境 后执行。 确保所有这些任务完成, 所有的 关键字用于执行拆卸 即使他们中的一些 失败。
测试设置
可能的测试设置关键词之前执行测试用例。 如果安装失败,关键字不执行。 的主要用途 为测试设置是设置特定的测试环境 的情况。
测试拆卸
可能的测试执行拆卸后的测试用例 执行。 它也不管测试状态和执行 如果测试设置失败了。
同样作为套件拆机,主要用于测试拆解 清理活动。 也完全执行,即使他们的一些 关键词失败。
关键字拆卸
用户的关键字 不能设置,但他们可以拆解工作 就像其他的拆解。 关键字拆解后运行关键字 否则执行,无论地位,甚至完全执行 如果他们的一些关键字失败。
执行顺序
测试用例执行测试套件中定义相同的顺序 在测试用例文件中。 测试套件在更高级别的测试套件 执行不区分大小写的字母顺序基于文件或目录 的名字。 如果多个文件和/或目录从命令行, 他们的顺序执行。
如果有需要使用特定的内部测试套件执行顺序 目录中,可以添加前缀 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 选择。 这可能是有用的,例如, 花费很多时间清理任务。