TPT中脚本评估的使用(下):测试管理与软件交互( 二 )


值得注意的是 , 我们在编写外部脚本的时候要注意其语法特性要满足TPT内部的语法特性 , 不能使用TPT中不包含的语法特性 。
通过TPT脚本与MATLAB进行交互
TPT提供了与MATLAB进行交互的接口 , 我们可以通过runMScript()函数在MATLAB工作区写入或者读取变量 , 也可以去执行M语言程序 , 在MATLAB中对信号进行计算与处理 , 或者针对不同的测试用例对模型本身进行改变 。
TPT中脚本评估的使用(下):测试管理与软件交互
文章图片
下图是这个函数的使用示例 。 首先我们在MATLAB工作区创建了IN和OUT两个变量 , IN是TPT写入MATLAB的变量 , OUT是TPT从MATLAB读取的变量 。 同时TPT把这个函数的第一个参数的内容作为M脚本在MATLAB中执行 。 这个M脚本的执行结果是赋予OUT信号以IN信号的时域与值域的数值 , 之后将模型中的AUTO_MODE参数的值置为3 。
TPT中脚本评估的使用(下):测试管理与软件交互
文章图片
除此之外 , 我们还可以用TPT脚本中的setMatlabSettings()函数对MATLAB平台进行设置 , 让测试环境达到我们的要求 。
通过TPT脚本与其它应用程序或Python扩展库进行交互
我们之前在脚本中调用了Python2.7的标准库 , 那如何在TPT脚本中使用例如numpy、pandas、matplotlib这些较为常用的扩展库呢?TPT的execute()这个函数为我们提供了实现的可能 。
我们调用execute()这个函数 , TPT就会自动创建一个我们指定的进程 , 同时TPT解释器会在execute()函数调用语句处暂停 , 等待外部进程的结束 。 那么我们就可以通过共享内存的方法 , 为TPT和外部进程创建一个共同的数据缓存区 , 通过这个缓存区实现TPT和外部进程的数据交互 。 外部进程结束后 , 我们的TPT脚本可以根据其返回的结果来进行下一步的操作 , 原理如下图所示 。
TPT中脚本评估的使用(下):测试管理与软件交互
文章图片
整个脚本的执行流程是TPT内部进程和外部进程交叉进行的 , 由于交互的速度很快 , 所以可以近似于是TPT内部库的调用 , 整个过程类似于“并发”这种调度方式 。
TPT脚本的封装与管理
TPT提供了对脚本进行封装和管理的功能 。 在一个项目中 , 有时候我们会有一些重复的计算步骤或者程序流程 , 这时候我们可以把这些计算步骤封装成函数 , 需要时我们可以对函数进行调用 , 简洁了代码提高了效率 。
同样的 , 我们在项目中可能会有一些功能相似或者相互补充的函数 , 这时候我们可以把这些函数进一步封装 , 把同类型的函数封装成外部函数库 , 我们在TPT中可以把这些函数库加载进来 , 方便我们的调用 , 加速整个项目流程 。
举个简单的例子 , 如下图所示 , 我们把绘图和绘表这些固定的脚本步骤封装成了两个函数 。 通过这两个函数的调用 , 我们可以轻而易举的添加多个信号的图像或者表格 。
TPT中脚本评估的使用(下):测试管理与软件交互
文章图片
同样的 , 我们假如定义了多个与图形绘制有关的函数 , 我们可以进一步的把图形绘制的函数归类成一个函数库 , 步骤如下图所示 。 这时候我们就可以在多个项目中去使用这个函数库 , 或者分享给团队成员 , 提高了代码的复用性 。
TPT中脚本评估的使用(下):测试管理与软件交互
文章图片
我们建立自己的外部函数库也方便我们对工程的管理 。 把一些固定的步骤标准化 , 无疑提高了整个团队代码的规范性 。 同时 , 我们还可以通过Git或SVN对团队的脚本库进行管理与共享 , 提高了团队协作性 。