CN108399121B - 一种基于脚本的测试方法和装置 - Google Patents
一种基于脚本的测试方法和装置 Download PDFInfo
- Publication number
- CN108399121B CN108399121B CN201710067139.1A CN201710067139A CN108399121B CN 108399121 B CN108399121 B CN 108399121B CN 201710067139 A CN201710067139 A CN 201710067139A CN 108399121 B CN108399121 B CN 108399121B
- Authority
- CN
- China
- Prior art keywords
- test
- single board
- mode
- tested
- script
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Monitoring And Testing Of Exchanges (AREA)
Abstract
本发明实施例提供的一种基于脚本的测试方法和装置,通过获取至少一个脚本;根据脚本为每个被测单板创建对应的测试链表,每个被测单板的测试链表的个数等于脚本的个数;每个测试链表分别用于根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试;执行所有的测试链表;采用上述方案,根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试,可以选择性的测试重点测试项,可以安排测试项测试的先后顺序,可以控制每个测试项总的测试时长、测试循环次数,节省了人力物力成本,提高了生产测试效率。
Description
技术领域
本发明涉及测试领域,尤其涉及一种基于脚本的测试方法和装置。
背景技术
生产测试是设备生产的一个重要环节,该类测试主要使用专用的测试设备对待测设备或模块进行批量、自动化的测试,主要测试内部链接接口、设备信号、器件基本测试、业务测试、器件的高负荷高温环境测试。生产测试的特点是应力大、性能重点、测试时间长。生产测试需要满足以下基本要求:(1)待测设备处于运行工作状态;(2)能够自动运行测试软件,且重复测试待测设备的各项功能;(3)能够自动记录输出故障记录和告警,并根据需要提供测试报告。
随着通信技术的高速发展,路由器设备高度现代化,对生产测试提出了更高的要求。但是目前,在对设备进行生产测试时,所有测试项都是采用统一测试的模式,即批量的生产测试都是多个机框同时拷机,拷机的测试用例全部一起,没有重点,全部拷机时间长,不能随便停止,不然就重新开始;对于一些重点的测试,由于总的测试时间的限制,测试的时间设置不够,达不到测试应力的要求,测试的时候没有区分重点与次要,测试不够灵活。
针对上述问题,提出一种灵活的对设备进行测试的方法和装置,是本领域技术人员亟待解决的技术问题。
发明内容
本发明实施例主要解决的技术问题是,提供一种基于脚本的测试方法和装置,解决现有技术中,在对设备进行生产测试时,所有测试项都是采用统一测试的模式,测试不够灵活的问题。
为解决上述技术问题,本发明实施例提供一种基于脚本的测试方法,包括:
获取至少一个脚本;
根据脚本为每个被测单板创建对应的测试链表,每个被测单板的测试链表的个数等于脚本的个数;每个测试链表分别用于根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试;
执行所有的测试链表。
为解决上述技术问题,本发明实施例提供一种基于脚本的测试装置,包括:
获取模块,用于获取至少一个脚本;
创建模块,用于根据脚本为每个被测单板创建对应的测试链表,每个被测单板的测试链表的个数等于脚本的个数;每个测试链表分别用于根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试;
执行模块,用于执行所有的测试链表。
为解决上述技术问题,本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行前述的基于脚本的测试方法。
本发明的有益效果是:
根据本发明实施例提供的基于脚本的测试方法和装置,通过获取至少一个脚本;根据脚本为每个被测单板创建对应的测试链表,每个被测单板的测试链表的个数等于脚本的个数;每个测试链表分别用于根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试;执行所有的测试链表;采用上述方案,根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试,可以选择性的测试重点测试项,可以安排测试项测试的先后顺序,可以控制每个测试项总的测试时长、测试循环次数,节省了人力物力成本,提高了生产测试效率。
附图说明
图1为本发明实施例一提供的一种基于脚本的测试方法的流程图;
图2为本发明实施例一、二提供的一种脚本的示意图;
图3为本发明实施例一、二提供的一种机框环境的示意图;
图4为本发明实施例一、二提供的一种机框背板整体架构的示意图;
图5为本发明实施例二提供的一种基于脚本的测试装置的示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。
实施例一
本实施例提供一种基于脚本的测试方法,请参见图1,包括以下步骤:
S101:获取至少一个脚本;
首先按测试目的,来编写包含时间模式或循环模式的脚本。其中,时间模式包括:设定总测试时长,所有的测试项循环测试,当实际测试时长达到总测试时长,则停止测试。循环模式包括:所有的测试项顺序执行,然后按照设定的循环次数再循环。在进行测试时,可以配置多个脚本来满足测试,多个脚本可以均为包含时间模式的脚本,或者多个脚本可以均为包含循环模式的脚本,或者多个脚本中可以是一部分为包含时间模式的脚本,剩余部分为包含循环模式的脚本。
S102:根据脚本为每个被测单板创建对应的测试链表,每个被测单板的测试链表的个数等于脚本的个数;每个测试链表分别用于根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试。
例如脚本的个数为3,其中,脚本A为包含循环模式的脚本,脚本B为包含循环模式的脚本,脚本C为包含时间模式的脚本;被测单板的个数为3,分别将被测单板记为D、E、F;在获取到脚本A、脚本B、脚本C后,根据获取到的脚本为每个被测单板创建对应的测试链表,被测单板D有3个测试链表,包括脚本A对应的测试链表、脚本B对应的测试链表、脚本C对应的测试链表,其中,脚本A对应的测试链表为按照循环模式进行测试,脚本B对应的测试链表为按照循环模式进行测试,脚本C对应的测试链表为按照时间模式进行测试;
被测单板E有3个测试链表,包括脚本A对应的测试链表、脚本B对应的测试链表、脚本C对应的测试链表,其中,脚本A对应的测试链表为按照循环模式进行测试,脚本B对应的测试链表为按照循环模式进行测试,脚本C对应的测试链表为按照时间模式进行测试;
被测单板F有3个测试链表,包括脚本A对应的测试链表、脚本B对应的测试链表、脚本C对应的测试链表,其中,脚本A对应的测试链表为按照循环模式进行测试,脚本B对应的测试链表为按照循环模式进行测试,脚本C对应的测试链表为按照时间模式进行测试。
其中,脚本包括:每个被测单板测试链表的个数、本测试链表的测试模式、测试模式的测试参数和至少一个测试项,其中,测试项包括:命令头标示、槽位号、命令类型、测试命令码、被测单板标识号和命令所携带的参数。
参见图2,图2为本实施例提供的一种脚本的示意图,图2中一共包含3个脚本,3个脚本对应有3个测试链表,在每个测试链表前面用cmd_intvl来标示一共有几个小的测试链表;用cmd_model来标示本测试链表的测试模式,loop表示循环模式,time表示时间模式;用cmd_para来表示测试模式的测试参数,循环模式的测试参数为循环次数,时间模式的测试参数为总测试时长。其中,每个测试项包括命令头标示、槽位号、命令类型、测试命令码、单板ID、命令所携带的参数等;其中,命令头标示包括CMD:aaaa,槽位号包括0000,命令类型包括0001或者0002或者0004,测试命令码包括0100等,单板ID包括8a1a,命令所携带的参数包括0000或者0001等。
其中,测试项是用十六进制数表示的测试命令码;不同的测试项具有不同的测试命令码。
其中,脚本1将所有的测试项放在一个脚本里面,设定测试模式为循环模式,设定循环次数为1次;脚本2将与复位相关的测试项放在一起,测试模式为循环模式,设定循环次数为1次;脚本3将所有媒体面的测试项放在一个脚本里,设定测试模式为时间模式,设定总测试时长为3个小时。
当测试模式为循环模式时,测试模式的测试参数为循环次数;S102中根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试包括:
获取循环次数,根据循环次数循环执行以下步骤:
选取每个被测单板本测试链表的每个测试项,按照本测试链表的测试项的先后顺序,分别依次向每个被测单板下发对应测试项的预设格式的测试命令;每个被测单板在接收到测试命令之后,执行测试命令;
也即选取每个被测单板本测试链表的第一个测试项,分别向每个被测单板下发对应的预设格式的测试命令,每个被测单板执行测试命令;
以图2中的第一个脚本为例,第一个脚本的第一个测试项为CMD:aaaa,0000,0001,0100,8a1a,0000,则向0槽位的被测单板下发的预设格式的测试命令为:CMD:aaaa,0000,0001,0100,8a1a,0000,0X55;
选取每个被测单板本测试链表的下一个测试项,并重复上述“分别向每个被测单板下发对应的预设格式的测试命令,每个被测单板执行测试命令”的步骤,直至完成每个被测单板本测试链表的所有测试项的测试;
根据循环次数重复上述步骤,直至完成循环次数的每个被测单板本测试链表的所有测试项的测试。
当测试模式为时间模式时,测试模式的测试参数为总测试时长;S102中根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试包括:
获取总测试时长,根据总测试时长循环执行以下步骤:
根据每个被测单板本测试链表的每个测试项的先后顺序,依次选取每个被测单板本测试链表的每个测试项,每选取本测试链表的一个测试项之后,判断测试剩余时长是否大于等于该测试项所需时长,若是,则分别向每个被测单板下发对应测试项的预设格式的测试命令,每个被测单板在接收到测试命令之后,执行测试命令;
也即选取每个被测单板本测试链表的第一个测试项,判断测试剩余时长是否大于等于该测试项所需时长,若是,则分别向每个被测单板下发对应的预设格式的测试命令,每个被测单板执行测试命令;
选取每个被测单板的本测试链表的下一个测试项,并重复上述“判断测试剩余时长是否大于等于该测试项所需时长,若是,则分别向每个被测单板下发对应的预设格式的测试命令,每个被测单板执行测试命令”的步骤;当完成每个被测单板的本测试链表的最后一个测试项时,选取每个被测单板本测试链表的第一个测试项,并重复上述步骤,直至测试剩余时长小于该测试项所需时长。
S103:执行所有的测试链表。
当脚本的个数大于等于2时,执行所有的测试链表包括:
同时开始执行每个被测单板的第一个测试链表;在每个被测单板的第一个测试链表均执行结束的情况下,同时开始执行每个被测单板的下一个测试链表,直至完成每个被测单板所有测试链表的执行。
在执行每个被测单板的每一个测试链表之前,还包括:判断每个被测单板是否处于运行状态,若是,则进入执行每个被测单板对应的测试链表的步骤;
也即在执行每个被测单板的第一个测试链表之前,先判断每个被测单板是否处于运行状态,若是,才进入执行每个被测单板的第一个测试链表的步骤;在执行每个被测单板的第二个测试链表之前,先判断每个被测单板是否处于运行状态,若是,才进入执行每个被测单板的第二个测试链表的步骤;第三个测试链表、第四个测试链表等也是同样的步骤。
每个被测单板的起始状态都是开始状态,查看本测试链表有没有测试项,有进入运行状态,没有就等待;每个新的测试链表都会判断,将被测单板测试链表计数加1,就开始测试,直到按照本测试链表的测试模式、测试参数测试被测单板,测试结束后就跳入等待模式,等待一个同步状态,所有被测单板都测试完本测试链表了,就进入下一个测试链表的测试,直至所有的测试链表测试结束。
被测单板处于开始状态时,表明测试开始,被测单板准备好;被测单板处于运行状态时,表明测试正在进行,被测单板正运行;被测单板处于等待状态时,表明测试停止,被测单板不运行;被测单板处于完成状态时,表明测试结束,被测单板不运行。
在执行完每个测试链表之后,便输出测试结果和日志,并将测试结果和日志进行保存。
下面例举一个具体的例子对本方案进行进一步说明。
如图3所示,图3为本示例提供的一种机框环境的示意图,本示例采用的测试系统包括:环境主控板、环境交换板、被测单板,这些被测单板都是通过插件插到机框背板槽位上,如图插在背板上面。
如图4所示,图4为本示例提供的一种机框背板整体架构的示意图,环境主控板、环境交换板、被测单板通过背板来实现信息的交互,电源供电。图4中,电源模块提供48V的直流电供电给环境主控板、环境交换板、被测单板、风扇模块。
环境主控通过高速serdes与背板进行数据流量的交互,环境主控通过1000BaseX与背板进行控制面的流量的交互,环境主控通过SJTAG给线卡烧结EPLD(ErasableProgrammable Logic Device,可擦除可编辑逻辑器件)版本。
被测单板通过高速serdes与背板进行数据流量的交互,被测单板通过1000BaseX与背板进行控制面的流量的交互,被测单板通过SJTAG与背板采用EPLD进行交互。
环境主控通过背板、以及RS485查看电源模块的电压、电流、功率等信息。
环境主控通过背板、以及12c查看风扇模块的转速等信息。
本示例提供的方案具体包括以下步骤:
第一步:首先按测试目的,来编写包含时间模式或循环模式的脚本,编写的脚本参见图2,图2中有3个脚本,第一个脚本为包含循环模式的脚本,循环次数是1次;第二个脚本为包含循环模式的脚本,循环次数是1次;第三个脚本为包含时间模式的脚本,总测试时长为3个小时,即10800秒;
第二步:环境主控板、环境交换板和被测单板上电,启动版本;
环境主控板可以将被测设备的信息显示出来,并从上位机获取拷机脚本;
第三步:环境主控板初始化每个被测单板的自动化管理器;
第四步:环境主控板解析脚本,根据脚本的个数3为每个在位的被测单板分别建立3个测试链表,并且为每个被测单板建一个日志文件,并且设立一个全局的同步状态;
例如0槽位的被测单板建立有3个测试链表,第一个测试链表是根据第一个脚本创建的,第一个测试链表的测试模式为循环模式、测试模式的测试参数为循环1次;第二个测试链表是根据第二个脚本创建的,第二个测试链表的测试模式为循环模式、测试模式的测试参数为循环1次;第三个测试链表是根据第三个脚本创建的,第三个测试链表的测试模式为时间模式、测试模式的测试参数为总测试时长为10800秒;
第五步:环境主控板为每一个在位的被测单板建立一个测试线程,每个测试线程独立运行测试;
第六步:开始测试;
第七步:机框满配(环境主控板、环境交换板、被测单板都在位)的情况下,测试是从0槽位开始。0槽位被测单板的测试线程开始,0槽位被测单板的自动化管理器的初始状态为开始状态,开始状态进入后,判断第一个测试链表的第一个测试项是否为空,若不为空,则进入运行状态;到了运行状态,首先将测试链表标记+1,获取到该测试链表的测试模式为循环模式,取循环标记1,设置该测试链表的循环次数为1次,取第一个测试链表的第一个测试项,以预设格式向被测单板下发测试命令;若为空,则进入等待状态,或者根据状态做出相应的动作;
第八步:被测单板收到测试命令,解析测试命令;被测单板执行测试命令,将测试信息记录到日志文件,执行测试项结束后,将测试结果以预设格式传给环境主控板,并将整个执行过程全部传给环境主控板;
第九步:环境主控板等待被测单板返回测试结果,当接收到测试结果后,解析测试结果,记录到被测单板对应的结果文件,同时根据被测单板发送的日志,更新被测单板的日志文件;
第十步:自动化管理器的状态为运行状态,判断为循环模式,所有测试项测试1次,取第一个测试链表的第2个测试项,以预设格式向被测单板下发测试命令;
重复执行上述步骤第八步、第九步、第十步;直到将该测试链表全部执行完;
第十一步:自动化管理器的状态为运行状态,判断为循环模式,所有的测试项均测试完1次,判断出当前测试次数为2,则进入等待状态,进入等待状态后,判断此测试链表是否为最后一个链表,若不是,则获取一个同步状态,即所有的被测单板第1个测试链表是否执行完成,若所有的被测单板第1个测试链表均执行完成,则进入开始状态,若否,若处于等待状态。
第十二步:运行状态进入开始状态后,就将第2个测试链表的所有测试项都执行一遍后,进入等待状态;
第十三步:运行状态进入开始状态后,进入第3个测试链表,获取测试模式为时间模式,设置一个时间计数器,每次取测试链表的测试项,先判断测试剩余时长是否大于等于该测试项所需时长,如果测试剩余时长大于等于该测试项所需时长,就处于运行状态,否则就跳转至等待状态;
第十四步:等待状态,判断出该测试链表为此次测试的最后一个链表,关闭测试线程,测试结束。
现有技术中将所有的测试项写在一个脚本里,所有的测试项运行结束需要4个小时,循环测试6次,则一共需要24个小时的总测试时间,其中媒体面的总测试时间=每次的测试时间10分钟*6=1个小时;但是若采用本实施例提供的方法,可以将媒体面单独测试3个小时,控制面单独测试3个小时,其他次要的测试循环测试4次来满足测试要求。
根据本实施例提供的基于脚本的测试方法,根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试,可以选择性的测试重点测试项,可以安排测试项测试的先后顺序,可以控制每个测试项总的测试时长、测试循环次数,节省了人力物力成本,提高了生产测试效率。
实施例二
本实施例提供一种基于脚本的测试装置,请参见图5,该装置包括:获取模块501、创建模块502、执行模块503,其中,
获取模块501,用于获取至少一个脚本;
首先按测试目的,来编写包含时间模式或循环模式的脚本。其中,时间模式包括:设定总测试时长,所有的测试项循环测试,当实际测试时长达到总测试时长,则停止测试。循环模式包括:所有的测试项顺序执行,然后按照设定的循环次数再循环。在进行测试时,可以配置多个脚本来满足测试,多个脚本可以均为包含时间模式的脚本,或者多个脚本可以均为包含循环模式的脚本,或者多个脚本中可以是一部分为包含时间模式的脚本,剩余部分为包含循环模式的脚本。
创建模块502,用于根据脚本为每个被测单板创建对应的测试链表,每个被测单板的测试链表的个数等于脚本的个数;每个测试链表分别用于根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试;
例如脚本的个数为3,其中,脚本A为包含循环模式的脚本,脚本B为包含循环模式的脚本,脚本C为包含时间模式的脚本;被测单板的个数为3,分别将被测单板记为D、E、F;在获取模块501获取到脚本A、脚本B、脚本C后,创建模块502根据获取到的脚本为每个被测单板创建对应的测试链表,被测单板D有3个测试链表,包括脚本A对应的测试链表、脚本B对应的测试链表、脚本C对应的测试链表,其中,脚本A对应的测试链表为按照循环模式进行测试,脚本B对应的测试链表为按照循环模式进行测试,脚本C对应的测试链表为按照时间模式进行测试;
被测单板E有3个测试链表,包括脚本A对应的测试链表、脚本B对应的测试链表、脚本C对应的测试链表,其中,脚本A对应的测试链表为按照循环模式进行测试,脚本B对应的测试链表为按照循环模式进行测试,脚本C对应的测试链表为按照时间模式进行测试;
被测单板F有3个测试链表,包括脚本A对应的测试链表、脚本B对应的测试链表、脚本C对应的测试链表,其中,脚本A对应的测试链表为按照循环模式进行测试,脚本B对应的测试链表为按照循环模式进行测试,脚本C对应的测试链表为按照时间模式进行测试。
其中,脚本包括:每个被测单板测试链表的个数、本测试链表的测试模式、测试模式的测试参数和至少一个测试项,其中,测试项包括:命令头标示、槽位号、命令类型、测试命令码、被测单板标识号和命令所携带的参数。
参见图2,图2为本实施例提供的一种脚本的示意图,图2中一共包含3个脚本,3个脚本对应有3个测试链表,在每个测试链表前面用cmd_intvl来标示一共有几个小的测试链表;用cmd_model来标示本测试链表的测试模式,loop表示循环模式,time表示时间模式;用cmd_para来表示测试模式的测试参数,循环模式的测试参数为循环次数,时间模式的测试参数为总测试时长。其中,每个测试项包括命令头标示、槽位号、命令类型、测试命令码、单板ID、命令所携带的参数等;其中,命令头标示包括CMD:aaaa,槽位号包括0000,命令类型包括0001或者0002或者0004,测试命令码包括0100等,单板ID包括8a1a,命令所携带的参数包括0000或者0001等。
其中,测试项是用十六进制数表示的测试命令码;不同的测试项具有不同的测试命令码。
其中,脚本1将所有的测试项放在一个脚本里面,设定测试模式为循环模式,设定循环次数为1次;脚本2将与复位相关的测试项放在一起,测试模式为循环模式,设定循环次数为1次;脚本3将所有媒体面的测试项放在一个脚本里,设定测试模式为时间模式,设定总测试时长为3个小时。
当测试模式为循环模式时,测试模式的测试参数为循环次数;根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试包括:
获取循环次数,根据循环次数循环执行以下步骤:
选取每个被测单板本测试链表的每个测试项,按照本测试链表的测试项的先后顺序,分别依次向每个被测单板下发对应测试项的预设格式的测试命令;每个被测单板在接收到测试命令之后,执行测试命令;
也即选取每个被测单板本测试链表的第一个测试项,分别向每个被测单板下发对应的预设格式的测试命令,每个被测单板执行测试命令;
以图2中的第一个脚本为例,第一个脚本的第一个测试项为CMD:aaaa,0000,0001,0100,8a1a,0000,则向0槽位的被测单板下发的预设格式的测试命令为:CMD:aaaa,0000,0001,0100,8a1a,0000,0X55;
选取每个被测单板本测试链表的下一个测试项,并重复上述“分别向每个被测单板下发对应的预设格式的测试命令,每个被测单板执行测试命令”的步骤,直至完成每个被测单板本测试链表的所有测试项的测试;
根据循环次数重复上述步骤,直至完成循环次数的每个被测单板本测试链表的所有测试项的测试。
当测试模式为时间模式时,测试模式的测试参数为总测试时长;根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试包括:
获取总测试时长,根据总测试时长循环执行以下步骤:
根据每个被测单板本测试链表的每个测试项的先后顺序,依次选取每个被测单板本测试链表的每个测试项,每选取本测试链表的一个测试项之后,判断测试剩余时长是否大于等于该测试项所需时长,若是,则分别向每个被测单板下发对应测试项的预设格式的测试命令,每个被测单板在接收到测试命令之后,执行测试命令;
也即选取每个被测单板本测试链表的第一个测试项,判断测试剩余时长是否大于等于该测试项所需时长,若是,则分别向每个被测单板下发对应的预设格式的测试命令,每个被测单板执行测试命令;
选取每个被测单板的本测试链表的下一个测试项,并重复上述“判断测试剩余时长是否大于等于该测试项所需时长,若是,则分别向每个被测单板下发对应的预设格式的测试命令,每个被测单板执行测试命令”的步骤;当完成每个被测单板的本测试链表的最后一个测试项时,选取每个被测单板本测试链表的第一个测试项,并重复上述步骤,直至测试剩余时长小于该测试项所需时长。
执行模块503,用于执行所有的测试链表。
当脚本的个数大于等于2时,执行模块503用于同时开始执行每个被测单板的第一个测试链表;在每个被测单板的第一个测试链表均执行结束的情况下,同时开始执行每个被测单板的下一个测试链表,直至完成每个被测单板的所有测试链表的执行。
可选的,该基于脚本的测试装置还包括判断模块504,用于在执行模块503执行每个被测单板的每一个测试链表之前,判断每个被测单板是否处于运行状态,若是,则执行模块503执行每个被测单板对应的测试链表;
也即在执行每个被测单板的第一个测试链表之前,先判断每个被测单板是否处于运行状态,若是,才进入执行每个被测单板的第一个测试链表的步骤;在执行每个被测单板的第二个测试链表之前,先判断每个被测单板是否处于运行状态,若是,才进入执行每个被测单板的第二个测试链表的步骤;第三个测试链表、第四个测试链表等也是同样的步骤。
每个被测单板的起始状态都是开始状态,查看本测试链表有没有测试项,有进入运行状态,没有就等待;每个新的测试链表都会判断,将被测单板测试链表计数加1,就开始测试,直到按照本测试链表的测试模式、测试参数测试被测单板,测试结束后就跳入等待模式,等待一个同步状态,所有被测单板都测试完本测试链表了,就进入下一个测试链表的测试,直至所有的测试链表测试结束。
被测单板处于开始状态时,表明测试开始,被测单板准备好;被测单板处于运行状态时,表明测试正在进行,被测单板正运行;被测单板处于等待状态时,表明测试停止,被测单板不运行;被测单板处于完成状态时,表明测试结束,被测单板不运行。
在执行完每个测试链表之后,便输出测试结果和日志,并将测试结果和日志进行保存。
下面例举一个具体的例子对本方案进行进一步说明。
如图3所示,图3为本示例提供的一种机框环境的示意图,本示例采用的测试系统包括:环境主控板、环境交换板、被测单板,这些被测单板都是通过插件插到机框背板槽位上,如图插在背板上面。
如图4所示,图4为本示例提供的一种机框背板整体架构的示意图,环境主控板、环境交换板、被测单板通过背板来实现信息的交互,电源供电。图4中,电源模块提供48V的直流电供电给环境主控板、环境交换板、被测单板、风扇模块。
环境主控通过高速serdes与背板进行数据流量的交互,环境主控通过1000BaseX与背板进行控制面的流量的交互,环境主控通过SJTAG给线卡烧结EPLD版本。。
被测单板通过高速serdes与背板进行数据流量的交互,被测单板通过1000BaseX与背板进行控制面的流量的交互,被测单板通过SJTAG与背板采用EPLD进行交互。
环境主控通过背板、以及RS485查看电源模块的电压、电流、功率等信息。
环境主控通过背板、以及12c查看风扇模块的转速等信息。
本示例提供的方案具体包括以下步骤:
第一步:首先按测试目的,来编写包含时间模式或循环模式的脚本,编写的脚本参见图2,图2中有3个脚本,第一个脚本为包含循环模式的脚本,循环次数是1次;第二个脚本为包含循环模式的脚本,循环次数是1次;第三个脚本为包含时间模式的脚本,总测试时长为3个小时,即10800秒;
第二步:环境主控板、环境交换板和被测单板上电,启动版本;
环境主控板可以将被测设备的信息显示出来,并从上位机获取拷机脚本;
第三步:环境主控板初始化每个被测单板的自动化管理器;
第四步:环境主控板解析脚本,根据脚本的个数3为每个在位的被测单板分别建立3个测试链表,并且为每个被测单板建一个日志文件,并且设立一个全局的同步状态;
例如0槽位的被测单板建立有3个测试链表,第一个测试链表是根据第一个脚本创建的,第一个测试链表的测试模式为循环模式、测试模式的测试参数为循环1次;第二个测试链表是根据第二个脚本创建的,第二个测试链表的测试模式为循环模式、测试模式的测试参数为循环1次;第三个测试链表是根据第三个脚本创建的,第三个测试链表的测试模式为时间模式、测试模式的测试参数为总测试时长为10800秒;
第五步:环境主控板为每一个在位的被测单板建立一个测试线程,每个测试线程独立运行测试;
第六步:开始测试;
第七步:机框满配(环境主控板、环境交换板、被测单板都在位)的情况下,测试是从0槽位开始。0槽位被测单板的测试线程开始,0槽位被测单板的自动化管理器的初始状态为开始状态,开始状态进入后,判断第一个测试链表的第一个测试项是否为空,若不为空,则进入运行状态;到了运行状态,首先将测试链表标记+1,获取到该测试链表的测试模式为循环模式,取循环标记1,设置该测试链表的循环次数为1次,取第一个测试链表的第一个测试项,以预设格式向被测单板下发测试命令;若为空,则进入等待状态,或者根据状态做出相应的动作;
第八步:被测单板收到测试命令,解析测试命令;被测单板执行测试命令,将测试信息记录到日志文件,执行测试项结束后,将测试结果以预设格式传给环境主控板,并将整个执行过程全部传给环境主控板;
第九步:环境主控板等待被测单板返回测试结果,当接收到测试结果后,解析测试结果,记录到被测单板对应的结果文件,同时根据被测单板发送的日志,更新被测单板的日志文件;
第十步:自动化管理器的状态为运行状态,判断为循环模式,所有测试项测试1次,取第一个测试链表的第2个测试项,以预设格式向被测单板下发测试命令;
重复执行上述步骤第八步、第九步、第十步;直到将该测试链表全部执行完;
第十一步:自动化管理器的状态为运行状态,判断为循环模式,所有的测试项均测试完1次,判断出当前测试次数为2,则进入等待状态,进入等待状态后,判断此测试链表是否为最后一个链表,若不是,则获取一个同步状态,即所有的被测单板第1个测试链表是否执行完成,若所有的被测单板第1个测试链表均执行完成,则进入开始状态,若否,若处于等待状态。
第十二步:运行状态进入开始状态后,就将第2个测试链表的所有测试项都执行一遍后,进入等待状态;
第十三步:运行状态进入开始状态后,进入第3个测试链表,获取测试模式为时间模式,设置一个时间计数器,每次取测试链表的测试项,先判断测试剩余时长是否大于等于该测试项所需时长,如果测试剩余时长大于等于该测试项所需时长,就处于运行状态,否则就跳转至等待状态;
第十四步:等待状态,判断出该测试链表为此次测试的最后一个链表,关闭测试线程,测试结束。
现有技术中将所有的测试项写在一个脚本里,所有的测试项运行结束需要4个小时,循环测试6次,则一共需要24个小时的总测试时间,其中媒体面的总测试时间=每次的测试时间10分钟*6=1个小时;但是若采用本实施例提供的方法,可以将媒体面单独测试3个小时,控制面单独测试3个小时,其他次要的测试循环测试4次来满足测试要求。
根据本实施例提供的基于脚本的测试装置,根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试,可以选择性的测试重点测试项,可以安排测试项测试的先后顺序,可以控制每个测试项总的测试时长、测试循环次数,节省了人力物力成本,提高了生产测试效率。
显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (12)
1.一种基于脚本的测试方法,包括:
获取至少一个脚本;
根据所述脚本为每个被测单板创建对应的测试链表,每个被测单板的测试链表的个数等于脚本的个数;每个测试链表分别用于根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试;
执行所有的测试链表;所述测试模式包括时间模式或循环模式。
2.如权利要求1所述的基于脚本的测试方法,其特征在于,所述脚本包括:每个被测单板测试链表的个数、本测试链表的测试模式、测试模式的测试参数和至少一个测试项,其中,所述测试项包括:命令头标示、槽位号、命令类型、测试命令码、被测单板标识号和命令所携带的参数。
3.如权利要求1所述的基于脚本的测试方法,其特征在于,当脚本的个数大于等于2时,所述执行所有的测试链表包括:
同时开始执行每个被测单板的第一个测试链表;
在所述每个被测单板的第一个测试链表均执行结束的情况下,同时开始执行每个被测单板的下一个测试链表,直至完成每个被测单板的所有测试链表的执行。
4.如权利要求3所述的基于脚本的测试方法,其特征在于,在执行每个被测单板的每一个测试链表之前,还包括:判断每个被测单板是否处于运行状态,若是,则进入执行所述每个被测单板对应的测试链表的步骤。
5.如权利要求1至4任一项所述的基于脚本的测试方法,其特征在于,
所述测试模式为循环模式时,所述测试模式的测试参数为循环次数;所述根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试包括:
获取所述循环次数,根据所述循环次数循环执行以下步骤:
选取每个被测单板本测试链表的每个测试项,按照本测试链表的测试项的先后顺序,分别依次向每个被测单板下发对应测试项的预设格式的测试命令;每个被测单板在接收到所述测试命令之后,执行所述测试命令。
6.如权利要求1至4任一项所述的基于脚本的测试方法,其特征在于,
所述测试模式为时间模式时,所述测试模式的测试参数为总测试时长;所述根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试包括:
获取所述总测试时长,根据所述总测试时长循环执行以下步骤:
根据每个被测单板本测试链表的每个测试项的先后顺序,依次选取每个被测单板本测试链表的每个测试项,每选取本测试链表的一个测试项之后,判断测试剩余时长是否大于等于该测试项所需时长,若是,则分别向每个被测单板下发对应测试项的预设格式的测试命令,每个被测单板在接收到所述测试命令之后,执行所述测试命令。
7.一种基于脚本的测试装置,包括:
获取模块,用于获取至少一个脚本;
创建模块,用于根据所述脚本为每个被测单板创建对应的测试链表,每个被测单板的测试链表的个数等于脚本的个数;每个测试链表分别用于根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试;
执行模块,用于执行所有的测试链表;
所述测试模式包括时间模式或循环模式。
8.如权利要求7所述的基于脚本的测试装置,其特征在于,所述脚本包括:每个被测单板测试链表的个数、本测试链表的测试模式、测试模式的测试参数,以及至少一个测试项,其中,所述测试项包括:命令头标示、槽位号、命令类型、测试命令码、被测单板标识号、命令所携带的参数。
9.如权利要求7所述的基于脚本的测试装置,其特征在于,当脚本的个数大于等于2时,所述执行模块用于同时开始执行每个被测单板的第一个测试链表;在所述每个被测单板的第一个测试链表均执行结束的情况下,同时开始执行每个被测单板的第二个测试链表,直至完成每个被测单板的所有测试链表的执行。
10.如权利要求9所述的基于脚本的测试装置,其特征在于,还包括判断模块,用于在所述执行模块执行每一个测试链表之前,判断每个被测单板是否处于运行状态,若是,则所述执行模块执行每个被测单板对应的测试链表。
11.如权利要求7至10任一项所述的基于脚本的测试装置,其特征在于,
所述测试模式为循环模式时,所述测试模式的测试参数为循环次数;所述根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试包括:
获取所述循环次数,根据所述循环次数循环执行以下步骤:
选取每个被测单板本测试链表的每个测试项,按照本测试链表的测试项的先后顺序,分别依次向每个被测单板下发对应测试项的预设格式的测试命令;每个被测单板在接收到所述测试命令之后,执行所述测试命令。
12.如权利要求7至10任一项所述的基于脚本的测试装置,其特征在于,
所述测试模式为时间模式时,所述测试模式的测试参数为总测试时长;所述根据对应的预设的测试模式、测试模式的测试参数,对对应的被测单板的至少一个测试项进行测试包括:
获取所述总测试时长,根据所述总测试时长循环执行以下步骤:
根据每个被测单板本测试链表的每个测试项的先后顺序,依次选取每个被测单板本测试链表的每个测试项,每选取本测试链表的一个测试项之后,判断测试剩余时长是否大于等于该测试项所需时长,若是,则分别向每个被测单板下发对应测试项的预设格式的测试命令,每个被测单板在接收到所述测试命令之后,执行所述测试命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710067139.1A CN108399121B (zh) | 2017-02-06 | 2017-02-06 | 一种基于脚本的测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710067139.1A CN108399121B (zh) | 2017-02-06 | 2017-02-06 | 一种基于脚本的测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108399121A CN108399121A (zh) | 2018-08-14 |
CN108399121B true CN108399121B (zh) | 2023-04-14 |
Family
ID=63094520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710067139.1A Active CN108399121B (zh) | 2017-02-06 | 2017-02-06 | 一种基于脚本的测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108399121B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109410982B (zh) * | 2018-12-20 | 2021-01-26 | 斑马网络技术有限公司 | 语音测试方法、装置、设备以及存储介质 |
CN111930031B (zh) * | 2019-12-26 | 2023-02-14 | 南京南瑞继保电气有限公司 | 一种继电保护单板调试系统及其实现方法 |
CN116962264A (zh) * | 2022-04-15 | 2023-10-27 | 中兴通讯股份有限公司 | 单板测试方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170785A (zh) * | 2006-10-24 | 2008-04-30 | 中兴通讯股份有限公司 | 使用tcl进行基站软件测试的装置和方法 |
CN104198868A (zh) * | 2014-09-23 | 2014-12-10 | 厦门雅迅网络股份有限公司 | 一种可灵活扩展和动态配置的智能工装 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100336027C (zh) * | 2004-04-13 | 2007-09-05 | 英业达股份有限公司 | 多种互斥条件下的多模式测试系统及其方法 |
CN1790957A (zh) * | 2004-12-14 | 2006-06-21 | 华为技术有限公司 | 设备测试方法 |
CN101727390A (zh) * | 2009-12-28 | 2010-06-09 | 金蝶软件(中国)有限公司 | 一种性能测试脚本的调试方法和装置 |
JP2015011413A (ja) * | 2013-06-27 | 2015-01-19 | 株式会社日立製作所 | 検証自動化方式 |
CN104424095A (zh) * | 2013-08-26 | 2015-03-18 | 卓望数码技术(深圳)有限公司 | 一种移动终端的自动化测试方法和系统 |
IN2013DE02949A (zh) * | 2013-10-04 | 2015-04-10 | Unisys Corp | |
CN105320589B (zh) * | 2014-07-14 | 2017-12-22 | 上海计算机软件技术开发中心 | 云测试环境中测试脚本自动解析系统及其实现方法 |
CN105588989B (zh) * | 2014-10-22 | 2020-02-07 | 中兴通讯股份有限公司 | 单板测试方法及装置 |
CN104598344A (zh) * | 2015-02-03 | 2015-05-06 | 浪潮电子信息产业股份有限公司 | 一种基于shell的测试内存读写的方法 |
CN105138455A (zh) * | 2015-08-27 | 2015-12-09 | 株洲南车时代电气股份有限公司 | 一种列控车载设备的测试系统和测试方法 |
CN106250309A (zh) * | 2016-07-22 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种内存压力变化测试方法及装置 |
-
2017
- 2017-02-06 CN CN201710067139.1A patent/CN108399121B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170785A (zh) * | 2006-10-24 | 2008-04-30 | 中兴通讯股份有限公司 | 使用tcl进行基站软件测试的装置和方法 |
CN104198868A (zh) * | 2014-09-23 | 2014-12-10 | 厦门雅迅网络股份有限公司 | 一种可灵活扩展和动态配置的智能工装 |
Non-Patent Citations (1)
Title |
---|
李婧 ; .基于UML的移动终端软件自动化测试用例建模.《软件导刊》.2009,第8卷(第5期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN108399121A (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106940428B (zh) | 芯片验证方法、装置及系统 | |
CN108399121B (zh) | 一种基于脚本的测试方法和装置 | |
CN102214139B (zh) | 一种面向分布式系统的自动化测试的执行控制与调度方法 | |
US9411710B2 (en) | Automated regression test case selector and black box test coverage tool for product testing | |
CN105608001A (zh) | 基于后台系统服务或接口的测试方法和测试平台 | |
CN109376090A (zh) | 软件自动测试方法及装置 | |
CN110162481A (zh) | 一种软件测试方法、装置、设备以及存储介质 | |
CN106528425B (zh) | 一种用于微处理器的平台化插件自动测试方法 | |
CN109597733A (zh) | 一种多功能高效动态芯片验证仿真方法和设备 | |
CN112769810A (zh) | 防火墙测试方法、装置、非易失性存储介质和电子装置 | |
CN113806962A (zh) | 用于轨道交通信号系统的多倍速仿真运行控制方法 | |
CN117743061B (zh) | 基于fttr的fpga密钥无线静态测试方法、装置、设备及介质 | |
CN109542589B (zh) | 一种面向区块链智能合约的运行无损的监测系统及方法 | |
CN106874290B (zh) | 一种数据清洗方法及设备 | |
CN111142929A (zh) | 一种设备生产过程中的固件配置方法、装置、设备及介质 | |
CN114996127A (zh) | 固态硬盘固件模块智能化测试方法及系统 | |
CN113360361A (zh) | 一种分布式运维模拟系统的构建方法、装置及设备 | |
CN109932588A (zh) | 一种航电设备验证测试引擎 | |
CN102932825B (zh) | 网络运维的方法及装置 | |
CN102158374B (zh) | 一种带宽限速测试方法和测试装置 | |
CN105867894A (zh) | 开发环境自动创建方法及系统 | |
CN105867892A (zh) | 多开发平台的集中管理方法及系统 | |
CN106612213A (zh) | 设备测试方法及装置 | |
CN110795334B (zh) | 一种测试装置和方法 | |
CN112003727A (zh) | 一种多节点服务器电源测试方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |