基于XML的协议动态测试工具设计

来源 :软件 | 被引量 : 0次 | 上传用户:xiangzuobuxing
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:在计算机通信技术飞速发展的时代,计算机网络变得越来越重要。网络间实现信息共享和交换,主要是依靠网络协议,因此网络协议是各种网络类设备及系统级软件产品的重要组成部分。协议测试也是产品测试的重点。当前协议测试主要覆盖协议一致性测试,测试方法多采用静态解析的方式进行。这种测试方法存在协议异常分支难以覆盖,测试自动化程度低,且测试方法和测试工具都难以满足通用性,可移植性要求的问题。本文提供一种基于XML的协议动态测试工具设计方法,目的在于解决协议的动态测试自动化需求,该工具可完整覆盖协议一致性测试,协议级别的性能测试,具有测试用例易于维护,自动化程度高的优点,可有效提高测试质量和效率。
  关键词:XML;协议测试;性能测试;通用性;扩展性
  中图分类号:TN39 文献标识码:A DOI:10.3969/j.issn.1003-6970.2021.02.033
  本文著录格式:何舒.基于XML的协议动态测试工具设计[J].软件,2021,42(02):108-111
  Research on Dynamic Protocol Testing Method Based on XML
  HE Shu
  (The 30th Research Institute of China Electronics Technology Group Corporation, Chengdu  Sichuan  610041)
  【Abstract】:With the rapid development of computer communication technology, computer network becomes more and more important. The realization of information sharing and exchange between networks mainly depends on network protocol, so network protocol is an important part of various network devices and system level software products. Protocol testing is also the focus of product testing. At present, protocol testing mainly covers protocol conformance testing, and most of the testing methods are static analysis. This test method has the problems of protocol exception branch, which is difficult to cover, low degree of test automation, and test methods and tools are difficult to meet the requirements of generality and portability. This paper provides a design method of protocol dynamic testing tool based on XML, which aims to solve the requirement of protocol dynamic testing automation. The tool can completely cover protocol conformance testing and protocol level performance testing. It has the advantage of easy maintenance of test cases and high degree of automation, and can effectively improve the quality and efficiency of testing.
  【Key words】:XML;protocol testing;performance testing;scalability
  0引言
  当今时代,各种网络通信设备以及系统级别的大型软件产品通过网络通信协议与外界交互。协议的稳定性是产品稳定的基础,因此协议测试是产品测试的重点之一。当今部分产品由于其本身使用场景的特性导致其通信协议不是常见的通用协议,而是根据产品需要设计的自定义协议。这类产品往往由于种类繁多,版本迭代快,导致协议测试的工作量较大,通过手工测试的方式难以满足测试效率和质量的要求。被测协议的不确定性对协议测试工具也提出了更高的要求,即需要满足通用性和可扩展性的要求。本文在充分了解設备通信协议格式特点的基础上,结合XML文件跨平台适用性及扩展性好的优点提出了基于XML的协议动态测试工具设计方法[1]。
  1协议动态测试概述
  当前协议测试主要包含协议一致性测试,协议级别的性能测试等。其中,协议一致性测试是指,根据协议设计文档的描述,确认协议的设计及实现与文档描述的一致性。测试方法可分为静态测试和动态测试两种。
  (1)静态测试方法:通过在网络上抓包获取协议交互的完整数据包,再根据协议文档的描述手动比对各个协议字段与预期结果是否一致,或通过定义协议模板,调用传统的协议静态解析工具进行自动比对,从而确认协议实现一致性的方法。该方法可以覆盖协议正常分支,但协议异常分支需要手动构造异常数据包来实现。该方法的局限性在于,部分协议分支由于数据构造困难无法覆盖,测试过程大部分依靠手工操作,测试效率低,且测试质量难以保证。   (2)动态测试方法:通过模拟与被测设备进行协议交互的过程,完整覆盖协议的所有正常和异常分支。与静态测试的区别在于,静态测试不需要运行程序,而动态测试是需要工具模拟与被测设备交互的对象,与被测设备进行真实的协议交互,协议交互的数据均与真实数据一致。其优点在于,完整覆盖协议的正常和异常分支,相比静态测试,测试结果更接近真实,更准确可靠,测试覆盖度更高。
  协议级别的性能测试则是指通过模拟与被测设备的真实协议交互过程,对被测设备进行并发测试,性能指标测试,稳定性测试等。
  2协议动态测试工具设计原理
  协议动态测试工具的设计原理是,定义一种XML格式的协议模板描述语言,该语言通过XML文件可以将协议交互过程的数据及操作信息表示出来。测试人员根据协议描述文档以及协议模板编写的语法,编写被测协议模板。工具通过对XML协议模板的解析,获取协议交互的过程信息及默认数据信息,动态组装数据包并发送给被测设备,被测设备按照正常协议流程回复响应包后,工具接收并根据协议模板定义解析响应包,对解析数据进行正确性断言并实时做出符合协议描述的响应(如:继续组装另一个协议数据包并发送),如此循环,直到完成协议交互的全过程[2]。
  3工具架构
  协议动态测试工具的总体架构图如图1所示。外部测试驱动程序模拟真实设备与被测设备或软件进行协议交互。协议数据包通过由测试驱动程序调用协议动态测试工具提供的对外接口完成协议动态组包和静态解析操作,输出协议交互的数据包。其中组包和解析所需的各种数据信息是通过读取各种外部数据,并调用外部函数库进行运算得到的。关于各个组成部分的说明如下:
  3.1协议动态组包工具的核心模块
  (1)动态组包模块:读取协议模板和用例数据,调用外部函数库进行相关运算得到组装的协议数据包。
  (2)解析模块:读取协议模板和用例数据,调用外部函数库进行运算,得到协议数据的实际值与预期值,并对其进行一致性断言。
  (3)报文收发模块:主要包括TCP和UDP两种常见网络协议的发送和接收,后续可根据需要扩展其他类型网络协议。
  (4)外部函数处理:该模块起一个中间件的作用,用于屏蔽外部函数中部分不必要的参数,实现协议模板中定义的函数的动态调用。
  (5)对外接口封装:协议动态测试工具以动态链接库的形式提供一系列简单有效的接口供外部测试驱动程序调用。可根据测试需要选择功能测试自动化框架或性能测试工具(如LoadRunner)作为测试驱动程序。对外接口也可根据实际需要扩展。
  (6)日志报表处理:将工具运行产生的两类日志输出到测试驱动程序或日志文件。其中,运行流程日志通过接口输出给测试驱动程序,由上层程序调用自身的日志模块进行打印输出,协议组包和解析的字段数据值则通过生成XML格式的协议交互数据文件输出给测试人员查看。
  (7)配置信息管理:各种运行时配置信息通过XML格式的配置文件定义,工具通过解析配置文件获取相关配置信息。
  3.2外部输入数据
  (1)测试用例:以Excel文件形式存在。每个用例为Excel中的一行数据,通过工具接口的调用进行协议业务流程的定义,同时指定该条用例的预期结果等。
  (2)协议模板:以XML文件形式存在。协议模板的语法定义参见4.1章节所述。
  (3)配置信息:以XML文件形式存在。包含配置项名-配置项值的键值对。
  (4)预准备数据:部分需要从文件中读取的输入数据。工具会在测试执行初期将其一并读入,减少文件的反复读取,提高执行性能。
  (5)性能测试脚本:需要通过性能测试工具Load
  Runner作为测试驱动程序进行性能测试时,通过Load
  Runner脚本定义协议的业务交互流程,用例仅包含需要修改的协议字段信息。
  3.3测试驱动程序
  (1)功能测试驱动程序:本工具使用自研的功能自动化测试框架作为功能测试驱动程序。也可选择其他测试框架,工具通过动态链接库的方式提供接口给测试驱动程序,测试驱动程序自定义业务流程,调用工具接口进行组包,解析和报文收发,完成协议交互过程。
  (2)性能测试驱动程序:本工具选用通用性能测试工具LoadRunner作为性能测试驱动程序。通过Load
  Runner脚本调用工具接口进行协议流程定义。再通过LoadRunner多线程或多进程运行脚本实现协议级别的性能测试,包括并发测试,压力测试和稳定性测试等。
  3.4外部函数库
  (1)基础函数库:包含通用协议运算所需的基础函数,如:字符串拼接,异或运算,base64编码等,可根据需要不断扩展。
  (2)业务函数库:工具模拟真实设备,有可能涉及部分业务相关的处理或运算,所有这些操作需要定义成业務函数,在协议模板中定义,工具才能正常执行相关操作。该函数库可按不同产品进行管理扩充。
  4关键技术实现
  4.1 XML协议模板设计
  XML协议模板的设计关系到协议流程描述是否能被工具有效识别。因此,协议模板的设计是协议动态测试工具的关键。设计总原则为既能描述各种协议复杂的流程,动作,数据依赖关系,又不能晦涩难懂,冗余。设计的关键点如下[3]:
  (1)一个XML协议模板定义一个完整协议交互的所有数据包字段格式及字段产生方式。
  (2)针对每个数据包,分别对应一套组包模板和解析模板,两个模板的字段名一致,内容定义各不相同,组包模板用于定义数据的产生方式,解析模板用于给出字段的预期值及实际值的获取方式,以便对解析结果断言。
  (3)通过定义不同的XML关键字,描述协议交互过程的各种关键动作或要素。
  (4)单个字段或区域实体,通过定义其不同属性,指明数据产生方式等;常用属性如表1所示。
  (5)定义多个“区域”关键字,用于描述不同的协议交互场景中对数据的不同处理,如表2所示。
  4.2接口设计
  接口设计遵循简单,通用的原则,提供以下接口给外部驱动程序调用,如表3所示。
  5结语
  通过协议动态测试工具提供的接口进行业务流程组装,可以灵活地自定义协议交互过程;通过不同的测试驱动程序调用工具的接口,可以进行功能测试和性能测试等不同类型的协议测试;通过自定义协议模板,可以灵活适配各种被测协议;通过函数库扩展,可进行常用的基础运算以及根据不同业务定制业务处理函数;通过编写用例文件,可高效执行并维护测试用例,提高测试的效率和质量。更多的用法有待扩充,但都需要解决工具与外部程序的接口衔接等问题。
  参考文献
  [1] 葛泽文.基于自定义通信协议的动态测试技术研究[J].数字技术与应用,2019(9):90-92.
  [2] 严军.基于XML的智能设备协议测试方法的研究[J].工业控制计算机,2019(8):55-57.
  [3] 吴建平,尹霞.基于形式化方法的协议测试理论[J].清华大学学报:自然科学版,2001(4):203-208.
其他文献
在我国现代科学技术水平的发展过程中,人们逐渐开始对计算机领域的研究表达出浓厚的兴趣。由于现今社会对于图形图像的描述更加严格和规范化。因此,计算机领域逐渐衍生出计算机图形图像处理技术,使其成为计算机图形学的关键技术。计算机图形图像处理技术应用范围广、可操作性强,因此该技术被广泛应用于多媒体、广播电视台、现代医疗、产业创新技术等多个领域,从而得到了各个行业的关注和支持。
2020年的疫情,让广大的教育者积极思考未来教育的可能.随着国内疫情的好转趋势,各地复学,逐步转入线下,利用互联网+人工智能赋能,实施线上线下混合教学模式是符合当前形势需
网络技术的发展使得互联网成为人们日常生活中必不可少的一部分,不同行业、不同专业积极寻找与互联网相契合的方式来满足社会发展产生的新的需要。新数字媒体技术在环境设计
摘 要:随着互联网的发展,师生们常从网络获取教学相关信息。一种方式是直接访问外部网络获得信息,另一种方式是将信息存储到学校服务器上。访问外部网络会产生通信费,而购买服务器也会产生费用。本文综合考虑两种方式,兼顾成本和师生的需求,得到一个优化的配置方案。  关键词:内网;信息;优化  中图分类号:TP393.18 文献标识码:A DOI:10.3969/j.issn.1003-6970.2021.0
采用传统测量工具在电网规划现场勘察时,存在实时性差、用时长等特点,本文在分析电网工程数字化发展现状基础上,应用移动GIS技术[1],为青岛市供电局在移动端构建电网规划线路数据维护系统,有效提升了青岛市网架数据资产整合工作效率。用户在该系统上可实现信息的数据采集、离线存储、移动查询和智能反馈,辅助开展35kV及以上电网工程数字化电网及可视化应用研究,实现全市数字化电网工程规划成果的集中管理和分类展现
摘 要:大型煤炭企业在智能化、数字化和网络化建设过程中,采用有效的方法手段来保障企业网络安全会给企业带来很大的益处。本文分析了大型煤炭企业的网络系统特点,网络安全状况,探讨网络安全在煤炭企业智能化、数字化和网络化建设过程中的重要性,并介绍了一种有效保护数据和网络资产的网络安全防护系统,用以降低网络平台使用风险同时促进企业更高效发展。  关键词:大型煤炭企业;网络安全;网络安全措施  中图分类号:T
摘 要:建设“新工科”是我国教育事业中为应对“新科技革命”而制定的相应政策,也是我国为推动世界工业技术革命所作出的承诺。本文探究了高校人工智能领域人才培养价值,通过对现阶段高校人工智能专业人才培养现状的分析,结合专业培养要点,提出高校人工智能領域人才培养体系改革方案,深化“新工科”中所倡导的“前沿技术引领性”、“知识体系多样性”、“人才教育创新性”理念,切实提高人工智能领域高端人才应用能力。  关
摘 要:以淮上大道与解放路交叉口为研究对象,针对该交叉口存在的交通问题,在充分调研的基础上,以交通流为控制单元,提出相适应的控制策略,并通过灯组自主优化控制算法设计控制预案后应用实施,最后总结应用效果,并对比分析交叉口优化前后的平均车速及平均延误数据,阐明本文提出的控制策略能够明显提高交叉口通行效率,解决交叉口实际问题。该案例为城市信控交叉口的信号控制优化提供了方法指导和借鉴参考。  关键词:信号
本文主要讨论了柔性降级技术在相控阵天线中的应用。相控阵天线主要包括波束控制器、天线阵列和发射组件(T组件),相控阵天线接收调制后的射频信号,通过T组件的支持,天线阵列
摘 要:服务器不仅是当前信息网络设备的中枢,也是信息系统中软件及数据库应用的主体,各类型的信息系统都依赖于服务器的稳定、可靠地运行。定期对服务器进行维护是非常重要的,不仅可以减少故障的发生,还能更好使用和延长服务器的使用寿命。本文从日常软硬件维护和安全维护两个方面来探讨服务器运行维护的方法。  关键词:服务器;运行维护;安全防范  中图分类号:TP368.5 文献标识码:A DOI:10.3969