本发明涉及通信技术领域,尤其涉及一种测试方法、装置、系统、终端设备及计算机可读存储介质。
背景技术:
随着计算机及通信技术的发展,智能手机、平板电脑、智能穿戴设备等终端设备的功能越来越多,智能化程度也越来越高,但是出现功能不兼容的情况也越来越多。因此,为了提高设备的稳定性,需要对新开发的设备进行兼容测试。目前的兼容测试需要覆盖的机型比较多,各个公司一般都是用真机进行手工测试,测试效率比较慢,并且由于需要不停的在各个手机安装测试app(application,应用程序)去进行测试,耗时耗力。
技术实现要素:
本发明实施例提供一种测试方法、装置、系统、终端设备及计算机可读存储介质,可实现多机型兼容性的自动测试,节省测试时间,提高测试效率,降低测试成本。
本发明实施例第一方面提供一种测试方法,包括:
分别获取各测试用例各自对应的至少一个目标机型和目标操作系统;将局域网中机型和操作系统与所述目标机型和目标操作系统相匹配的设备确定为测试设备;执行各所述测试用例,按照预设的脚本从方法库中分别调用各所述测试用例关联的公共方法和公共变量,以控制各所述测试设备执行预设操作;接收各所述测试设备返回的执行所述预设操作时产生的测试数据,并生成包含所述测试数据的测试报告。
本发明实施例第二方面提供一种测试装置,包括:
获取模块,用于分别获取各测试用例各自对应的至少一个目标机型和目标操作系统;确定模块,用于将局域网中机型和操作系统与所述目标机型和目标操作系统相匹配的设备确定为测试设备;测试模块,用于执行各所述测试用例,按照预设的脚本从方法库中分别调用各所述测试用例关联的公共方法和公共变量,以控制各所述测试设备执行预设操作;生成模块,用于接收各所述测试设备返回的执行所述预设操作时产生的测试数据,并生成包含所述测试数据的测试报告。
本发明实施例第三方面提供了一种终端设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述本发明实施例第一方面提供的测试方法。
本发明实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述本发明实施例第一方面提供的测试方法。
本发明实施例第五方面提供了一种测试系统,包括:多个测试设备以及主控设备,多个所述测试设备与所述主控设备通过光缆连接在一起;其中,所述主控设备包括如上述本发明第三实施例提供的终端设备;所述测试设备,用于根据所述主控设备发送的控制指令,执行对应的预设操作,以及记录执行所述预设操作时产生的测试数据,并发送给所述主控设备。
本发明实施例中,通过在局域网中自动匹配各测试用例适用的测试设备,并按照预设的脚本从方法库中分别调用各测试用例关联的公共方法和公共变量,以控制各测试设备执行预设操作,然后根据各测试设备返回的测试数据生成测试报告,实现了测试的自动化执行,从而节省了人力和测试时间,并可在提升测试效率的同时保证测试质量。
附图说明
图1为本发明第一实施例提供的测试方法的实现流程示意图;
图2为本发明实施例提供的测试方法一实际应用场景的示意图;
图3为本发明第二实施例提供的测试方法的实现流程示意图;
图4为本发明第三实施例提供的一种电子设备的结构示意图;
图5为本发明第四实施例提供的一种电子设备的结构示意图;
图6为本发明一实施例提供的移动终端的硬件结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,为本发明第一实施例提供的一种测试方法的实现流程示意图。该测试方法可应用于计算机设备中。如图1所示,该方法主要包括以下步骤:
101、分别获取各测试用例各自对应的至少一个目标机型和目标操作系统;
具体的,计算机设备中配置有至少一个测试用例。测试用例,用于描述对一项特定的软件产品进行的测试任务,如:输入、动作、执行条件以及预期结果等等,其目的是为了测试某个程序路径或确定应用程序的某个特性是否满足某个特定需求。测试用例的内容可以但不限于包括:测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等等。其中,测试脚本用于定义测试用例所要实现的操作步骤的先后顺序及具体内容。
可选的,可以通过多个测试模块分别获取各测试用例各自适用的测试设备的目标机型和目标操作系统。或者,也可以通过一个测试模块,依次执行步骤101至103。
102、将局域网中机型和操作系统与目标机型和目标操作系统相匹配的设备确定为测试设备;在一实际应用场景中,如图2所示,计算机设备与多个不同机型和操作系统的测试设备a、b、c可以通过光缆组成局域网。测试设备a的机型为iphone6,操作系统为ios8;测试设备b的机型为iphone7,操作系统为ios10;测试设备c的机型为华为mata8,操作系统为android6.0。
可选的,基于不同的测试目的,计算机设备可以与多个不同机型和操作系统的测试设备组成多个局域网,比如:计算机设备与测试设备a、b、c构成第一局域网,与测试设备b、c、d、e构成第二局域网,与测试设备a、c、f、g构成第三局域网。
可选的,除了光缆,还可以通过其他方式组成局域网,如:wifi(无线保真)、双绞线、同轴电缆等等。
计算机设备获取局域网中各设备的机型和操作系统,并将获取的机型和操作系统与测试用例适用的测试设备的目标机型和目标操作系统进行匹配,以筛选中局域网中该测试用例适用的设备,作为测试设备。
可选的,测试用例与局域网一一对应,各局域网中的设备不重叠,以便于同时进行多个测试用例的测试,提高测试效率。
或者,多个测试用例也可以对于同一个局域网,依次进行多个测试用例的测试,相对于多局域网的配置可降低测试成本。
103、执行各测试用例,按照预设的脚本从方法库中分别调用各测试用例关联的公共方法和公共变量,以控制各测试设备执行预设操作;计算机设备中设置有方法库,或者,也可以称之为测试套。测试套用于保存预定义的公共方法和变量,比如定义一个tunnel的创建方法,create_tunnel_info,该方法返回的值为tunnelname,tunnelmold,定义一个公共变量@number=5等等。在执行测试用例时,可按照预设的测试脚本直接从测试套中调用公共方法和公共变量,生成测试指令并向至少一个测试设备发送,以控制各测试设备根据接收的测试指令执行对应的预设操作。
104、接收各测试设备返回的执行预设操作时产生的测试数据,并生成包含测试数据的测试报告。
各测试设备根据接收的测试指令执行对应的预设操作,并记录执行对应的预设操作时产生的测试数据,然后将记录的测试数据返回给计算机设备。计算机设备对各测试设备返回的测试数据进行统计并生成包含测试数据的测试报告。
本发明实施例提供的测试方法,通过在局域网中自动匹配各测试用例适用的测试设备,并按照预设的脚本从方法库中分别调用各测试用例关联的公共方法和公共变量,以控制各测试设备执行预设操作,然后根据各测试设备返回的测试数据生成测试报告,实现了测试的自动化执行,从而节省了人力和测试时间,并可在提升测试效率的同时保证测试质量。
请参阅图3,为本发明第二实施例提供的一种测试方法的实现流程示意图。如图3所示,该方法主要包括以下步骤:
201、分别获取各测试用例各自对应的至少一个目标机型和目标操作系统;具体的,计算机设备中配置有至少一个测试用例。测试用例,用于描述对一项特定的软件产品进行的测试任务,如:输入、动作、执行条件以及预期结果等等,其目的是为了测试某个程序路径或确定应用程序的某个特性是否满足某个特定需求。测试用例的内容可以但不限于包括:测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等等。其中,测试脚本用于定义测试用例所要实现的操作步骤的先后顺序及具体内容。
可选的,可以通过多个测试模块分别获取各测试用例各自适用的测试设备的目标机型和目标操作系统。或者,也可以通过一个测试模块,依次执行步骤202至206。
202、调用方法库中测试用例对应的引导方法,得到测试用例对应的组网图,并通过组网图得到局域网中各设备的机型和操作系统的信息;基于不同的测试目的,计算机设备可以与多个相同或不同机型和操作系统的测试设备组成多个局域网,比如:计算机设备与测试设备a、b、c构成第一局域网,与测试设备b、c、d、e构成第二局域网,与测试设备a、c、f、g构成第三局域网。
可选的,除了光缆,还可以通过其他方式组成局域网,如:wifi(无线保真)、双绞线、同轴电缆等等。
计算机设备中设置有方法库,或者,也可以称之为测试套。测试套用于保存预定的引导(boot)方法,boot方法用于定义不同测试用例与各自适用的组网图之间的对应关系。组网图用于记录测试用例对应的局域网中各设备的机型和操作系统的信息。
结合图2,在一实际应用场景中,假设有3个测试用例,计算机设备与手机a组成与用例1对应的第一局域网,计算机设备与手机b组成与用例2对应的第二局域网,计算机设备与手机c组成与用例3对应的第三局域网,用例1使用a,用例2使用b,用例3使用c,通过boot方法,可以指定用例1的boot=a,用例2的boot=b,用例3的boot=c。
203、获取局域网中的各设备的工作状态;
设备的工作状态包括:测试状态和空闲状态。可选的,可通过广播工作状态获取请求的方式,得到局域网中的各设备的工作状态。或者,也可通过分别向各设备发送工作状态获取请求的方式,得到局域网中的各设备的工作状态。
204、将局域网中工作状态为空闲状态的设备中,机型和操作系统与目标机型和目标操作系统相匹配的设备确定为测试设备;
可以理解的,由于局域网中可能存在多个相同类型的和操作系统的设备,选择其中空闲状态的设备作为测试设备,可以节省等待测试的时间,提高测试效率。
205、执行各测试用例,按照预设的脚本从方法库中分别调用各测试用例关联的公共方法和公共变量,以控制各测试设备执行预设操作;
测试套还用于保存预定义的公共方法和变量,比如定义一个tunnel的创建方法,create_tunnel_info,该方法返回的值为tunnelname,tunnelmold,定义一个公共变量@number=5等等。在执行测试用例时,可按照预设的测试脚本直接从测试套中调用公共方法和公共变量,生成测试指令并向至少一个测试设备发送,以控制各测试设备根据接收的测试指令执行对应的预设操作。
206、接收各测试设备返回的执行预设操作时产生的测试数据,并生成包含测试数据的测试报告。
各测试设备根据接收的测试指令执行对应的预设操作,并记录执行对应的预设操作时产生的测试数据,然后将记录的测试数据返回给计算机设备。计算机设备对各测试设备返回的测试数据进行统计并生成包含测试数据的测试报告。
本发明实施例提供的测试方法,通过在局域网中自动匹配各测试用例适用的测试设备,并按照预设的脚本从方法库中分别调用各测试用例关联的公共方法和公共变量,以控制各测试设备执行预设操作,然后根据各测试设备返回的测试数据生成测试报告,实现了测试的自动化执行,从而节省了人力和测试时间,并可在提升测试效率的同时保证测试质量。
请参阅图4,为本发明第三实施例提供的一种测试装置的结构示意图。该装置可用于实现上述图1所示实施例提供的测试方法。如图4所示,该装置主要包括:
获取模块301,用于分别获取各测试用例各自对应的至少一个目标机型和目标操作系统;
确定模块302,用于将局域网中机型和操作系统与该目标机型和目标操作系统相匹配的设备确定为测试设备;
测试模块303,用于执行各该测试用例,按照预设的脚本从方法库中分别调用各该测试用例关联的公共方法和公共变量,以控制各该测试设备执行预设操作;
生成模块304,用于接收各该测试设备返回的执行该预设操作时产生的测试数据,并生成包含该测试数据的测试报告。
需要说明的是,以上图4示例的测试装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将移动终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,在实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成。本说明书提供的各个实施例都可应用上述描述原则,以下不再赘述。
本实施例提供的测试装置中各功能模块实现各自功能的具体过程,请参见上述图1所示实施例中描述的具体内容,此处不再赘述。
本发明实施例提供的测试装置,通过在局域网中自动匹配各测试用例适用的测试设备,并按照预设的脚本从方法库中分别调用各测试用例关联的公共方法和公共变量,以控制各测试设备执行预设操作,然后根据各测试设备返回的测试数据生成测试报告,实现了测试的自动化执行,从而节省了人力和测试时间,并可在提升测试效率的同时保证测试质量。
请参阅图5,为本发明第四实施例提供的一种测试装置的结构示意图。该测试装置可用于实现上述图1和图3所示实施例提供的测试方法。与图4所示的测试装置不同的是,于本实施例中,进一步的,确定模块302包括:
获取子模块3021,用于获取该测试用例对应的组网图,通过该组网图得到该局域网中各设备的机型和操作系统的信息,该组网图用于记录该测试用例对应的局域网中各设备的机型和操作系统的信息;获取子模块3021,还用于获取该局域网中的各设备的工作状态;
确定子模块3022,用于将该局域网中工作状态为空闲状态的设备中,机型和操作系统与该目标机型和目标操作系统相匹配的设备确定为测试设备。
进一步的,该方法库中记录有用于定义该测试用例与该组网图的调用关系的引导方法,获取子模块3021具体用于调用该方法库中该测试用例对应的引导方法,得到该测试用例对应的组网图。
本实施例提供的测试装置中各功能模块实现各自功能的具体过程,请参见上述图1和图3所示实施例中描述的具体内容,此处不再赘述。
本发明实施例提供的测试装置,通过在局域网中自动匹配各测试用例适用的测试设备,并按照预设的脚本从方法库中分别调用各测试用例关联的公共方法和公共变量,以控制各测试设备执行预设操作,然后根据各测试设备返回的测试数据生成测试报告,实现了测试的自动化执行,从而节省了人力和测试时间,并可在提升测试效率的同时保证测试质量。
请参阅图6,图6为本发明一实施例提供的终端设备的硬件结构示意图。
本实施例中所描述的终端设备,包括:
存储器51、处理器52及存储在存储器51上并可在处理器52上运行的计算机程序,处理器52执行该计算机程序时,实现前述图1和图3所示实施例中描述的测试方法。
进一步的,该终端设备还包括:
至少一个输入设备53以及至少一个输出设备54。
上述存储器51、处理器52、输入设备53以及输出设备54,通过总线56连接。
其中,输入设备53具体可为摄像头、触控面板、物理按键或者鼠标等等。输出设备54具体可为显示屏。
存储器51可以是高速随机存取记忆体(ram,randomaccessmemory)存储器,也可为非不稳定的存储器(non-volatilememory),例如磁盘存储器。存储器51用于存储一组可执行程序代码,处理器52与存储器51耦合。
进一步的,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的终端设备中,该计算机可读存储介质可以是前述图6所示实施例中的存储器。该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述图1和图3所示实施例中描述的测试方法。进一步的,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器(rom,read-onlymemory)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
进一步的,本发明实施例还提供一种测试系统。该测试系统包括多个测试设备以及主控设备,多个测试设备与主控设备通过光缆连接在一起。其中,主控设备包括如图6所示的终端设备;
主控设备,用于分别获取各测试用例各自对应的至少一个目标机型和目标操作系统;将局域网中机型和操作系统与该目标机型和目标操作系统相匹配的设备确定为测试设备;执行各该测试用例,按照预设的脚本从方法库中分别调用各该测试用例关联的公共方法和公共变量,以控制各该测试设备执行预设操作;以及接收各该测试设备返回的执行该预设操作时产生的测试数据,并生成包含该测试数据的测试报告。
测试设备,用于根据主控设备发送的控制指令,执行对应的预设操作,以及记录执行预设操作时产生的测试数据,并发送给主控设备。
上述关于测试系统未尽之细节,具体可参考上述第一至第四实施例中的相关描述,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种测试方法、装置、系统、终端设备及计算机可读存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。