摘要
在之前的文章《GCKontrol PythonAPI自动化测试应用案例》介绍了自动化测试的优势与具体应用案例,以及后续的Jenkins集成。在本文中我们将讲述另一款基于GCAir仿真平台的自动化测试工具——TestManager(TM),TestManager在仿真自动化测试中起着非常重要的作用,与Python API不同的是TestManager适合更多复杂的仿真集成应用场景,下面将详细介绍TestManager的基本功能以及两个应用案例。
01
TestManager
TestManager
TestManager是一款基于GCAir仿真平台的自动化测试工具,支持全虚拟测试和半实物仿真,可对GC工程所有的变量或参数,在不同场景下,自定义多个基于参数化的测试用例,并最终生成多种格式的报告。
图 TestManager架构
TestManager将继承多种GCAir工程的配置。TestManager支持对GCAir集成的复杂工程做自动化测试,包括使用复杂模型库实例化的GCAir工程;支持全虚拟和半实物的仿真引擎,TestManager的测试用例运行在实时仿真机上,在单个步长内的测试数据与实时模型同步;TestManager完整复用GCAir 2D面板中的所有控件,以便于在自动化测试中实时观测数据。
TestManager的测试用例基于图形化界面开发。用户在界面上定义测试用例的操作步骤,对重点模型参数进行不同组工况的数据配置,规定测试用例工况的pass或fail判断,对实时数据与期望数据进行用例曲线配置,最终生成的数据报告用于后续的数据分析。
图 测试流程
在本阶段,需要对系统功能需求进行梳理,划分出可以进行自动化测试的需求,划分的标准一般是简单、重复性高、业务复杂度低的需求。需要确定测试覆盖率以及自动化测试粒度、测试用例上的筛选等。
测试始于测试目标和测试策略的建立,测试策略应该满足测试目标的要求。TestManager支持多个GC工程进行多场景、多用例工况的测试策略设计。每个GC工程可以配置多个测试场景,每个测试场景可以配置多个测试用例,每个测试用例可以配置多个工况,在测试执行阶段会依次执行每个工况。
图 多个测试工程
在TestManager中比较重要的一个环节是定制基于参数化的测试用例,软件支持三种用例方式:
图 创建用例
在创建测试用例时,选择测试数据为导入CSV类型,即可创建CSV测试用例。可以在创建时选择导入输入文件和对应期望,也可以创建用例后再进行文件的导入。
图 导入CSV文件
工作流程:
图 导入CSV测试流程
在创建测试用例时,选择测试数据为导入Python,即可创建导入Python类型的测试用例。
图 导入Python
工作流程:
图 导入Python脚本流程
在创建测试用例时,选择测试数据为创建Python脚本类型,即可创建Python测试用例。测试用例脚本编辑器用于新建和编辑测试用例脚本,能够快速添加变量,快速设定测试步骤,以及语法检查。使用此方式进行配置的信息,会在报告中详细列出。
图 创建Python
工作流程:
图 创建Python流程
选中测试对象时,可以查看该*.gc文件的故障列表,并进行故障影响值的设置。故障影响的变量和故障类型无法修改,但对应的影响值可以修改。修改影响值后,该测试对象下所有使用该故障进行仿真的用例,均使用此处设置的故障影响值进行仿真。
图 故障列表与影响值
每一个测试用例都可以进行故障触发时间的设置。触发时间设置支持两种方式:固定数值配置与区间取值配置。
图 设置故障触发时间
随着测试计划的建立和测试环境的搭建完毕,按照测试程序进度安排执行测试,可以通过手动、自动或半手动半自动方式执行,它们各自可以发现不同类型的错误。
GCAir支持全虚拟与半实物仿真。GCAir半实物仿真系统由GCAir实时仿真机、数据总线板卡和数据总线线缆等多个部分组成。半实物仿真 主要优势是能在实验室进行系统测试,对系统环境模拟的比较精确,具有提高系统研制质量、缩短研制周期和节省研制费用的优点。
TestManager的仿真测试环境与在GCAir中的仿真环境一致。TestManager的测试用例运行在实时仿真机上,在单个步长内的测试数据与实时模型同步。
TestManager支持对全局工程级别和测试用例级别的曲线配置。全局曲线配置完成后,对所有测试用例均生效,展示在所有测试用例曲线展示区的上方。用例曲线配置则针对某个特别的用例进行单独配置。曲线配置支持配置别名,别名为空的时候,曲线图里上显示的是变量名。用户还可以设置变量曲线的展示颜色,输出变量同步展示对应的预期数据曲线。
图 配置曲线别名
执行仿真前,选择需要关注的曲线,在仿真结束后可以看到每个工况的曲线以及该工况的期望曲线,这些数据可以进行后续的分析。
仿真结束后根据需要,可以生成测试结果的CSV表格、PDF报告或HTML报告,报告内容包括测试对象、场景、用例的信息,以及测试用例的仿真结果和曲线。
图 报告——首页
报告的首页会显示此次测试的整体情况,例如测试对象:GC工程的名称、测试场景、测试结果、总计:测试的工况数量。
图 报告——测试概述与场景
测试对象概述描述了测试的基本信息,例如测试对象信息、场景总数、用例总数和仿真执行时长信息等。对于每个场景,再细分每个用例的情况,例如测试用例信息、与用例有关的文件信息和仿真执行时长信息等。
图 报告——工况信息
对于每个工况都有对应的报告信息。在测试用例设计——创建Python脚本方式时,进行的自定义配置信息会在报告中有所体现。例如对步骤配置的别名、每个状态对应的表达式以及在通过条件中,是否Pass或Fail。在参数信息中,展示工况对GC工程中每个Parameter的数据配置。
图 Python配置显示在报告中
02
设备自动化测试
TestManager
图 被测对象
图 场景
图 用例
图 导入CSV
图 CSV文件
图 测试进度
图 测试结果
图 测试产生的CSV文件
图 测试报告首页
03
六自由度飞行器末端比例导引压力测试
TestManager
TestManager可以进行复杂工程在多种场景下的压力测试。本示例使用GCAir系统建模工具,将飞行器各部件的仿真模型进行封装,建立了六自由度飞行器的模型库,而后在系统页面中进行了比例导引控制回路仿真系统集成,并将仿真结果经过3DRENDERING接口传递给FlightGear,然后进行仿真,展示了完整的建模仿真流程。
本示例展示了一个能够对飞行器"末段比例导引"追踪机动目标的过程进行分析的六自由度飞行器控制系统仿真工程。该工程中包含了能够参数化配置的机动目标、飞行导引、六自由度飞行体、飞行器计算机以及简化的舵机模型。该示例的目标是在不同初始条件及杀伤半径的情况下,对末段追踪的脱靶量控制效果以及飞行效果概率进行分析评估。
图 模型系统架构图
Python脚本:此脚本对目标法向过载幅值与侧向过载幅值二者传输正弦波信号。
图 Python脚本
图 正弦波信号
图 Python脚本
图 线性信号
04
总结
TestManager
以上两个应用案例可以证明TestManager可以对半实物仿真、全虚拟仿真进行测试,并且支持多种测试场景,每一个测试场景下对应的测试用例,根据用户选择的测试方式,来生成工况,最终生成报告用于后续的数据分析。
世冠科技成立于2003年,是一家专业从事工业软件系统仿真技术开发与应用的国家级高新技术企业,北京市企业科技研究开发机构、专精特新企业。为复杂装备研制单位和工业制造企业,提供可支撑产品设计研发及使用运维、覆盖产品全生命周期的完全自主研发的系统仿真工业软件和数字孪生解决方案,是国产系统仿真软件领域的领军者。