好文档 - 专业文书写作范文服务资料分享网站

9 RobotFramework自动化框架在集散控制系统测试中的应用 - 201407 修改版(添加专项名称)

天下 分享 时间: 加入收藏 我要投稿 点赞

RobotFramework自动化框架在集散控制系统测试中的应用

李波波、占志良

(浙江中控技术股份有限公司,浙江 杭州 310053)

摘 要:提出了应用RobotFramework自动化测试框架进行集散控制系统嵌入式软件自动化测试的方法。

本文首先分析了控制系统产品嵌入式软件测试的特点,引进基于Python设计的RobotFramework自动化测试框架,探讨如何编写资源库进行控制系统产品嵌入式软件的自动化测试。最后介绍了如何通过该平台进行控制系统报警模块长期运行稳定性自动化测试,结果表明自动化测试的可行性。

关键词:RobotFramework;Python;自动化测试框架

The Application of RobotFramework in the Distributed

Control System Test

LI Bobo、Zhan Zhiliang

(Zhejiang Supcon Technology Co. Ltd., Hangzhou, 310053, China)

Abstract: This paper proposed a method of using RobotFramework to test the the real-time embedded software of Distributed Control System.First,this paper analysis the characteristics of embedded software testing of the Distributed Control System products,then it introduce the structure and advantages of RobotFramework which is based on Python ,at the same time it explores how to use this framework for automated testing of embedded software of control system products. Finally, the verification example of the stability test of the alarm modle shows the feasibility of the test automation framework.

Key words: RobotFramework;Python;Automatic testing framework

1. 引言

当今社会,集散控制系统在工业化领域得到了广泛应用,现代社会经济发展已经离不开集散控制系统,由此对系统安全稳定可靠的运行提出了很高要求。集散控制系统本质上是由一系列软件和硬件通过严密设计组合而成的嵌入式实时系统,其设计质量好坏直接影响到控制系统最终的安全稳定。测试是保证集散控制系统设计质量的重要手段,传统测试以黑盒测试为主要技术手段,靠测试工程师手动完成测试,测试用例和方法对于需要重复测试的场合无可复用性,测试效率低下,测试测试覆盖面不足。

本文针对集散控制系统传统测试方法进行分析,针对其效率低下、测试覆盖率不足的问题进行改进,探索集散控制系统嵌入式软件测试用例自动化实施方法,给出基于关键字驱动

基金项目:国家863计划项目(2012AA041105)资助

的RobotFramework嵌入式实时软件自动化测试框架。

2. 集散控制系统测试技术现状分析

下图2-1是集散控制系统的典型架构框图。控制器处于系统核心位置,通过以太网、本地总线、MODBUS-RTU、MODBUS-TCP、Profibus-DP、FF等多种通信协议,和系统其他部件、现场设备仪表等完成数据交互,实现自动控制功能。因此集散控制系统嵌入式软件的测试,大容量信号处理、各种通信协议一致性验证、设备容量、设备地址范围覆盖等都必须考虑,使用传统手工测试方法,存在以下特点:

1、控制系统核心一般具有比较强大的位号处理功能,测试人员没有办法搭建可以满足大容量的测试环境,只能选择部分位号针对性开展测试,测试不够全面;

2、控制系统版本改动后,测试团队会因技术手段限制,有针对性对改动点进行测试,一些常规功能往往会略过,测试不够充分;

3、控制系统设计有强大的网络通讯功能,支持UDP、MODBUS-RTU、MODBUS-TCP等多种常见工业网络通信协议,传统测试中会因为缺少实际通讯对象,只能对这些功能进行模拟验证,和产品实际应用存在较大差距;

可见,控制系统的测试迫切需要一种高效测试工具,能够配合系统开展大规模容量测试,能够自动化完成一些基本功能确认测试,能够模拟各种通信协议代替工业控制对象进行仿真测试。自动化测试框架是一种有效的手段。

图 2-1 集散控制系统典型架构

3. 集散控制系统嵌入式软件自动化测试框架

3.1. 自动化测试框架

在自动化测试被引入的过程中,测试框架设计给出了如下必须遵守的指导原则: (1)测试自动化是软件测试流程建立的完整过程,不应随项目的结束而结束;

(2))测试框架应该是脱离用例设计过程的实体,不会因为所设计测试用例的不同而更改; (3)测试框架与被测对象无关;

(4)测试框架应是易于扩展、维护和延续; (5)测试框架可以支持各种脚本语言;

(6)测试框架本身的设计可能是复杂的,但应以测试便利性为目标。

目前常用的自动化测试框架有模块化测试框架、数据驱动测试框架以及关键字驱动测试框架等,前两种框架在软件自动化测试领域有广泛的应用。关键字驱动测试框架属于数据驱动测试框架的逻辑扩展,所谓关键字驱动是指使用关键字驱动脚本技术,实现了测试逻辑与脚本的分离、数据与脚本的分离,大大提高了测试脚本的可重用性,简化了测试逻辑,非常适合工业控制系统嵌入式实时系统的测试。

3.2. RobotFramework自动化框架

RobotFramework自动化框架是由Nokia Siemens Networks提出的一种面向通讯类产品嵌入式软件测试的开源工具平台,基于Python语言实现,属关键字驱动测试框架,框架应用模块组成如下3-1所示。

图 3-1 RobotFramework自动化框架结构示意图

1、测试工程师通过RIDE软件(RobotFramework自动化框架提供)完成Testcase的编写,基于关键字驱动设计,使用方便灵活,支持html,.htm,.tsv, .txt ,.rst 等格式。测试过程中可生成操作日志,测试完成后生成测试报告。同时,RIDE软件支持通过标签TAGS进行测试用例的管理和运行调度。

2、RobotFramework负责解析测试用例,并调用系统基本服务,调用Test Library函数,完成测试过程中的数据交互。向下,完成测试用例的控制逻辑转为对测试对象的测试实施。对上,根据测试对象的测试结果,生成HTML格式的测试报告。

3、Test Library由接口函数和通讯协议实现两部分组成,接口函数提供了测试用例调用的函数名和出入参数等,通讯协议部分真正完成了测试服务器和被测试控制系统之间的逻辑、物理接口通讯。

由于RobotFramework自动化框架的驱动函数基于Python设计,而Python作为一种广泛应用的脚本语言,在工业控制领域,有丰富的驱动库函数支持。工业控制领域常见的MODBUS-RTU、MODBUS-TCP等通讯协议,都有成熟的驱动函数。Python支持C语言,因此以太网通讯等通讯协议,只需将产品设计中的网络通讯函数稍加修改即可转换为驱动函数供RobotFramework自动化框架使用。对于一些特殊功能的测试,用户可以根据产品需要自主开发测试驱动函数开展测试。

使用RobotFramework自动化框架进行集散控制系统嵌入式软件自动化测试,将测试用例设计和驱动函数设计分开进行,测试工程师可以将更多精力用在如何设计用例。通用功能的测试驱动函数,Python社区有成熟的驱动函数可用,专项功能驱动函数可以交由开发人员设计,避开了测试工程师技术上的劣势。下图3-2是应用该平台开展控制系统软件自动化测试的框图,随着测试驱动函数库的不断丰富,自动化测试覆盖率将进一步提高。

图 3-2 RobotFramework自动化框架在集散控制系统测试中的应用

3.3. 测试应用举例

以浙江中控技术股份有限公司生产的ECS-700集散控制系统为例,介绍使用RobotFramework自动化框架对该控制系统报警模块长期运行稳定性进行自动化测试的方法。测试工程师根据报警模块设计机制测试用例,该模块具备MODBUS-TCP通讯接口,自动化框架解析测试用例,通过MODBUS-TCP驱动函数对待测模块进行自动化操作,并根据测试结果生成测试报告。

ECS-700控制系统报警模块工作正常需要满足两个必要条件,一个是可以正确的开启(或关闭)温度报警状态,另一个是可以正确的开启(或关闭)风扇开启状态,测试用例流程分3部分,首先设置4个参数:

1、设置机柜温度超限报警限值TemLimitSet; 2、设置机柜内外温差TemSubSet; 3、设置风扇开启限值 FanStartSet; 4、设置风扇开启/关闭死区FanSubSet; 再读取3个参数: 1、当前温度NowTem; 2、温度报警状态TemState 3、风扇开启状态FanState,

查看是温度报警状态和风扇开启状态是否正确,具体流程图下3-3所示:

9 RobotFramework自动化框架在集散控制系统测试中的应用 - 201407 修改版(添加专项名称)

RobotFramework自动化框架在集散控制系统测试中的应用李波波、占志良(浙江中控技术股份有限公司,浙江杭州310053)摘要:提出了应用RobotFramework自动化测试框架进行集散控制系统嵌入式软件自动化测试的方法。本文首先分析了控制系统产品嵌入式软件测试的特点,引进基于Python设计的Rob
推荐度:
点击下载文档文档为doc格式
5aqcv1jzub553962zwom
领取福利

微信扫码领取福利

微信扫码分享