CN116192922B - 一种测试用例的下发管理方法、装置及系统 - Google Patents
一种测试用例的下发管理方法、装置及系统 Download PDFInfo
- Publication number
- CN116192922B CN116192922B CN202310438332.7A CN202310438332A CN116192922B CN 116192922 B CN116192922 B CN 116192922B CN 202310438332 A CN202310438332 A CN 202310438332A CN 116192922 B CN116192922 B CN 116192922B
- Authority
- CN
- China
- Prior art keywords
- driving
- instrument
- test
- information
- function
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Testing Electric Properties And Detecting Electric Faults (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种测试用例的下发管理方法、装置及系统,用于设备测试技术领域,包括:分别与各测试管理装置建立TCP长连接;接收各测试管理装置上传的装置信息,并将各装置信息存入下发管理队列中,装置信息包括装置编号、连接仪器的驱动信息和连接状态;接收测试用例并读取测试用例中的目标仪器的驱动信息,遍历下发管理队列,判断每个装置信息中,连接仪器的驱动信息是否与目标仪器的驱动信息匹配且其连接状态为空闲;若是,则记录该装置信息对应的装置编号,并根据装置编号将测试用例下发给对应的测试管理装置;定时刷新下发管理队列并重复,保证测试用例能发送给当前空闲的测试管理装置执行。
Description
技术领域
本发明涉及设备测试用例下发管理技术领域,具体涉及一种测试用例的下发管理方法、装置及系统。
背景技术
对于射频微波类测试仪器的测试(例如矢量网络分析仪、示波器、频谱仪等),一般系统中会有一个专门用于生产测试用例的测试用例生成装置和测试用例下发管理装置,下发管理装置下发测试用例到测试管理端,测试管理端连接有上述的射频微波类测试仪器,测试管理端根据测试用例生成测试指令发送给测试仪器,然而,若测试管理端正处于测试状态,或者是当前测试管理设备不具备测试条件时,比如说没有连接上可用的测试用仪器,或者是当前测试管理端设置了权限不允许下发测试用例等等一些情况将使得下发的测试用例无法立即执行;一般情况下,有的测试终装置有一个缓存池,存储接收到的测试用例,并不停的检测自身状态,等测试环境都准备好时再执行测试,但无论是何种情况,一旦遇到一些紧急的测试任务,若出现上述的情况,会无法执行测试任务,威胁系统安全运行。
因此,需要提出一种在目标测试管理装置无法执行时,能自适应其他能够执行测试的测试管理端的解决方案。
发明内容
本发明的目的在于提供一种测试用例的下发管理方法、装置及系统,通过与所有测试管理装置建立TCP长连接,根据测试管理装置上传的装置信息,判断是否存在与测试用例匹配且装置状态为空闲的测试管理装置,若能找到,则直接将测试用例下发给空闲的测试管理装置,保证测试用例能发送给当前空闲的测试管理装置执行。
一方面,本申请提供一种测试用例的下发管理方法,包括以下步骤:
S1、分别与各测试管理装置建立TCP长连接;
S2、接收各测试管理装置上传的装置信息,并将各装置信息存入下发管理队列中,装置信息包括装置编号、连接仪器的驱动信息和连接状态;
S3、接收测试用例并读取测试用例中的目标仪器的驱动信息,遍历下发管理队列,判断每个装置信息中,连接仪器的驱动信息是否与目标仪器的驱动信息匹配且其连接状态为空闲;
若是,则记录该装置信息对应的装置编号,并根据装置编号将测试用例下发给对应的测试管理装置;
S4、定时刷新下发管理队列并重复步骤S3。
进一步地,所述驱动信息均包括厂商、型号、驱动程序,每个驱动程序包括若干个驱动函数。
进一步地,每个驱动信息中驱动程序的类名和仪器的型号相同。
进一步地,判断连接仪器的驱动信息是否与目标仪器的驱动信息匹配的具体过程包括:
S31.从目标仪器的驱动信息中提取目标仪器的厂商、型号及驱动程序;
S32.从连接仪器的驱动信息中提取连接仪器的厂商、型号及驱动程序;对比目标仪器的厂商及型号与连接仪器的厂商及型号是否均一致;
S33.若是,则判断连接仪器的驱动信息与目标仪器的驱动信息匹配;
若否,执行步骤S34和步骤S35;
S34.从目标仪器的驱动程序中提取出驱动函数列表L1;
S35.从连接仪器的驱动信息中提取出驱动函数列表L2;利用目标仪器的驱动函数列表L1扫描当前连接仪器的驱动函数列表L2,判断能否找到相似的驱动函数,若能,则判断连接仪器的驱动信息与目标仪器的驱动信息匹配。
进一步地,每个驱动函数均包括函数名;且同一厂商的不同型号的驱动程序为同一个父类下的子类;
则步骤S35中判断能否找到相似的驱动函数的过程包括:
过程A1:判断当前连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数属于同一父类;若是,则判断能找到相似的驱动函数。
进一步地,每个驱动函数均包括函数名、输入参数值以及函数返回值;
则步骤S35中判断能否找到相似的驱动函数的过程包括:
过程A2:判断连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数的输入参数值和函数返回值均相同,若是,则判断能找到相似的驱动函数。
进一步地,每个驱动函数均包括函数名、输入参数值以及函数返回值;且同一厂商的不同型号的驱动程序为同一个父类下的子类;
则步骤S35中判断能否找到相似的驱动函数的过程包括:
过程B1,判断当前连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数属于同一父类;若否,则执行过程B2;
过程B2,判断当前连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数的输入参数值和函数返回值均相同,若是,则判断能找到相似的驱动函数。
第二方面,本申请提供一种测试用例的下发管理装置,包括:
装置注册模块,用于与各测试管理装置分别建立TCP长连接;
接收模块,用于根据设置的定时刷新时间,定时接收各测试管理装置上传的装置信息,并将各装置信息存入下发管理队列中,装置信息包括装置编号、连接仪器的驱动信息和连接状态;
测试用例管理模块,用于接收测试用例并读取测试用例中的目标仪器的驱动信息;
查询模块,用于遍历下发管理队列,判断每个装置信息中,连接仪器的驱动信息是否与目标仪器的驱动信息匹配且其连接状态为空闲;
若是,则记录该装置信息对应的装置编号;
下发模块,用于根据装置编号将测试用例下发给对应的测试管理装置。
第三方面,本申请提供一种测试用例的下发管理系统,包括:下发管理装置、测试用例生成装置、若干个测试管理装置,其中,
测试用例生成装置,用于向下发管理装置发送测试用例;
下发管理装置,用于接收测试用例,并与各测试管理装置建立TCP长连接,根据各测试管理装置的连接状态下发测试用例;
测试管理装置,用于装置信息上传到下发管理装置中,装置信息包括装置编号、连接仪器的驱动信息和连接状态。
进一步地,还包括仪器驱动库,所述仪器驱动库用于存储编译后的仪器驱动文件,所述仪器驱动文件包括若干个仪器的驱动信息;
测试管理装置,还用于从仪器驱动库中读取编译后的仪器驱动文件,从仪器驱动文件中获取连接仪器的驱动信息。
本发明具有的有益效果:
为了最大程度的利用空闲的测试管理装置,保证生成的测试用例能被执行,与所有测试管理装置建立TCP长连接,并定时接收测试管理装置上传的装置信息,判断是否存在与测试用例匹配且装置状态为空闲的测试管理装置,若能找到,则直接将测试用例下发给空闲的测试管理装置,保证测试用例能发送给当前空闲的测试管理装置执行。
并且为了提高测试用例被执行的概率,对于一些连接仪器的型号与目标仪器的型号不符但驱动程序可以替换使用的情况,这时其实可以不修改测试用例就可以适用于连接仪器测试用例可以被下发执行,那么就需要增加一些判定,通过判断下发的测试用例中的驱动信息能否和当前连接仪器的驱动信息匹配,匹配包括目标仪器的厂商及型号与连接仪器的厂商及型号相同、或者目标仪器的厂商与连接仪器的厂商相同型号不同但驱动函数名称相同、或者目标仪器的厂商及型号与连接仪器的厂商及型号不相同但驱动函数名称相同且函数的输入参数值和函数返回值相同时,测试用例也可以下发给这个空闲的设备。这样可以增加测试用例可被空闲的测试管理装置接收并下发给测试用仪器执行的概率。
附图说明
图1为现有技术中测试用例的下发管理方法示意图;
图2为本发明实施例提供的一种测试用例的下发管理方法交互示意图;
图3为本发明实施例提供的一种判断驱动信息是否匹配的方法示意图;
图4为本发明实施例提供的从仪器驱动库中获取的编译后的程序驱动文件示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
另外,为了清楚和简洁起见,可能省略了对公知的结构、功能和配置的描述。本领域普通技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以对本文描述的示例进行各种改变和修改。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
现有技术中,如图1所示,包括:
测试用例生成及下发管理装置,下发测试用例A,测试用例包括配置好的目标仪器的厂商及型号;
测试管理装置,读取当前连接仪器的厂商及型号;不断检查自身的状态是否为占用;若没有被占用时,则根据测试用例A生成测试指令,并下发至仪器,测试指令至少包括:测试频率、扫宽等。
但在这种情况下,若测试管理装置处于占用的情况下,下发的测试用例A将无法被立即执行,可能缓存在测试管理装置中的缓存池中,等待测试管理装置空闲时被执行,但如果此时测试用例A 是紧急测试任务,而系统中还存在有其他空闲的测试管理装置时,这些测试管理装置可能不能完全与测试用例A匹配但可以执行测试用例A,那么本申请正是为了实现这种情况,给出了一种测试用例的下发管理方法,保证测试用例能最大可能的被执行。
实施例1
如图2所示,本实施例提供一种测试用例的下发管理方法,包括以下步骤:
S1、分别与各测试管理装置建立TCP长连接;
S2、接收各测试管理装置上传的装置信息,并将各装置信息存入下发管理队列中,装置信息包括装置编号、连接仪器的驱动信息和连接状态;
S3、接收测试用例并读取测试用例中的目标仪器的驱动信息,遍历下发管理队列,判断每个装置信息中,连接仪器的驱动信息是否与目标仪器的驱动信息匹配且其连接状态为空闲;
若是,则记录该装置信息对应的装置编号,并根据装置编号将测试用例下发给对应的测试管理装置;
S4、定时刷新下发管理队列并重复步骤S3。
具体地,所述驱动信息均包括厂商、型号、驱动程序,每个驱动程序包括若干个驱动函数。每个驱动信息中驱动程序的类名和仪器的型号相同。如图3所示,判断连接仪器的驱动信息是否与目标仪器的驱动信息匹配的具体过程为:
S31.从目标仪器的驱动信息中提取目标仪器的厂商、型号及驱动程序;
S32.从连接仪器的驱动信息中提取连接仪器的厂商、型号及驱动程序;对比目标仪器的厂商及型号与连接仪器的厂商及型号是否均一致;
S33.若是,则判断连接仪器的驱动信息与目标仪器的驱动信息匹配;
若否,执行步骤S34和步骤S35;
S34.从目标仪器的驱动程序中提取出驱动函数列表L1;
S35.从连接仪器的驱动信息中提取出驱动函数列表L2;利用目标仪器的驱动函数列表L1扫描当前连接仪器的驱动函数列表L2,判断能否找到相似的驱动函数,若能,则判断连接仪器的驱动信息与目标仪器的驱动信息匹配。
为了提高测试用例被执行的概率,对于一些连接仪器的型号与目标仪器的型号不符但驱动程序可以替换使用时,这时其实可以不修改测试用例就可以适用于连接仪器,那么就需要增加一些判定,判断能否找到相似的驱动函数,相似包括目标仪器的厂商及型号与连接仪器的厂商及型号相同、或者目标仪器的厂商与连接仪器的厂商相同型号不同但驱动函数名称相同、或者目标仪器的厂商及型号与连接仪器的厂商及型号不相同但驱动函数名称相同且函数的输入参数值和函数返回值相同时,测试用例也可以下发给这个空闲的设备。以下给出三种情况的判断过程:
方法一包括:
过程A1:判断当前连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数属于同一父类;若是,则判断能找到相似的驱动函数。
方法二包括:
过程A2:判断当前连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数的输入参数值和函数返回值均相同,若是,则判断能找到相似的驱动函数。
当采用过程A1没有找到相似的驱动函数时,则使用过程A2,则方法三包括:
过程A1,判断当前连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数属于同一父类;若否,则执行过程A2;
过程A2,判断当前连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数的输入参数值和函数返回值均相同,若是,则判断能找到相似的驱动函数。
可以理解的是,本申请中所有的测试管理装置在启动时都和下发管理装置建立TCP长连接,通过网络连接向测试用例下发管理装置发送一条消息,告诉下发管理装置这个测试管理装置连接了哪些测试仪器,如果测试管理装置的仪器连接状态有所改变,也会通过网络告知下发管理装置并进行数据的刷新。
当下发管理装置要下发测试用例到测试管理装置时,先读取该测试用例需要用到的仪器信息,称为目标仪器信息,包括仪器的厂商、型号,然后根据测试管理装置上传来的装置信息,遍历所有的测试管理装置,一条一条的去查找,看是否有一个测试管理装置连接的测试仪器和目标仪器信息相同,并且该测试管理装置的状态处于空闲状态,如果有,就把测试用例下发给这个测试管理装置。
在一种具体的实施方式中,如图2所示,假设有三个测试管理装置分别为“测试管理装置A”、“测试管理装置B”和“测试管理装置C”,他们分别连接了各自的测试仪器,分别为“ZNB40/N9917A”、“ZNA/N9917A”和“ZNB40/N9917A”,这三个装置启动时将这些连接的仪器信息上传到下发管理装置,此时下发管理装置已经有这三个测试管理装置的相关信息,下发管理装置将要下发一个测试用例A,该测试用例的目标仪器为“ZNB40/N9917A”,在下发之前,利用查找算法来寻找测试管理装置,发现“测试管理装置A”和“测试管理装置C”满足仪器要求,但是“测试管理装置A”的状态时“占用”,当前可能正在执行其他用例的测试,不满足要求,而“测试管理装置C”的状态时“空闲”,因此“测试管理装置C”满足测试的要求,可以将测试用例下发至“测试管理装置C”,当测试管理装置C的状态也为占用时,此时可以查询测试管理装置B连接的仪器ZNA/N9917A能否与目标仪器的驱动程序替换使用,通过比较目标仪器的驱动程序的驱动函数的函数名、函数输入参数和函数返回值分别与仪器ZNA/N9917A的驱动程序的驱动函数的函数名、函数输入参数和函数返回值是否均相同,若是,则测试管理装置也可接收测试用例A并执行。
下面对上述提到的一些概念进行描述。
TCP长连接,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次挥手, 在测试管理装置和下发管理装置中模拟一下TCP长连接的步骤:
“测试管理装置”向“用例下发管理装置”发起连接
“用例下发管理装置”接到请求,双方建立连接
“测试管理装置”向 “用例下发管理装置”发送消息
“用例下发管理装置”回应 “测试管理装置”
一次读写完成,连接不关闭
后续读写操作...
因此一个长连接的操作步骤为:
建立连接----数据传输----(保持连接)----数据传输----关闭连接
驱动程序
驱动程序是一个后缀为.cs的程序文件,在驱动程序中定义了一个函数集合,每个函数有具体的实现,针对不同型号的测试仪器,每一个仪器型号都会有一个对应的驱动程序,驱动程序中类的名称是以仪器的型号命名的,这样仪器连接上后,也能方便的匹配到驱动程序,下述给出的驱动程序示例就是一个型号为N9010A的频谱仪的驱动程序示例,驱动程序的类名就叫N9010A,仪器驱动库内有若干的这样的驱动程序,涵盖市面上主流厂商的绝大部分仪器。
驱动程序示例:
usingHM.Drivers;//引用
namespaceHMDriverSample//命名空间
{
publicclassN9010A:PSABase//类名
{
//私有变量
privateint_id;
//公共属性
publicintId
{
get=>_id;
set=>_id=value;
}
//设备型号
publicoverridestringDeviceModel=>nameof(N9010A);
//函数1
publicvoidSetFrequencyStart(doublefreq,stringunit)
{
base.Send($"STAR{freq}{unit}");
}
//函数2
publicvoidSetFreqencyStop(doublefreq,stringunit)
{
base.Send($"STOP{freq}{unit}");
}
}
}
可以看出,一个驱动程序包含引用、命名空间、类名、私有变量、公共属性、函数等内容,函数内部有具体的实现方式,各个对应的内容都包含在相应的大括号内,如果这些大括号没有成对的出现,那么这个类文件在编译的时候就会报错误。在以上的驱动文件中,有两个函数SetFrequencyStart和SetFreqencyStop,这两个函数能被其他程序模块调用。函数后面括号内的叫参数,是调用这个函数时同时要传入的数据,比如SetFrequencyStart(doublefreq,stringunit)这个函数,调用这个函数时需要传入两个参数,一个为double类型的freq,一个为string类型的unit,调用函数时,必须按照参数的个数和类型匹配进行调用,否者程序出错。
实施例2
本实施例2在实施例1的基础上,本实施例提供一种测试用例的下发管理装置,包括:
装置注册模块,用于与各测试管理装置分别建立TCP长连接;
接收模块,用于根据设置的定时刷新时间,定时接收各测试管理装置上传的装置信息,并将各装置信息存入下发管理队列中,装置信息包括装置编号、连接仪器的驱动信息和连接状态;
测试用例管理模块,用于接收测试用例并读取测试用例中的目标仪器的驱动信息;
查询模块,用于遍历下发管理队列,判断每个装置信息中,连接仪器的驱动信息是否与目标仪器的驱动信息匹配且其连接状态为空闲;
若是,则记录该装置信息对应的装置编号;
下发模块,用于根据装置编号将测试用例下发给对应的测试管理装置。
实施例3
本实施例提供一种测试用例的下发管理系统,包括:下发管理装置、测试用例生成装置、若干个测试管理装置,其中,
测试用例生成装置,用于向下发管理装置发送测试用例;
下发管理装置,用于接收测试用例,并与各测试管理装置建立TCP长连接,根据各测试管理装置的连接状态下发测试用例;
测试管理装置,用于装置信息上传到下发管理装置中,装置信息包括装置编号、连接仪器的驱动信息和连接状态。
进一步地,还包括仪器驱动库,所述仪器驱动库用于存储编译后的仪器驱动文件,所述仪器驱动文件包括若干个仪器的驱动信息;
测试管理装置,还用于从仪器驱动库中读取编译后的仪器驱动文件,从仪器驱动文件中获取连接仪器的驱动信息。
可以理解的是,为了解决现有技术中存在的问题,本申请创造性的引入了“仪器驱动库”, 仪器驱动库是一个编译后的动态链接库,是一个包含函数和数据的模块,它可以被其他模块(应用或DLL)使用,在电脑系统中存储时是一个像xxx.DLL的文件,动态链接库中定义了函数,叫导出函数,这种函数可以被其他模块调用,也可以被它所在的模块调用。仪器驱动库是由不同种类不同型号仪器的一个或者多个不同的驱动程序组合成的。驱动库统一了驱动函数,不同类型仪器、不同厂商的驱动函数使用相同的名字,随着驱动库的完善,将支持越来越多的仪器,适配面将更加广泛。如图4所示,给出了一种示例,通过从仪器驱动库中读取编译后的M类仪器的DLL驱动文件,仪器驱动DLL文件中汇编了多个不同厂商不同型号仪器的驱动信息。
本实施例中,系统的运行过程为:
测试管理装置A:读取当前连接仪器的厂商及型号:ZNB40/N9917A
测试管理装置B:读取当前连接仪器的厂商及型号:ZNA/N9917A
测试管理装置C:读取当前连接仪器的厂商及型号:ZNB40/N9917A
在测试管理装置中执行以下步骤:
1、下发管理队列,包括:
注册测试管理装置A的装置信息:ZNB40/N9917A,连接状态:占用
注册测试管理装置B的装置信息:ZNA/N9917A,连接状态:空闲
注册测试管理装置C的装置信息:ZNB40/N9917A,连接状态:空闲
装置信息包括:工位号、连接到本装置的测试仪器厂商及型号信息
2、定时刷新下发管理队列各装置的装置信息;
3、接收下发的测试用例A,测试用例包括配置好的目标仪器的厂商、型号ZNB40/N9917A
4、执行管理装置查找算法:
遍历测试管理装置列表,判断是否还有未被查询的装置信息,若是,则判断取出的测试装置信息中状态为:空闲,仪器为ZNB40/N9917A,若是,则获得测试管理装置信息对应的测试管理装置编号C;根据测试用例生成测试指令并下发至仪器,测试指令“至少包含测试频率扫宽等。经过查找算法,如果查找到测试管理装置,则下发用例到该装置,否则退出不发送。
本实施例中,仪器驱动库是一个编译后的动态链接库,是一个包含函数和数据的模块,它可以被其他模块(应用或DLL)使用,在电脑系统中存储时是一个像xxx.DLL的文件,动态链接库中定义了函数,叫导出函数,这种函数可以被其他模块调用,也可以被它所在的模块调用。仪器驱动库是由不同种类不同型号仪器的一个或者多个不同的驱动程序组合成的。驱动库统一了驱动函数,不同类型仪器、不同厂商的驱动函数使用相同的名字,随着驱动库的完善,将支持越来越多的仪器,适配面将更加广泛。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。
Claims (8)
1.一种测试用例的下发管理方法,其特征在于,包括以下步骤:
S1、分别与各测试管理装置建立TCP长连接;
S2、接收各测试管理装置上传的装置信息,并将各装置信息存入下发管理队列中,装置信息包括装置编号、连接仪器的驱动信息和连接状态;
S3、接收测试用例并读取测试用例中的目标仪器的驱动信息,遍历下发管理队列,判断每个装置信息中,连接仪器的驱动信息是否与目标仪器的驱动信息匹配且其连接状态为空闲;
若是,则记录该装置信息对应的装置编号,并根据装置编号将测试用例下发给对应的测试管理装置;
所述驱动信息均包括厂商、型号、驱动程序,每个驱动程序包括若干个驱动函数;每个驱动函数均包括函数名、输入参数值以及函数返回值;
判断连接仪器的驱动信息是否与目标仪器的驱动信息匹配的具体过程包括:
S31.从目标仪器的驱动信息中提取目标仪器的厂商、型号及驱动程序;
S32.从连接仪器的驱动信息中提取连接仪器的厂商、型号及驱动程序;对比目标仪器的厂商及型号与连接仪器的厂商及型号是否均一致;
S33.若是,则判断连接仪器的驱动信息与目标仪器的驱动信息匹配;
若否,执行步骤S34和步骤S35;
S34.从目标仪器的驱动程序中提取出驱动函数列表L1;
S35.从连接仪器的驱动信息中提取出驱动函数列表L2;利用目标仪器的驱动函数列表L1扫描当前连接仪器的驱动函数列表L2,判断能否找到相似的驱动函数,若能,则判断连接仪器的驱动信息与目标仪器的驱动信息匹配;
判断能找到相似的驱动函数的过程包括:目标仪器的厂商与连接仪器的厂商相同型号不同但驱动函数名相同、或者目标仪器的厂商及型号与连接仪器的厂商及型号不相同但驱动函数名相同且函数的输入参数值和函数返回值相同;
S4、定时刷新下发管理队列并重复步骤S3。
2.根据权利要求1所述的一种测试用例的下发管理方法,其特征在于,每个驱动信息中驱动程序的类名和仪器的型号相同。
3.根据权利要求1所述的一种测试用例的下发管理方法,其特征在于,每个驱动函数均包括函数名;且同一厂商的不同型号的驱动程序为同一个父类下的子类;
则步骤S35中判断能否找到相似的驱动函数的过程包括:
过程A1:判断当前连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数属于同一父类;若是,则判断能找到相似的驱动函数。
4.根据权利要求1所述的一种测试用例的下发管理方法,其特征在于,每个驱动函数均包括函数名、输入参数值以及函数返回值;
则步骤S35中判断能否找到相似的驱动函数的过程包括:
过程A2:判断连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数的输入参数值和函数返回值均相同,若是,则判断能找到相似的驱动函数。
5.根据权利要求1所述的一种测试用例的下发管理方法,其特征在于,每个驱动函数均包括函数名、输入参数值以及函数返回值;且同一厂商的不同型号的驱动程序为同一个父类下的子类;
则步骤S35中判断能否找到相似的驱动函数的过程包括:
过程B1,判断当前连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数属于同一父类;若否,则执行过程B2;
过程B2,判断当前连接仪器的驱动函数列表L2中是否存在与目标仪器的驱动函数列表L1函数名相同的驱动函数且这两个相同的驱动函数的输入参数值和函数返回值均相同,若是,则判断能找到相似的驱动函数。
6.一种测试用例的下发管理装置,其特征在于,应用如权利要求1所述的一种测试用例的下发管理方法,包括:
装置注册模块,用于与各测试管理装置分别建立TCP长连接;
接收模块,用于根据设置的定时刷新时间,定时接收各测试管理装置上传的装置信息,并将各装置信息存入下发管理队列中,装置信息包括装置编号、连接仪器的驱动信息和连接状态;
测试用例管理模块,用于接收测试用例并读取测试用例中的目标仪器的驱动信息;
查询模块,用于遍历下发管理队列,判断每个装置信息中,连接仪器的驱动信息是否与目标仪器的驱动信息匹配且其连接状态为空闲;若是,则记录该装置信息对应的装置编号;
驱动信息均包括厂商、型号、驱动程序,每个驱动程序包括若干个驱动函数;每个驱动函数均包括函数名、输入参数值以及函数返回值;判断连接仪器的驱动信息是否与目标仪器的驱动信息匹配包括: 目标仪器的厂商及型号与连接仪器的厂商及型号相同、或者目标仪器的厂商与连接仪器的厂商相同型号不同但驱动函数名称相同、或者目标仪器的厂商及型号与连接仪器的厂商及型号不相同但驱动函数名称相同且函数的输入参数值和函数返回值相同;
下发模块,用于根据装置编号将测试用例下发给对应的测试管理装置。
7.一种测试用例的下发管理系统,其特征在于,包括:测试用例生成装置、若干个测试管理装置和如权利要求6所述的下发管理装置,其中,
测试用例生成装置,用于向下发管理装置发送测试用例;
下发管理装置,用于接收测试用例,并与各测试管理装置建立TCP长连接,根据各测试管理装置的连接状态下发测试用例;
测试管理装置,用于将装置信息上传到下发管理装置中,装置信息包括装置编号、连接仪器的驱动信息和连接状态。
8.根据权利要求7所述的一种测试用例的下发管理系统,其特征在于,还包括仪器驱动库,所述仪器驱动库用于存储编译后的仪器驱动文件,所述仪器驱动文件包括若干个仪器的驱动信息;
测试管理装置,还用于从仪器驱动库中读取编译后的仪器驱动文件,从仪器驱动文件中获取连接仪器的驱动信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310438332.7A CN116192922B (zh) | 2023-04-23 | 2023-04-23 | 一种测试用例的下发管理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310438332.7A CN116192922B (zh) | 2023-04-23 | 2023-04-23 | 一种测试用例的下发管理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116192922A CN116192922A (zh) | 2023-05-30 |
CN116192922B true CN116192922B (zh) | 2023-08-11 |
Family
ID=86434751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310438332.7A Active CN116192922B (zh) | 2023-04-23 | 2023-04-23 | 一种测试用例的下发管理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192922B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324962A (zh) * | 2018-08-17 | 2019-02-12 | 中国平安人寿保险股份有限公司 | 一种基于云物联技术的应用程序的测试方法及设备 |
CN110162481A (zh) * | 2019-05-31 | 2019-08-23 | 北京星网锐捷网络技术有限公司 | 一种软件测试方法、装置、设备以及存储介质 |
CN111190810A (zh) * | 2019-08-26 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 执行测试任务的方法、装置、服务器和存储介质 |
CN112015715A (zh) * | 2019-05-28 | 2020-12-01 | 清华大学 | 工业互联网数据管理服务测试方法及系统 |
CN112306880A (zh) * | 2020-11-02 | 2021-02-02 | 百度在线网络技术(北京)有限公司 | 测试方法、装置、电子设备和计算机可读存储介质 |
CN112433936A (zh) * | 2020-11-17 | 2021-03-02 | 平安消费金融有限公司 | 测试方法、装置及存储介质 |
CN112527630A (zh) * | 2020-11-18 | 2021-03-19 | 平安消费金融有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN114416547A (zh) * | 2022-01-07 | 2022-04-29 | 经纬恒润(天津)研究开发有限公司 | 基于测试用例的测试方法 |
CN115297024A (zh) * | 2022-08-19 | 2022-11-04 | 山石网科通信技术股份有限公司 | 网络安全设备的性能测试方法、装置及电子设备 |
CN115454869A (zh) * | 2022-09-21 | 2022-12-09 | 中国平安人寿保险股份有限公司 | 界面自动化测试方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10877875B2 (en) * | 2019-03-05 | 2020-12-29 | Verizon Patent And Licensing Inc. | Systems and methods for automated programmatic test generation and software validation |
-
2023
- 2023-04-23 CN CN202310438332.7A patent/CN116192922B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324962A (zh) * | 2018-08-17 | 2019-02-12 | 中国平安人寿保险股份有限公司 | 一种基于云物联技术的应用程序的测试方法及设备 |
CN112015715A (zh) * | 2019-05-28 | 2020-12-01 | 清华大学 | 工业互联网数据管理服务测试方法及系统 |
CN110162481A (zh) * | 2019-05-31 | 2019-08-23 | 北京星网锐捷网络技术有限公司 | 一种软件测试方法、装置、设备以及存储介质 |
CN111190810A (zh) * | 2019-08-26 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 执行测试任务的方法、装置、服务器和存储介质 |
CN112306880A (zh) * | 2020-11-02 | 2021-02-02 | 百度在线网络技术(北京)有限公司 | 测试方法、装置、电子设备和计算机可读存储介质 |
CN112433936A (zh) * | 2020-11-17 | 2021-03-02 | 平安消费金融有限公司 | 测试方法、装置及存储介质 |
CN112527630A (zh) * | 2020-11-18 | 2021-03-19 | 平安消费金融有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN114416547A (zh) * | 2022-01-07 | 2022-04-29 | 经纬恒润(天津)研究开发有限公司 | 基于测试用例的测试方法 |
CN115297024A (zh) * | 2022-08-19 | 2022-11-04 | 山石网科通信技术股份有限公司 | 网络安全设备的性能测试方法、装置及电子设备 |
CN115454869A (zh) * | 2022-09-21 | 2022-12-09 | 中国平安人寿保险股份有限公司 | 界面自动化测试方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于JTest的自动化单元测试技术;高远等;指挥信息系统与技术;第9卷(第4期);91-95 * |
Also Published As
Publication number | Publication date |
---|---|
CN116192922A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558525B (zh) | 一种测试数据集的生成方法、装置、设备和存储介质 | |
CN105630684B (zh) | 软件开发工具包识别方法和装置 | |
CN111209202A (zh) | 终端应用测试方法和装置 | |
CN110460584B (zh) | 访问请求处理方法、装置、电子设备和计算机可读介质 | |
CN109684188A (zh) | 测试方法和装置 | |
CN112463256A (zh) | 确定配置文件的方法、系统、电子设备及存储介质 | |
CN116048987A (zh) | 流程业务的处理方法、装置、电子设备、系统和存储介质 | |
CN114398044A (zh) | 车辆控制和软件配置方法、装置、电子设备及存储介质 | |
CN116192922B (zh) | 一种测试用例的下发管理方法、装置及系统 | |
CN109308257A (zh) | 测试任务执行方法、装置、电子设备及计算机存储介质 | |
CN112527678A (zh) | 用于测试协议的方法、装置、设备以及存储介质 | |
CN116881166A (zh) | 一种测试脚本的生成方法、装置及系统 | |
CN109218338A (zh) | 信息处理系统、方法和装置 | |
CN109144864B (zh) | 用于测试窗口的方法及装置 | |
CN114285774B (zh) | 流量录制方法、装置、电子设备及存储介质 | |
CN107247661B (zh) | 支持对应用的安装包进行自动化验证的方法和系统 | |
CN109800330A (zh) | 一种数据处理方法及装置 | |
CN113342353B (zh) | 一种mock数据生成方法和装置 | |
CN114416597A (zh) | 测试用例记录的生成方法和装置 | |
CN111711605B (zh) | 一种用于物联网平台的数据协议主动解析方法 | |
CN115062571A (zh) | 应用于集成电路器件的数据区域动态选取方法、系统、设备和计算机可读存储介质 | |
CN114510305A (zh) | 模型训练方法、装置、存储介质及电子设备 | |
CN111045724A (zh) | 调用链信息的查询方法、装置和可读存储介质 | |
CN109298831B (zh) | 信息存储方法和装置 | |
JP2009529162A (ja) | ポータブルトランザクションフォーマットを使用したデバイス構成およびデータ抽出方法 |
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 |