一种电力设备物联网自动化协议测试系统及其测试方法与流程

未命名 08-07 阅读:99 评论:0


1.本发明涉及电力物联网领域,具体为一种电力设备物联网自动化协议测试系统及测试方法。


背景技术:

2.电力设备物联网应用于输电场景与变电场景,是智能电网向输变电设备智能化的延伸与发展,将实现输变电设备信息体系、监测体系、评估体系和管理体系的统一与规范。电力设备物联网的建设涉及多方协作,层次架构包括感知层、网络层、平台层和应用层,涵盖了云平台厂家、通信设备厂家、传感设备厂家等。研发物联网通信设备须遵照《无线组网协议》与《微功率协议》,解决多厂家设备互联互通问题是网络建设与协议标准推进的重点与难点。在协议测试过程中,常出现厂商研制的通信设备间可以互通但与协议标准设备通信失败的情况。为了保证通信网络正常运转,避免物联网设备上线后因组网互通问题造成经济损失,物联网设备必须通过协议标准方主导的协议测试才可以获取入网资质。
3.电力设备物联网项目早期,协议一致性测试通过人工方式进行,由协议标准方的工程师制定测试用例,被测厂家的工程师根据用例操作被测实现以进行测试。但是这样的测试存在以下缺陷:(1)在人工协议测试过程中,测试人员通过观察空口报文日志来判断被测实现的协议一致性,该测试方法缺乏科学性和有效性,导致人工测试出现误判的几率远高于自动化测试,明显降低了测试结果的有效性。
4.(2)受限于人工测试的条件,难以进行多样化、全方位的协议测试,且对被测实现的性能评估不足。
5.(3)人工测试需要测试人员自行根据测试用例操作被测实现,再人工观察数据结果进行判决,存在效率低、成本高等弊端,难以批量完成设备测试工作。


技术实现要素:

6.本发明的目的在于克服上述技术的缺点,提供一种电力设备物联网自动化协议测试系统及其测试方法,以全自动化测试系统来替代人工协议一致性测试,能够改善测试结果的准确性,提升测试效率,降低测试成本。
7.为实现上述目的,本发明提供如下技术方案:一种电力设备物联网自动化协议测试系统,包括:测试用例层,用于获得操作指令,根据操作指令控制和管理通信硬件模块,并记录和管理测试过程中的日志和测试结果协议解析层,用于实现网络层和 mac 层协议栈,将从通信硬件模块接收到的原始数据进行解析,并将解析后的数据传递给测试用例层进行处理,同时将测试用例层生成的数据进行封装和发送。
8.优选地,还包括:人机交互层,用于接收用户的操作指令以及展示测试用例层反馈
的测试结果。
9.优选地,所述系统管理层,用于实时接收人机交互层的操作指令,并将操作指令发送至测试用例层,,同时实时监控测试用例层的执行过程,将测试用例层的测试进度与测试结果信息定时上传至人机交互层展示,在测试结束时将测试用例层生成的测试报告上传,且提供保存与下载功能。
10.一种测试方法,电力设备物联网自动化协议测试系统的具体测试步骤包括:s1:根据测试需求对测试系统进行测试参数配置;s2:测试用例层执行协议测试,在测试过程中捕捉程序错误,检查测试参数的合法性,判断被测实现的行为或响应是否符合协议规范标准,生成相对应的协议规范标准的结果用于对比判断,得到测试结果。
11.优选地,在步骤s1的测试参数配置之前进行开机自检具体步骤如下:s1-1:各通信硬件模块组成的局域网络进行网络检测,系统管理层对各通信硬件模块的各硬件模块发送检测指令,收到检测指令的通信硬件模块对系统管理层发送的检测指令进行应答,系统管理层通过检测各通信硬件模块是否完成应答来判断网络是否正常;s1-2:完成网络检测后进入射频检测阶段,系统管理层通过检测各通信硬件模块传回的报文与预设内容是否相符来判断各通信硬件模块的网络功能是否正常;s1-3:若在自检过程中检测到存在异常,则在人机交互层做出相应提示,并提前终止测试,否则即完成自检,进行测试参数配置。
12.优选地,所述s1中测试参数配置的具体步骤如下:s1-4:在4种被测实现类型中选择一种作为本次测试的对象;s1-5:根据选择的被测实现类型,在人机交互层显示该被测实现类型对应的测试集,在对应的测试集中选取本次的测试用例组成得到测试用例集合;s1-6:系统管理层根据测试用例集合选择本次测试所涉及的通信硬件模块,并配置被测实现的通信参数,完成测试系统的初始化。
13.优选地,所述s2中测试用例执行的具体步骤如下:s2-1:进行测试用例类实例化,测试用例采用python标准库的unittest自动化框架实现,在该框架中使用unittest.testcase类作为所有测试用例类的基类,测试用例类对其进行继承,在测试用例类中重写setupclass()、teardownclass()、setup()与teardown()这四个函数以对基类中的函数进行覆盖,完成测试用例类的实例化,其中,setupclass()和teardownclass()函数分别是对整体测试环境的构造与析构,setup()和teardown()函数分别是对单个测试用例环境的构造与析构;s2-2:在测试用例执行前,创建测试用例套件unittest.testsuite()实例,并将选择的测试用例集合通过套件实例的类方法addtest()添加到测试套件unittest.testsuite()实例中;s2-3:创建unittest.texttestrunner实例并调用run()方法运行测试用例集合进行测试,系统管理层执行测试用例作为输入来测试被测实现,被测实现会产生相应行为或响应,通过调用asserttrue()、assertequal()、assertisinstance()和assertnone()函数对被测实现产生的行为或响应进行观察,通过与协议规范标准进行比较,作出判决得到测试结果,在测试过程中将大量空口日志数据交由协议解析层处理并检测解析结果。
14.优选地,步骤s2完成后,根据测试结果生成测试报告并进行展示,其中,测试报告包括用例测试报告和最终测试报告,每个完成的测试用例生成一份用例测试报告,所述用例测试报告包含测试用例执行流程、关键数据帧、数据日志、正确报文示例信息;所述最终测试报告包含本次测试的综合信息与完成情况,包括测试起止时间、测试用例成功数与失败数和各测试用例的测试结果。
15.有益效果:本发明公开了一种电力设备物联网自动化协议测试系统及其测试方法,与现有技术相比,具有如下优点:(1)本发明的测试系统以架构分层与模块化为基本思想,采用python标准库的unittest自动化框架,可以在测试过程中捕捉程序错误,检查参数的合法性。判断是否符合协议规范标准,结合unittest提供的日志功能,在测试用例执行失败时记录异常,实现测试系统进行全自动化协议一致性测试。该测试系统兼顾了系统的可扩展性和可重用性,不需要人员观察与判决,直接得到最终测试报告,相较于人工测试,更具有科学性,大大降低了误判几率,能够改善测试结果准确性,提高测试结果的有效性。
16.(2)本发明的测试系统可以根据用户选择的测试用例集合,按照预设的测试步骤,可以批量化自动地完成一致性检测,得到测试结果报告,从而实现批量化测试,有利于提升测试效率,从而降低测试成本。
附图说明
17.图1为实施例1的测试系统架构示意图;图2为实施例1的测试方法流程图。
具体实施方式
18.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.实施例1在一个实施例中,提供了一种电力设备物联网自动化协议测试系统,测试系统架构如图1所示,下面对各层级进行详细说明。
20.第一层:人机交互层,该层为系统与用户的交互界面,即系统对用户的可视部分。测试系统的主控板部署windows操作系统,外接显示器、键鼠等输入输出设备。针对系统的用户功能开发前端界面,该前端界面分别为测试选项配置、测试进度条、测试报告保存与上传、测试用例选择、测试日志与测试报告提供操作接口,人机交互层向系统管理层发送操作指令和测试流程。
21.第二层:系统管理层,该层提供后台功能与前端界面交互的接口,将前端界面所提供的测试流程控制与管理接口落实到系统管理层来实现具体功能。该层实时接收前端界面传回的操作指令和测试流程,并控制测试用例层做出对应的行为;对测试用例层正在执行的过程进行实时监控,并将测试执行进度与测试用例结果等信息定时上传至前端展示;在测试结束时将下层生成的测试报告上传,且提供保存与下载功能。
22.第三层:测试用例层,该层采用python标准库的unittest自动化框架实现自动化框架功能,提供编写用例、组织用例、执行用例、输出报告、日志等自动化框架的功能,完成测试环境的构造与析构、测试用例的组织与执行、日志记录的工作。测试用例层搭载了硬件控制模块、文件管理模块和日志管理模块,其中,硬件控制模块为系统管理层控制和管理通信硬件模块提供接口,是系统管理层与通信硬件模块(模拟接入节点、模拟汇聚节点)交互的中间层。测试用例层根据接收到的操作指令和测试流程,使用硬件控制模块控制和管理通信硬件模块,并通过文件管理模块和日志管理模块记录和管理测试过程中的日志和测试结果,同时,测试用例层将测试结果反馈至系统管理层,系统管理层将测试结果进行处理后将其展示在人机交互层上,供用户查看。
23.第四层:协议解析层,该层实现网络层与 mac 层协议栈,对通信硬件模块的驱动程序与终端模拟系统提供协议数据的处理接口。终端模拟系统,通过调用协议解析层的接口来完成mac 层数据帧的解析。协议解析层将从通信硬件模块接收到的原始数据进行解析,并将解析后的数据传递给测试用例层进行处理,同时将测试用例层生成的数据进行封装和发送。在数据封装和发送的过程中,协议解析层会根据不同数据的传输要求,将数据发送至接入节点、汇聚节点或其他传感终端。目的节点的选择取决于该数据所需发送至的位置。
24.本实施例中,通信硬件模块包括模拟接入节点、模拟汇聚节点、模拟低功耗传感终端、模拟微功率传感终端与全接收模块,各通信硬件模块之间通过网线相连,组成一个局域网。全接收模块、模拟微功率传感终端控制程序与模拟低功耗传感终端协同模拟接入节点与模拟汇聚节点提供协议测试所需的底层服务。其中,全接收模块实现物理层功能,可针对某一频点进行空口数据的接收与展示,为协议测试过程提供日志数据。终端模拟系统会涉及到mac层数据帧处理的需求,即可调用协议解析层的接口完成数据帧的解析。本发明中,协议解析层实现了网络层和mac层协议栈,为通信硬件模块与终端模拟系统等模块提供了协议数据的处理接口,从而这些协议栈不需要在单个模块上实现,降低了单个模块的复杂度。例如终端模拟系统会涉及到mac层数据帧处理的需求,即可调用协议解析层的接口完成数据帧的解析。
25.本实施例中,具体的协议测试是在测试用例层执行的,在测试用例层采用python标准库的unittest自动化框架,unittest提供的断言函数可以在测试过程中捕捉程序错误,检查参数的合法性,判断被测实现的行为或响应是否符合协议规范标准。不同测试用例所得到的响应或日志数据是不同的,均有相对应的协议规范标准的结果用于对比判决,如正确报文示例。
26.本实施例提出的电力设备物联网自动化协议测试系统的测试工作流程如图2所示,下面对各步骤进行详细说明。
27.步骤1:开机系统自检后进行测试参数配置,根据测试需求对测试系统进行测试参数配置。
28.步骤1-1:各通信硬件模块组成的局域网络进行网络检测,系统管理层对各通信硬件模块的各硬件模块发送检测指令,收到检测指令的通信硬件模块对系统管理层发送的检测指令进行应答,系统管理层通过检测各通信硬件模块是否完成应答来判断网络是否正常;
步骤1-2:完成网络检测后进入射频检测阶段,除全接收模块以外的各通信硬件模块(模拟接入节点、模拟汇聚节点、模拟低功耗传感终端、模拟微功率传感终端)收到射频检测指令后,通过预设程序控制射频模块(除全接受模块以外,各通信硬件模块都具有射频模块)发送报文,全接收模块通过更改频点接收报文并传回系统管理层,系统管理层通过检测报文与预设内容是否相符来判断各通信硬件模块的网络功能是否正常;步骤1-3:若在自检过程中检测到某模块存在异常,则在人机交互层做出相应提示,并提前终止测试,否则即完成自检,进行测试参数配置。
29.步骤1-4:在4种被测实现类型中选择一种作为本次测试的对象;步骤1-5:根据选择的被测实现类型,在人机交互层的前端界面显示该被测实现类型对应的测试集,在对应的测试集中选取本次的测试用例组成得到测试用例集合;步骤1-6:系统管理层根据测试用例集合选择本次测试所涉及的通信硬件模块,并配置被测实现的通信参数,完成测试系统的初始化。其中,通信参数以低功耗传感终端作为被测实现为例,用户须在前端填写被测实现的gid、通信模组频点与其他物理层参数、传感数据类型、传感器业务周期等参数,前端将用户所填写的参数传送至系统管理层。至此,测试系统的初始化过程结束。
30.步骤2:测试用例层执行协议测试,在测试过程中捕捉程序错误,检查参数的合法性,判断被测实现的行为或响应是否符合协议规范标准,生成相对应的协议规范标准的结果用于对比判断,得到测试结果;本实施例中,协议一致性测试是通过观察被测实现在不同的环境和条件下的反应行为来验证其内部协议实现与相应的协议标准是否一致。协议一致性测试只关心被测实现呈现于外部的性能,而不关心被测实现具体的内部结构或内部特性,是一种黑盒测试。
31.步骤2-1:进行测试用例类实例化,测试用例采用python标准库的unittest自动化框架实现。在该框架中使用unittest.testcase类作为所有测试用例类的基类,测试用例类对其进行继承,在测试用例类中重写setupclass()、teardownclass()、setup()与teardown()这四个函数以对基类中的函数进行覆盖,完成测试用例类的实例化,其中,setupclass()和teardownclass()函数分别是对整体测试环境的构造与析构,setup()和teardown()函数分别是对单个测试用例环境的构造与析构;步骤2-2:调用setupclass()函数完成整体测试环境的构造,初始化网口、串口、日志模块和文件模块;步骤2-3:调用setup()函数完成单个测试用例环境的构造,根据测试用例需求配置通信硬件模块;步骤2-4:创建测试用例套件unittest.testsuite()实例,并将选择的测试用例通过套件实例的类方法addtest()添加到测试套件unittest.testsuite()实例中;步骤2-5:创建unittest.texttestrunner实例并调用run()方法运行测试用例集合,系统管理层执行测试用例作为输入来测试被测实现,被测实现会产生相应行为或响应,并同时通过人机交互层在前端显示测试进度;步骤2-6:对用例结果进行分析,在测试过程中将大量空口日志数据交由协议解析层处理并检测解析结果,通过调用asserttrue()、assertequal()、assertisinstance()和assertnone()函数来检查参数的合法性,判断用例结果是否符合协议规范标准;
步骤2-7:调用teardown()函数析构该测试用例环境,释放相关通信硬件模块配置空间;步骤2-8:判断是否还存在测试用例待执行,若存在,重复步骤步骤2-3至步骤2-7;步骤2-9:调用teardownclass()函数析构整体测试环境,释放相应网口、串口、日志模块、文件模块配置空间。
32.步骤3:根据测试结果生成测试报告并进行展示,测试报告包括用例测试报告和最终测试报告。最终测试报告包含本次测试的综合信息与完成情况,可导出为表格文件,内容包括测试起止时间、测试用例成功数与失败数和各测试用例的测试结果等。每个完成的测试用例生成一份用例测试报告,用例测试报告包含测试用例执行流程、关键数据帧、数据日志、正确报文示例等信息。
33.本发明中,低功耗传感终端通常是指功耗相对较低的传感器终端,采用低功耗无线通信技术(例如lora、nb-iot、sigfox等)与网关通信。这类传感器通常应用于电力设备较为集中、通信距离相对较短的场景,例如电力配电房、变电站等场所。微功率传感终端是指功耗非常低的传感器终端,通常采用无线射频技术(如rfid、nfc等)或超低功耗的zigbee等协议与网关通信。与低功耗传感终端相比,微功率传感终端的功耗更低、通信距离更短,但其可以实现更小的尺寸和更低的成本。在电力设备物联网中,微功率传感终端可以用于监测电力设备的温度、湿度、电压、电流等参数,以及实现电力设备的智能识别和定位等功能。
34.功耗的界定标准因技术发展和行业需求而不同,一般来说,低功耗传感终端和微功率传感终端的功耗范围如下:低功耗传感终端:功耗在几十微瓦到几毫瓦之间,通常采用低功耗无线通信技术,如lora、nb-iot、sigfox等协议。
35.微功率传感终端:功耗在几微瓦到几十微瓦之间,通常采用无线射频技术,如rfid、nfc等协议,或超低功耗的zigbee等协议。
36.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

技术特征:
1.一种电力设备物联网自动化协议测试系统,其特征在于,包括:测试用例层,用于获得操作指令,根据操作指令控制和管理通信硬件模块,并记录和管理测试过程中的日志和测试结果;协议解析层,用于实现网络层和 mac 层协议栈,将从通信硬件模块接收到的原始数据进行解析,并将解析后的数据传递给测试用例层进行处理,同时将测试用例层生成的数据进行封装和发送。2.根据权利要求1所述的电力设备物联网自动化协议测试系统,其特征在于,还包括:人机交互层,用于接收用户的操作指令以及展示测试用例层反馈的测试结果。3.根据权利要求1所述的电力设备物联网自动化协议测试系统,其特征在于,所述系统管理层,用于实时接收人机交互层的操作指令,并将操作指令发送至测试用例层,同时实时监控测试用例层的执行过程,将测试用例层的测试进度与测试结果信息定时上传至人机交互层展示,在测试结束时将测试用例层生成的测试报告上传,且提供保存与下载功能。4.一种测试方法,其特征在于,电力设备物联网自动化协议测试系统的具体测试步骤包括:s1:根据测试需求对测试系统进行测试参数配置;s2:测试用例层执行协议测试,在测试过程中捕捉程序错误,检查测试参数的合法性,判断被测实现的行为或响应是否符合协议规范标准,生成相对应的协议规范标准的结果用于对比判断,得到测试结果。5.根据权利要求4所述的测试方法,其特征在于,在步骤s1的测试参数配置之前进行开机自检具体步骤如下:s1-1:各通信硬件模块组成的局域网络进行网络检测,系统管理层对各通信硬件模块的各硬件模块发送检测指令,收到检测指令的通信硬件模块对系统管理层发送的检测指令进行应答,系统管理层通过检测各通信硬件模块是否完成应答来判断网络是否正常;s1-2:完成网络检测后进入射频检测阶段,系统管理层通过检测各通信硬件模块传回的报文与预设内容是否相符来判断各通信硬件模块的网络功能是否正常;s1-3:若在自检过程中检测到存在异常,则在人机交互层做出相应提示,并提前终止测试,否则即完成自检,进行测试参数配置。6.根据权利要求4所述的测试方法,其特征在于,所述s1中测试参数配置的具体步骤如下:s1-4:在4种被测实现类型中选择一种作为本次测试的对象;s1-5:根据选择的被测实现类型,在人机交互层显示该被测实现类型对应的测试集,在对应的测试集中选取本次的测试用例组成得到测试用例集合;s1-6:系统管理层根据测试用例集合选择本次测试所涉及的通信硬件模块,并配置被测实现的通信参数,完成测试系统的初始化。7.根据权利要求4所述的测试方法,其特征在于,所述s2中测试用例执行的具体步骤如下:s2-1:进行测试用例类实例化,测试用例采用python标准库的unittest自动化框架实现,在该框架中使用unittest.testcase类作为所有测试用例类的基类,测试用例类对其进行继承,在测试用例类中重写setupclass()、teardownclass()、setup()与teardown()这
四个函数以对基类中的函数进行覆盖,完成测试用例类的实例化,其中,setupclass()和teardownclass()函数分别是对整体测试环境的构造与析构,setup()和teardown()函数分别是对单个测试用例环境的构造与析构;s2-2:在测试用例执行前,创建测试用例套件unittest.testsuite()实例,并将选择的测试用例集合通过套件实例的类方法addtest()添加到测试套件unittest.testsuite()实例中;s2-3:创建unittest.texttestrunner实例并调用run()方法运行测试用例集合进行测试,系统管理层执行测试用例作为输入来测试被测实现,被测实现会产生相应行为或响应,通过调用asserttrue()、assertequal()、assertisinstance()和assertnone()函数对被测实现产生的行为或响应进行观察,通过与协议规范标准进行比较,作出判决得到测试结果,在测试过程中将大量空口日志数据交由协议解析层处理并检测解析结果。8.根据权利要求4所述的测试方法,其特征在于,步骤s2完成后,根据测试结果生成测试报告并进行展示,其中,测试报告包括用例测试报告和最终测试报告,每个完成的测试用例生成一份用例测试报告,所述用例测试报告包含测试用例执行流程、关键数据帧、数据日志、正确报文示例信息;所述最终测试报告包含本次测试的综合信息与完成情况,包括测试起止时间、测试用例成功数与失败数和各测试用例的测试结果。

技术总结
本发明公开了一种电力设备物联网自动化协议测试系统及其测试方法,包括:根据操作指令控制和管理通信硬件模块,并记录和管理测试过程中的日志和测试结果;协议解析层,用于实现网络层和MAC层协议栈,将从通信硬件模块接收到的原始数据进行解析,并将解析后的数据传递给测试用例层进行处理,同时将测试用例层生成的数据进行封装和发送。本发明以全自动化测试系统来替代人工协议一致性测试,能够改善测试结果的准确性,提升测试效率,降低测试成本。降低测试成本。降低测试成本。


技术研发人员:朱雪琼 胡成博 路永玲 杨景刚 孙蓉 黄强 陈杰 王真 贾骏 刘子全 薛海 刘征宇 张国江 姚楠
受保护的技术使用者:国家电网有限公司 国网江苏省电力有限公司 江苏省电力试验研究院有限公司
技术研发日:2023.05.23
技术公布日:2023/8/6
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐