发明内容
本发明实施例所要解决的技术问题在于,提供一种参数测试方法和装置。可以实现自动化测试,提高测试效率。
为了解决上述技术问题,本发明实施例提供了一种参数测试方法,包括:
生成多个测试用例文件,所述测试用例文件中包括多个测试参数;
父进程启动子进程导入所述测试用例文件执行测试。
其中,所述子进程导入所述测试用例文件执行测试包括:
所述子进程搜索所述多个测试用例文件中未被操作的测试用例文件;
所述子进程导入所述未被操作的测试用例文件执行测试,并将将要导入的未被操作的测试用例文件进行测试标记,所述测试标记用以标记该测试用例文件已被操作过。
所述方法还可包括:
当执行所述测试用例文件测试完成后,将成功执行的测试用例文件移动到成功文件夹,将执行中出现可控错误的测试用例文件移动到错误文件夹;或/和,
当执行所述测试用例文件测试中出现崩溃时,将该测试用例文件保存在原文件夹,并由所述父进程重启子进程进行测试。
所述生成多个测试用例文件包括:
根据待测试参数生成正交组合参数;
将所述正交组合参数分别保存在多个测试用例文件中。
相应的,本发明实施例还提供了一种参数测试装置,包括:
存储单元,用于存储预先生成的多个测试用例文件,所述测试用例文件中包括多个测试参数;
测试单元,用于由父进程启动子进程导入所述测试用例文件执行测试。
其中,所述测试单元可包括:
父进程执行子单元,用于执行父进程;
子进程执行子单元,用于执行所述父进程的子进程,所述子进程搜索所述多个测试用例文件中未被操作的测试用例文件;所述子进程导入所述未被操作的测试用例文件执行测试,并将将要导入的未被操作的测试用例文件进行测试标记,所述测试标记用以标记该测试用例文件已被操作过。
所述装置还包括:
文件夹管理单元,用于当执行所述测试用例文件测试完成后,将成功执行的测试用例文件移动到成功文件夹,将执行中出现可控错误的测试用例文件移动到错误文件夹;或/和还包括,
重启单元,用于当执行所述测试用例文件测试中出现崩溃时,将该测试用例文件保存在原文件夹,并通知所述测试单元由所述父进程重启子进程进行测试。
所述装置还包括正交生成单元,用于根据待测试参数生成正交组合参数;相应的,所述存储单元还用于存储分别保存有所述正交组合参数的多个测试用例文件。
在本发明实施例中,通过父进程启动子进程,由子进程根据测试用例文件自动进行测试,实现了整个测试过程的自动化,同时,若测试过程中出现崩溃,也仅仅只是子进程的崩溃,还可以由父进程重新启动子进程进行测试,提高了测试的效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,提出预先生成多个测试用例文件用于测试参数的自动输入,同时采用具有父进程的子进程来执行测试,一方面可以实现整个测试过程的自动化,另一方面也可以保证当子进程崩溃时不会引起整个测试过程的中断。
如图1所示,为本发明实施例中的参数测试方法的一个具体流程示意图。该流程包括如下步骤。
101、生成多个测试用例文件,所述测试用例文件中包括多个测试参数。
在生成测试用例文件时,可以根据待测试参数生成正交组合参数;在将所述正交组合参数分别保存在多个测试用例文件中。
102、父进程启动子进程导入所述测试用例文件执行测试。在本步骤中,在子进程导入所述测试用例文件执行测试时,可由子进程搜索所述多个测试用例文件中未被操作的测试用例文件,然后该子进程导入所述未被操作的测试用例文件执行测试,并将将要导入的未被操作的测试用例文件进行测试标记,所述测试标记用以标记该测试用例文件已被操作过。
同时,在执行所述测试用例文件测试完成后,还可以包括如下步骤:将成功执行的测试用例文件移动到成功文件夹,将执行中出现可控错误的测试用例文件移动到错误文件夹;或/和,当执行所述测试用例文件测试中出现崩溃时,将该测试用例文件保存在原文件夹,并由所述父进程重启子进程进行测试。
对于出现崩溃的情况时,则将该出现崩溃的测试用例文件保存在原文件夹,由于该文件在被导入子进程执行前已经被子进程进行了测试标记,即认为该文件为已操作,当重启子进程进行测试时不会重新导入该文件进行测试,避免了再次由于同样的文件而导致崩溃。
相应于上述方法,如图2所示,为本发明实施例中的参数测试装置的一个具体组成示意图,该装置包括:存储单元20,用于存储预先生成的多个测试用例文件,所述测试用例文件中包括多个测试参数;测试单元22,用于由父进程启动子进程导入所述测试用例文件执行测试。
其中, 所述装置还可包括:文件夹管理单元24(图中虚线所示),用于当执行所述测试用例文件测试完成后,将成功执行的测试用例文件移动到成功文件夹,将执行中出现可控错误的测试用例文件移动到错误文件夹;或/和还包括,重启单元26(图中虚线所示),用于当执行所述测试用例文件测试中出现崩溃时,将该测试用例文件保存在原文件夹,并通知所述测试单元由所述父进程重启子进程进行测试。
进一步的,所述装置还可包括正交生成单元(图中虚线所示)21,用于根据待测试参数生成正交组合参数;相应的,所述存储单元20还用于存储分别保存有所述正交组合参数的多个测试用例文件。图2中所示,为上述各单元都包括的情况。当然,在不同的具体实施例中的参数测试装置的组成可以有多种组合情况,此处不做赘述。
如图3所示,图2中的测试单元22可包括:父进程执行子单元220,用于执行父进程;子进程执行子单元222,用于执行所述父进程的子进程,所述子进程搜索所述多个测试用例文件中未被操作的测试用例文件;所述子进程导入所述未被操作的测试用例文件执行测试,并将将要导入的未被操作的测试用例文件进行测试标记,所述测试标记用以标记该测试用例文件已被操作过。
在本发明实施例中,通过父进程启动子进程,由子进程根据测试用例文件自动进行测试,实现了整个测试过程的自动化,同时,若测试过程中出现崩溃,也仅仅只是子进程的崩溃,还可以由父进程重新启动子进程进行测试,提高了测试的效率。
以下以音视频编解码软件的测试为例,进一步说明本发明的具体实施例。如图4所示,为本发明实施例中的音视频参数测试方法的一个具体流程示意图,该流程包括如下步骤。
401、根据分辨率、帧率、视频码率、采样率、声道数、音频码率等自动生成正交参数组合。如一组分辨率:320*240、640*480,帧率:23.97、25、29.97、码率:128000、64000,采样率:44100、32000、声道数:2、6,音频码率:64000、128000,生成正交参数组合(即穷举参数的组合),如表1所示,即进行穷举,得到各种组合,总共2*3*2*2*2*2=96条测试用例。
表1:
402、根据正交参数组合再与输入音视频文件列表、编码器参数组成正交组合参数,并将这些正交组合参数存储在测试用例文件中,测试用例文件则保存于临时文件夹中。
如将上例中第一组合320*240 23.97 128000 44100 2 64000与输入的音视频文件列表、编码器参数(系统另外存储的参数)进行正交组合,得到内容为MP4 320*240 23.97 MP4V 128000 44100 2 MP3 64000的正交组合参数文件,保存于临时文件夹中;该临时文件夹保存有各个组成的正交组合参数文件。
403、父进程(或称主进程)启动子进程导入一个测试用例文件执行音视频转换操作。在本例中,主进程只启动一个子进程,主进程和子进程之间无参数传递,主进程负责守护子进程,子进程崩溃时,由主进程重新启动子进程。
当子进程执行测试用例文件开始前,子进程搜索临时文件夹中未被操作的测试用例文件(可以搜索标记字段不为1的测试用例文件),然后导入搜索到的未被操作的测试用例文件,同时,子进程将要导入的该未被操作的测试用例文件中的标记字段置1(表明该测试用例文件已经被操作过)。
404、执行测试用例完成后,将成功执行的测试用例文件移动到A文件夹,或/和将执行过程中出现可控错误的测试用例文件移动到B文件夹,之后执行下一个未操作的测试用例文件。若执行过程中出现崩溃的现象,则该测试用例文件保留在原文件夹(即临时文件夹中,该临时文件夹中只保存有未被操作的测试用例文件以及被操作过但出现崩溃的测试用例文件),并由父进程重启子进程,子进程在测试用例文件夹中寻找未操作的测试用例文件,执行测试。
需要说明的是,子进程将要导入的未被操作的测试用例文件中的标记字段置1后才执行测试的原因是:如果该测试用例文件在执行测试过程中出现崩溃时,父进程将自动重启子进程,而该测试用例文件已经被操作了,其标记字段已经置1,系统不会再重复地执行该测试用例文件,也不会重复重启。
需要说明的是,以本提案是音视频的编解码软件为例,若该测试用例文件测试成功,即表明,可以获取原文件信息,可以编解码,可以获取生成出来的文件的信息,且这些信息与设定的编码参数在可承受范围之内。
综上所述可知,该本发明实施例中所提供的方法和装置能够将指定的资源全部自动进行导入、音视频转换、检查输出文件的操作,而且能够尝试所有可能的编码参数正交组合。期间无须人工干预。可以极大的提高了测试人员的工作效率,提高了测试资源的覆盖。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。