一、三种运行方式的区别
在这张图中,我们可以看到三种主要运行方式分别是”Test UUTs”、”Single Pass”、”Run MainSequence”。大家不妨先尝试一下看看同一个序列文件用三种运行方式运行有什么可以直接看出的区别。
最显著的区别,使用Test UUTs时连续测试不同的UUT并且在测试结束时会弹出测试结果弹窗如下图所示。
这不同于Single Pass,Single Pass没有序列号弹窗和测试结果弹窗,它只会将整个序列文件完整执行一遍并生成测试报告。两者都会将序列文件完整的执行一遍并生成测试报表来显示测试结果,而与两者不同的是Run MainSequence,这种运行方式只会运行序列文件中的主序列并且不会生成报表。 需要知道内在的区别并探究TestStand开放式架构我们需要引入三个概念:过程模型、执行入口点以及回调序列。
二、过程模型
作为标准自动化测试系统的最上层,测试管理软件需要提供模块化的测试框架,而在TestStand中,这个测试框架被称为过程模型,而采用过程模型的序列文件被称为客户端序列文件。回顾一下我们在上一篇讲到的自动化测试组成,测试软件分为测试程序和测试框架。在过程模型中会有很多的通用操作,我们可以理解为过程模型将框架定义好,并预留位置给客户端序列,对于开发人员而言只需要写这一部分即可。
在使用过程模型之后,在启动测试后,TestStand就能够按照过程模型定义好的顺序来执行序列文件TestStand将很多通用操作直接提供给开发人员,如序列号追踪、流程控制、报表生成、数据存储等等。也就是说TestStand已经帮助我们将这些通用操作已经准备好了,不需要我们去自己再去做这些功能的步骤。我们只需要完成测试系统需要的额外的步骤比如需要的各种测试项,可以使用在第一章中讲到的一些测试步骤完成。这些我们自定义的步骤组成了客户端序列MainSequence。过程模型其实很简单,它的根本还是一个序列文件,它将各种通用操作和自定义操作以可自定义的顺序组合在一起。TestStand提供了三种过程模型:顺序过程模型、并行过程模型、批量过程模型。其中后两种具有并行测试的作用,并行测试在后续的章节中我们会讲到.
如果想要对过程模型进行自定义,可以打开TestStand后在菜单栏中选择Edit->Sequence File Properties打开序列文件属性窗口,在”Advance”中设置类型为Model就创建了新的过程模型如下图所示。
提示:如果序列文件使用的是顺序过程模型,在TestStand的最下方状态栏中会显示Model:SequentialModel.seq,双击即可打开顺序过程模型文件,其他两种过程模型也是类似的。
三、执行入口点
执行入口点为用户提供了一种方式,可运用过程模型执行其测试代码。默认的TestStand过程模型提供两个执行入口点,即Test UUTs和Single Pass。每个入口点都在过程模型序列文件的序列中实现。在序列编辑器中,当活动窗口包含使用过程模型的序列文件时,“执行”(Execute)菜单将列出执行入口点。过程模型定义了测试框架和常用操作。
在实际应用中,不同的项目中包含的通用操作以及通用操作之间的执行顺序都有不同的要求,因此每次都要修改过程模型,或者创建新的流程模型,随着时间的推移,过程模型会越来越多。为了避免这个问题,TestStand引入了执行入口点的概念。
观察上图,我们发现执行入口点A和执行入口点B两者的区别就是通用操作2和客户端序列MainSequence执行的顺序不同。而执行入口A和执行入口C两者区别在于执行入口C将通用操作1和客户端序列MainSequence自定义形成了一个循环。因此选择不同的执行入口点并不会改变操作,而只将它们按不同应用程序的需求的顺序重新排列。
现在回想Single Pass和Test UUTs就明白了它们其实就是同一个过程模型的两种不同执行入口点,Test UUTs其实将需要的通用操作和特定操作形成了一个循环,所以会连续测试不同的UUT,而Single Pass只按顺序完整运行一遍,就是这个道理。
四、回调序列
执行入口点允许我们定义自己的序列执行风格,但是执行入口点中包含的一般操作是预定义的,可能需要我们更改默认功能。以Test UUT为例,我们需要先输入测试序列号,但在实际生产线上可能会被条码枪直接扫描,不需要人工输入,这就需要修改或重写序列号输入这个通用操作。我们能想到的最直接的方法是直接在入口点修改通用操作,但如果产品升级或完全更新,这些通用操作需要不断更改以适应新产品,越改越多,系统维护就变得特别困难。为了避免这种情况,TestStand引入了回调序列。
TestStand将经常被修改的通用操作改为回调序列。每个回调序列都有一个定义的默认函数,但可以被客户端序列文件覆盖。如下图所示,在执行入口点中定义了三个回调序列,在客户端序列MainSequence中回调序列1和3在序列文件中被覆盖。
当TestStand执行过程模型框架中的每个回调序列时,它检查回调序列是否已被客户端序列文件覆盖。如果是,则执行客户端序列文件中的定义,否则执行默认操作。这允许自定义常见操作,并且大部分工作也放在客户端序列文件中,从而减少了修改流程模型和执行入口点的需要。
五、内容总结
从一开始的三种主要运行方式到过程模型、执行入口点以及回调序列,通过这三个不同层次的接口,TestStand就这样将其开放式架构一步步展现出来。
在这一章节,我们从三种主要运行方式出发,以较为理论的视角通过过程模型、执行入口点以及回调序列逐步了解了TestStand的系统与架构。简单总结一下,过程模型同样由TestStand引擎支撑,序列文件也由TestStand引擎支撑,但是如果不使用过程模型,那么只会执行该序列文件包含的步骤,如果使用了过程模型,则会按照过程模型设定的方式进行序列文件的执行,并包含一系列通用操作,如生成报告、结果分析等,方便我们更好地使用TestStand。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !