CN104750537B - 一种执行测试用例的方法和装置 - Google Patents

一种执行测试用例的方法和装置 Download PDF

Info

Publication number
CN104750537B
CN104750537B CN201310751996.5A CN201310751996A CN104750537B CN 104750537 B CN104750537 B CN 104750537B CN 201310751996 A CN201310751996 A CN 201310751996A CN 104750537 B CN104750537 B CN 104750537B
Authority
CN
China
Prior art keywords
virtual machine
test
test execution
execution agent
state
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
Application number
CN201310751996.5A
Other languages
English (en)
Other versions
CN104750537A (zh
Inventor
林奕
潘在亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310751996.5A priority Critical patent/CN104750537B/zh
Publication of CN104750537A publication Critical patent/CN104750537A/zh
Application granted granted Critical
Publication of CN104750537B publication Critical patent/CN104750537B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种执行测试用例的方法和装置,其中,所述方法包括:将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理;在所述测试执行代理根据所述测试代码执行所述测试用例过程中,检测虚拟机状态;当检测到所述虚拟机状态为异常状态时,记录虚拟机的异常错误信息。采用本发明,可通过在虚拟机中执行测试用例,以避免虚拟机的宿主机器出现蓝屏错误,从而保证了测试执行的稳定性。

Description

一种执行测试用例的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种执行测试用例的方法和装置。
背景技术
软件测试已经变得越来越普及了,并且软件测试在开发项目的过程中占据着非常重要的地位。
在现有技术中,软件测试的方法可以是单机执行测试。所述单机执行测试,是指测试执行和执行控制都在同一个机器上,这种测试执行方案虽然简单、成本低,但是当执行某些测试用例而导致***蓝屏错误时,将无法保证测试执行的稳定性。
发明内容
本发明实施例所要解决的技术问题在于,提供一种执行测试用例的方法和装置,可通过在虚拟机中执行测试用例,以保证测试执行的稳定性。
本发明实施例第一方面提供了一种执行测试用例的方法,可包括:
将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理;
在所述测试执行代理根据所述测试代码执行所述测试用例过程中,检测虚拟机状态;
当检测到所述虚拟机状态为异常状态时,记录虚拟机的异常错误信息。
本发明实施例第二方面提供了一种执行测试用例的装置,可包括:
测试执行接口模块,用于将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理;
虚拟机检测模块,用于在所述测试执行代理根据所述测试代码执行所述测试用例过程中,检测虚拟机状态;
虚拟机调试模块,用于当所述虚拟机检测模块检测到所述虚拟机状态为异常状态时,记录虚拟机的异常错误信息。
在本发明实施例中,通过在虚拟机中执行测试用例,使得在虚拟机执行某些测试用例而导致虚拟机出现蓝屏错误时,可以避免虚拟机的宿主机器出现蓝屏错误,从而保证了测试执行的稳定性,同时还可以及时记录关于虚拟机蓝屏错误的异常错误信息。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种执行测试用例的方法的流程示意图;
图2为本发明实施例提供的另一种执行测试用例的方法的流程示意图;
图3为本发明实施例提供的又一种执行测试用例的方法的流程示意图;
图4为本发明实施例提供的一种执行测试用例的装置的结构示意图;
图5为本发明实施例提供的另一种执行测试用例的装置的结构示意图;
图6为本发明实施例提供的一种虚拟机调试模块的结构示意图;
图7为本发明实施例提供的一种测试执行接口模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,为本发明实施例提供的一种执行测试用例的方法的流程示意图,所述方法包括:
S101,将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理;
具体的,在宿主机器中创建虚拟机,所述虚拟机主要提供一种沙盒的执行环境,并用于隔离对具有蓝屏错误风险的测试用例的执行,以避免宿主机器的***出现蓝屏错误。所述宿主机器可以将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理,以使所述测试执行代理执行所述测试用例。所述测试执行代理可以在虚拟机***中运行,主要提供一种远程执行的能力,并用于接收宿主***提交的测试用例并执行。
其中,所述测试代码也可以换成一种可执行程序,所述宿主机器将当前测试执行所需要的测试代码或可执行程序同步到虚拟机***中。所述宿主机器中还包括测试执行接口,所述测试执行接口用于提供给用户的使用接口和控制端。所述测试代码或可执行程序可以通过所述测试执行接口和所述测试执行代理之间的进程间通信通道传输,例如,通过RPC(Remote Procedure Call Protocol,远程过程调用协议)的方式传输所述测试代码或可执行程序;所述测试代码或可执行程序也可以通过所述测试执行接口和所述测试执行代理之间的网络文件***进行传输。
S102,在所述测试执行代理根据所述测试代码执行所述测试用例过程中,检测虚拟机状态;
具体的,在所述测试执行代理根据所述测试代码执行所述测试用例过程中,可以通过虚拟机调试器实时检测虚拟机状态,所述虚拟机调试器主要用于监控所述测试执行代理在执行测试用例时是否导致虚拟机发生蓝屏错误。所述虚拟机调试器是通过内核调试技术,并利用虚拟机的虚拟设备端口实现对虚拟机***的监控。对于不同的虚拟机***类型,需要使用不同的内核调试器。
当然,当虚拟机具备监控虚拟机状态的接口,也可以通过该接口代替虚拟机调试器。
S103,当检测到所述虚拟机状态为异常状态时,记录虚拟机的异常错误信息;
具体的,当检测到所述虚拟机状态为异常状态时,所述虚拟机调试器还可以记录虚拟机的异常错误信息。所述异常状态可以为发生蓝屏错误的状态,所述异常错误可以发生蓝屏错误时虚拟机的***上下文信息。在虚拟机发生蓝屏错误时,所述测试执行接口会失去与所述测试执行代理的连接。所述虚拟机调试器还可以将所述异常错误信息发送到所述测试执行接口,使用户可以通过所述测试执行接口查看所述异常错误信息。
在本发明实施例中,通过在虚拟机中执行测试用例,使得在虚拟机执行某些测试用例而导致虚拟机出现蓝屏错误时,可以避免虚拟机的宿主机器出现蓝屏错误,从而保证了测试执行的稳定性,同时还可以及时记录关于虚拟机蓝屏错误的异常错误信息。
再请参见图2,为本发明实施例提供的另一种执行测试用例的方法的流程示意图,所述方法包括:
S201,启动虚拟机并对所述虚拟机进行初始化;
具体的,在宿主机器中创建虚拟机,所述虚拟机主要提供一种沙盒的执行环境,并用于隔离对具有蓝屏错误风险的测试用例的执行,以避免宿主机器的***出现蓝屏错误。当需要在虚拟机中执行测试用例时,可以通过虚拟机控制器启动虚拟机并对所述虚拟机进行初始化。所述虚拟机控制器用于宿主***控制虚拟机启动、重启和恢复等等。虚拟机控制器是通过虚拟机提供的控制接口实现,根据使用的虚拟机***的不同,接口会有所差异。
S202,将测试代码同步到虚拟机中设置的测试执行代理;
所述宿主机器可以将测试代码同步到虚拟机中设置的测试执行代理。所述测试执行代理可以在虚拟机***中运行,主要提供一种远程执行的能力,并用于接收宿主***提交的测试用例并执行。
其中,所述测试代码也可以换成一种可执行程序,所述宿主机器将当前测试执行所需要的测试代码或可执行程序同步到虚拟机***中。所述宿主机器中还包括测试执行接口,所述测试执行接口用于提供给用户的使用接口和控制端。所述测试代码或可执行程序可以通过所述测试执行接口和所述测试执行代理之间的进程间通信通道传输,例如,通过RPC的方式传输所述测试代码或可执行程序;所述测试代码或可执行程序也可以通过所述测试执行接口和所述测试执行代理之间的网络文件***进行传输。
S203,对测试用例进行序列化处理,并将序列化后的测试用例发送到所述测试执行代理,以使所述测试执行代理对所述序列化后的测试用例进行反序列化处理以获取到所述测试用例;
具体的,在所述测试执行接口将所述测试用例发送到所述测试执行代理的过程中,所述测试执行接口对测试用例进行序列化处理,并将序列化后的测试用例发送到所述测试执行代理,以使所述测试执行代理对所述序列化后的测试用例进行反序列化处理以获取到所述测试用例。
S204,在所述测试执行代理根据所述测试代码执行所述测试用例过程中,检测虚拟机状态;
具体的,在所述测试执行代理根据所述测试代码执行所述测试用例过程中,可以通过虚拟机调试器实时检测虚拟机状态,所述虚拟机调试器主要用于监控所述测试执行代理在执行测试用例时是否导致虚拟机发生蓝屏错误。所述虚拟机调试器是通过内核调试技术,并利用虚拟机的虚拟设备端口实现对虚拟机***的监控。对于不同的虚拟机***类型,需要使用不同的内核调试器。
S205,当检测到所述虚拟机状态为异常状态时,采集虚拟机的***上下文信息;
S206,将所述虚拟机的***上下文信息记录为虚拟机的异常错误信息;
具体的,当检测到所述虚拟机状态为异常状态时,所述虚拟机调试器还可以采集虚拟机的***上下文信息,并将所述虚拟机的***上下文信息记录为虚拟机的异常错误信息。所述异常状态可以为发生蓝屏错误的状态,所述异常错误可以发生蓝屏错误时虚拟机的***上下文信息。在虚拟机发生蓝屏错误时,所述测试执行接口会失去与所述测试执行代理的连接。
S207,控制所述虚拟机重启和恢复;
在所述虚拟机调试器记录了所述异常错误信息之后,所述虚拟机控制器还可以控制所述虚拟机重启和恢复。
S208,提示所述虚拟机的异常错误信息;
在所述虚拟机调试器记录了所述异常错误信息之后,所述宿主机器可以向用户提示所述虚拟机的异常错误信息,其实现过程可以为:所述虚拟机调试器将记录得到的所述虚拟机的异常错误信息发送到所述测试执行接口,所述测试执行接口可以将所述虚拟机的异常错误信息发送到客户端,使用户可以查看所述虚拟机的异常错误信息。
在本发明实施例中,通过在虚拟机中执行测试用例,使得在虚拟机执行某些测试用例而导致虚拟机出现蓝屏错误时,可以避免虚拟机的宿主机器出现蓝屏错误,从而保证了测试执行的稳定性,同时还可以及时记录关于虚拟机蓝屏错误的异常错误信息。
再请参见图3,为本发明实施例提供的又一种执行测试用例的方法的流程示意图,所述方法包括:
S301,启动虚拟机并对所述虚拟机进行初始化;
具体的,在宿主机器中创建虚拟机,所述虚拟机主要提供一种沙盒的执行环境,并用于隔离对具有蓝屏错误风险的测试用例的执行,以避免宿主机器的***出现蓝屏错误。当需要在虚拟机中执行测试用例时,可以通过虚拟机控制器启动虚拟机并对所述虚拟机进行初始化。所述虚拟机控制器用于宿主***控制虚拟机启动、重启和恢复等等。虚拟机控制器是通过虚拟机提供的控制接口实现,根据使用的虚拟机***的不同,接口会有所差异。
S302,将测试代码同步到虚拟机中设置的测试执行代理;
所述宿主机器可以将测试代码同步到虚拟机中设置的测试执行代理。所述测试执行代理可以在虚拟机***中运行,主要提供一种远程执行的能力,并用于接收宿主***提交的测试用例并执行。
其中,所述测试代码也可以换成一种可执行程序,所述宿主机器将当前测试执行所需要的测试代码或可执行程序同步到虚拟机***中。所述宿主机器中还包括测试执行接口,所述测试执行接口用于提供给用户的使用接口和控制端。所述测试代码或可执行程序可以通过所述测试执行接口和所述测试执行代理之间的进程间通信通道传输,例如,通过RPC的方式传输所述测试代码或可执行程序;所述测试代码或可执行程序也可以通过所述测试执行接口和所述测试执行代理之间的网络文件***进行传输。
S303,对测试用例进行序列化处理,并将序列化后的测试用例发送到所述测试执行代理,以使所述测试执行代理对所述序列化后的测试用例进行反序列化处理以获取到所述测试用例;
具体的,在所述测试执行接口将所述测试用例发送到所述测试执行代理的过程中,所述测试执行接口对测试用例进行序列化处理,并将序列化后的测试用例发送到所述测试执行代理,以使所述测试执行代理对所述序列化后的测试用例进行反序列化处理以获取到所述测试用例。
S304,在所述测试执行代理根据所述测试代码执行所述测试用例过程中,检测虚拟机状态;
具体的,在所述测试执行代理根据所述测试代码执行所述测试用例过程中,可以通过虚拟机调试器实时检测虚拟机状态,所述虚拟机调试器主要用于监控所述测试执行代理在执行测试用例时是否导致虚拟机发生蓝屏错误。所述虚拟机调试器是通过内核调试技术,并利用虚拟机的虚拟设备端口实现对虚拟机***的监控。对于不同的虚拟机***类型,需要使用不同的内核调试器。
S305,当检测到所述虚拟机状态为正常状态时,判断所述测试执行代理是否成功执行完所述测试用例;
具体的,当所述虚拟机调试器检测到所述虚拟机状态为正常状态时,即虚拟机***正常运行,则可以判断所述测试执行代理是否成功执行完所述测试用例。当所述虚拟机调试器检测到所述虚拟机状态为异常状态时,即虚拟机***发生蓝屏错误,则可以记录关于虚拟机蓝屏错误的异常错误信息。
S306,接收所述测试执行代理发送的正常执行结果;
当S305的步骤中判断所述测试执行代理成功执行完所述测试用例时,可以通过所述测试执行接口接收所述测试执行代理发送的正常执行结果。
S307,接收所述测试执行代理发送的异常执行结果;
当S305的步骤中判断所述测试执行代理没有成功执行完所述测试用例时,可以通过所述测试执行接口接收所述测试执行代理发送的异常执行结果。
在本发明实施例中,通过在虚拟机中执行测试用例,使得在虚拟机执行某些测试用例而导致虚拟机出现蓝屏错误时,可以避免虚拟机的宿主机器出现蓝屏错误,从而保证了测试执行的稳定性,同时还可以及时记录关于虚拟机蓝屏错误的异常错误信息,并在虚拟机正常运行时也可以接收虚拟机执行完测试用例后的执行结果。
请参见图4,为本发明实施例提供的一种执行测试用例的装置1的结构示意图,所述执行测试用例的装置1包括:测试执行接口模块10、虚拟机检测模块20、虚拟机调试模块30;
所述测试执行接口模块10,用于将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理;
具体的,在宿主机器中创建虚拟机,所述虚拟机主要提供一种沙盒的执行环境,并用于隔离对具有蓝屏错误风险的测试用例的执行,以避免宿主机器的***出现蓝屏错误。所述测试执行接口模块10可以将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理,以使所述测试执行代理执行所述测试用例。所述测试执行代理可以在虚拟机***中运行,主要提供一种远程执行的能力,并用于接收宿主***提交的测试用例并执行。
其中,所述测试代码也可以换成一种可执行程序,所述测试执行接口模块10将当前测试执行所需要的测试代码或可执行程序同步到虚拟机***中。所述测试执行接口模块10可以为一种测试执行接口,所述测试执行接口是用于提供给用户的使用接口和控制端。所述测试代码或可执行程序可以通过所述测试执行接口模块10和所述测试执行代理之间的进程间通信通道传输,例如,通过RPC的方式传输所述测试代码或可执行程序;所述测试代码或可执行程序也可以通过所述测试执行接口模块10和所述测试执行代理之间的网络文件***进行传输。
所述虚拟机检测模块20,用于在所述测试执行代理根据所述测试代码执行所述测试用例过程中,检测虚拟机状态;
具体的,在所述测试执行代理根据所述测试代码执行所述测试用例过程中,所述虚拟机检测模块20可以实时检测虚拟机状态,所述虚拟机检测模块20可以为一种虚拟机调试器,所述虚拟机调试器主要用于监控所述测试执行代理在执行测试用例时是否导致虚拟机发生蓝屏错误。所述虚拟机调试器是通过内核调试技术,并利用虚拟机的虚拟设备端口实现对虚拟机***的监控。对于不同的虚拟机***类型,需要使用不同的内核调试器。
当然,当虚拟机具备监控虚拟机状态的接口,也可以通过该接口代替虚拟机调试器。
所述虚拟机调试模块30,用于当所述虚拟机检测模块20检测到所述虚拟机状态为异常状态时,记录虚拟机的异常错误信息;
具体的,当所述虚拟机检测模块20检测到所述虚拟机状态为异常状态时,所述虚拟机调试模块30可以记录虚拟机的异常错误信息。所述异常状态可以为发生蓝屏错误的状态,所述异常错误可以发生蓝屏错误时虚拟机的***上下文信息。在虚拟机发生蓝屏错误时,所述测试执行接口会失去与所述测试执行代理的连接。所述虚拟机调试模块30还可以将所述异常错误信息发送到所述测试执行接口,使用户可以通过所述测试执行接口模块10查看所述异常错误信息。所述虚拟机调试模块30和所述虚拟机检测模块20可以用属于一个虚拟机调试器。
在本发明实施例中,通过在虚拟机中执行测试用例,使得在虚拟机执行某些测试用例而导致虚拟机出现蓝屏错误时,可以避免虚拟机的宿主机器出现蓝屏错误,从而保证了测试执行的稳定性,同时还可以及时记录关于虚拟机蓝屏错误的异常错误信息。
再请参见图5,为本发明实施例提供的另一种执行测试用例的装置1的结构示意图,所述执行测试用例的装置1包括:测试执行接口模块10、虚拟机检测模块20、虚拟机调试模块30、判断模块40、虚拟机控制模块50;
所述测试执行接口模块10,用于将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理;
具体的,在宿主机器中创建虚拟机,所述虚拟机主要提供一种沙盒的执行环境,并用于隔离对具有蓝屏错误风险的测试用例的执行,以避免宿主机器的***出现蓝屏错误。所述测试执行接口模块10可以将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理,以使所述测试执行代理执行所述测试用例。所述测试执行代理可以在虚拟机***中运行,主要提供一种远程执行的能力,并用于接收宿主***提交的测试用例并执行。
其中,所述测试代码也可以换成一种可执行程序,所述测试执行接口模块10将当前测试执行所需要的测试代码或可执行程序同步到虚拟机***中。所述测试执行接口模块10可以为一种测试执行接口,所述测试执行接口是用于提供给用户的使用接口和控制端。所述测试代码或可执行程序可以通过所述测试执行接口模块10和所述测试执行代理之间的进程间通信通道传输,例如,通过RPC的方式传输所述测试代码或可执行程序;所述测试代码或可执行程序也可以通过所述测试执行接口模块10和所述测试执行代理之间的网络文件***进行传输。
所述虚拟机检测模块20,用于在所述测试执行代理根据所述测试代码执行所述测试用例过程中,检测虚拟机状态;
具体的,在所述测试执行代理根据所述测试代码执行所述测试用例过程中,所述虚拟机检测模块20可以实时检测虚拟机状态,所述虚拟机检测模块20可以为一种虚拟机调试器,所述虚拟机调试器主要用于监控所述测试执行代理在执行测试用例时是否导致虚拟机发生蓝屏错误。所述虚拟机调试器是通过内核调试技术,并利用虚拟机的虚拟设备端口实现对虚拟机***的监控。对于不同的虚拟机***类型,需要使用不同的内核调试器。
当然,当虚拟机具备监控虚拟机状态的接口,也可以通过该接口代替虚拟机调试器。
所述虚拟机调试模块30,用于当所述虚拟机检测模块20检测到所述虚拟机状态为异常状态时,记录虚拟机的异常错误信息;
具体的,当所述虚拟机检测模块20检测到所述虚拟机状态为异常状态时,所述虚拟机调试模块30可以记录虚拟机的异常错误信息。所述异常状态可以为发生蓝屏错误的状态,所述异常错误可以发生蓝屏错误时虚拟机的***上下文信息。在虚拟机发生蓝屏错误时,所述测试执行接口会失去与所述测试执行代理的连接。所述虚拟机调试模块30还可以将所述异常错误信息发送到所述测试执行接口,使用户可以通过所述测试执行接口模块10查看所述异常错误信息。所述虚拟机调试模块30和所述虚拟机检测模块20可以用属于一个虚拟机调试器。
所述判断模块40,用于当所述虚拟机检测模块20检测到所述虚拟机状态为正常状态时,判断所述测试执行代理是否成功执行完所述测试用例;
具体的,当所述虚拟机检测模块20检测到所述虚拟机状态为正常状态时,所述判断模块40可以判断所述测试执行代理是否成功执行完所述测试用例。此时,所述测试执行接口模块10,还用于若所述判断模块40判断为是,则接收所述测试执行代理发送的正常执行结果;所述测试执行接口模块10,还用于若所述判断模块40判断为否,则接收所述测试执行代理发送的异常执行结果。
所述虚拟机控制模块50,用于在所述虚拟机调试模块30记录虚拟机的异常错误信息之后,控制所述虚拟机重启和恢复;
具体的,所述虚拟机控制模块50可以在所述虚拟机调试模块30记录虚拟机的异常错误信息之后,控制所述虚拟机重启和恢复。所述虚拟机控制模块50可以为一种虚拟机控制器,所述虚拟机控制器用于宿主***控制虚拟机启动、重启和恢复等等。虚拟机控制器是通过虚拟机提供的控制接口实现,根据使用的虚拟机***的不同,接口会有所差异。
当需要在虚拟机中执行测试用例时,所述虚拟机控制模块50还用于启动虚拟机并对所述虚拟机进行初始化。
另外,所述测试执行接口模块10,还用于接收所述虚拟机调试模块30记录的所述虚拟机的异常错误信息,并提示所接收到的所述虚拟机的异常错误信息;
具体的,所述测试执行接口模块10可以将接收到的所述虚拟机的异常错误信息下发到客户端,使用户可以查看所述虚拟机的异常错误信息。
所述执行测试用例的装置1和虚拟机可以同属于一个宿主机器,这样不仅节约了成本,还保证了测试执行的稳定性。
进一步的,再请参见图6,为本发明实施例提供的一种虚拟机调试模块30的结构示意图,所述虚拟机调试模块30可以包括:采集单元301、信息记录单元302;
所述采集单元301,用于当所述虚拟机调试模块30检测到所述虚拟机状态为异常状态时,采集虚拟机的***上下文信息;
所述信息记录单元302,用于将所述虚拟机的***上下文信息记录为虚拟机的异常错误信息。
进一步的,再请参见图7,为本发明实施例提供的一种测试执行接口模块10的结构示意图,所述测试执行接口模块10可以包括:同步单元101、序列化发送单元102;
所述同步单元101,用于将测试代码同步到虚拟机中设置的测试执行代理;
所述序列化发送单元102,用于对测试用例进行序列化处理,并将序列化后的测试用例发送到所述测试执行代理,以使所述测试执行代理对所述序列化后的测试用例进行反序列化处理以获取到所述测试用例。
在本发明实施例中,通过在虚拟机中执行测试用例,使得在虚拟机执行某些测试用例而导致虚拟机出现蓝屏错误时,可以避免虚拟机的宿主机器出现蓝屏错误,从而保证了测试执行的稳定性,同时还可以及时记录关于虚拟机蓝屏错误的异常错误信息。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (11)

1.一种执行测试用例的方法,其特征在于,包括:
将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理;其中,所述测试代码是从宿主机器同步到所述测试执行代理中的,所述测试代码通过测试执行接口和所述测试执行代理的进程间通信通道传输;
其中,所述测试执行代理在虚拟机***中运行,用于接收所述测试用例并执行;
在所述测试执行代理根据所述测试代码执行所述测试用例过程中,检测虚拟机状态;
当检测到所述虚拟机状态为异常状态时,虚拟机调试器通过虚拟机的虚拟设备端口记录虚拟机的异常错误信息,其中,当所述异常状态为蓝屏错误时,所述测试执行接口失去与所述测试执行代理的连接;
所述虚拟机调试器将记录得到的所述虚拟机的异常错误信息发送到所述测试执行接口,所述测试执行接口将所述虚拟机的异常错误信息发送到客户端;
当所述虚拟机调试器记录虚拟机的异常错误信息之后,虚拟机控制器在所述宿主机器的控制下通过所述虚拟机提供的控制接口控制所述虚拟机启动或重启或恢复;当检测到所述虚拟机状态为正常状态时,判断所述测试执行代理是否成功执行完所述测试用例;若判断为是,则所述测试执行接口接收所述测试执行代理发送的正常执行结果;若判断为否,则所述测试执行接口接收所述测试执行代理发送的异常执行结果。
2.如权利要求1所述的方法,其特征在于,所述当检测到所述虚拟机状态为异常状态时,虚拟机调试器通过虚拟机的虚拟设备端口记录虚拟机的异常错误信息,包括:
当检测到所述虚拟机状态为异常状态时,采集虚拟机的***上下文信息;
将所述虚拟机的***上下文信息记录为虚拟机的异常错误信息。
3.如权利要求2所述的方法,其特征在于,所述将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理,包括:
将测试代码同步到虚拟机中设置的测试执行代理;
对测试用例进行序列化处理,并将序列化后的测试用例发送到所述测试执行代理,以使所述测试执行代理对所述序列化后的测试用例进行反序列化处理以获取到所述测试用例。
4.如权利要求3所述的方法,其特征在于,在所述当检测到所述虚拟机状态为异常状态时,虚拟机调试器通过虚拟机的虚拟设备端口记录虚拟机的异常错误信息的步骤之后,还包括:
提示所述虚拟机的异常错误信息。
5.如权利要求4所述的方法,其特征在于,在所述将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理的步骤之前,还包括:
启动虚拟机并对所述虚拟机进行初始化。
6.一种执行测试用例的装置,其特征在于,包括:
测试执行接口模块,用于将测试代码同步到虚拟机中设置的测试执行代理,并将测试用例发送到所述测试执行代理;其中,所述测试代码是从宿主机器同步到所述测试执行代理中的,所述测试代码通过所述测试执行接口模块和所述测试执行代理的进程间通信通道传输;
其中,所述测试执行代理在虚拟机***中运行,用于接收所述测试用例并执行;
虚拟机检测模块,用于在所述测试执行代理根据所述测试代码执行所述测试用例过程中,检测虚拟机状态;
虚拟机调试模块,用于当所述虚拟机检测模块检测到所述虚拟机状态为异常状态时,虚拟机调试器通过虚拟机的虚拟设备端口记录虚拟机的异常错误信息,其中,当所述异常状态为蓝屏错误时,所述测试执行接口失去与所述测试执行代理的连接;将记录得到的所述虚拟机的异常错误信息发送到所述测试执行接口模块,所述测试执行接口模块将所述虚拟机的异常错误信息发送到客户端;
虚拟机控制模块,用于在所述虚拟机调试器记录虚拟机的异常错误信息之后,虚拟机控制器在所述宿主机器的控制下通过所述虚拟机提供的控制接口控制所述虚拟机启动或重启或恢复;
判断模块,用于当所述虚拟机检测模块检测到所述虚拟机状态为正常状态时,判断所述测试执行代理是否成功执行完所述测试用例;
所述测试执行接口模块,还用于若所述判断模块判断为是,则接收所述测试执行代理发送的正常执行结果;
所述测试执行接口模块,还用于若所述判断模块判断为否,则接收所述测试执行代理发送的异常执行结果。
7.如权利要求6所述的装置,其特征在于,所述虚拟机调试模块包括:
采集单元,用于当所述虚拟机调试模块检测到所述虚拟机状态为异常状态时,采集虚拟机的***上下文信息;
信息记录单元,用于将所述虚拟机的***上下文信息记录为虚拟机的异常错误信息。
8.如权利要求7所述的装置,其特征在于,所述测试执行接口模块包括:
同步单元,用于将测试代码同步到虚拟机中设置的测试执行代理;
序列化发送单元,用于对测试用例进行序列化处理,并将序列化后的测试用例发送到所述测试执行代理,以使所述测试执行代理对所述序列化后的测试用例进行反序列化处理以获取到所述测试用例。
9.如权利要求8所述的装置,其特征在于,
所述测试执行接口模块,还用于接收所述虚拟机调试模块记录的所述虚拟机的异常错误信息,并提示所接收到的所述虚拟机的异常错误信息。
10.如权利要求9所述的装置,其特征在于,
所述虚拟机控制模块,还用于启动所述虚拟机并对所述虚拟机进行初始化。
11.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被执行时,用以实现如权利要求1-5任一项所述的方法。
CN201310751996.5A 2013-12-31 2013-12-31 一种执行测试用例的方法和装置 Active CN104750537B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310751996.5A CN104750537B (zh) 2013-12-31 2013-12-31 一种执行测试用例的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310751996.5A CN104750537B (zh) 2013-12-31 2013-12-31 一种执行测试用例的方法和装置

Publications (2)

Publication Number Publication Date
CN104750537A CN104750537A (zh) 2015-07-01
CN104750537B true CN104750537B (zh) 2020-07-14

Family

ID=53590283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310751996.5A Active CN104750537B (zh) 2013-12-31 2013-12-31 一种执行测试用例的方法和装置

Country Status (1)

Country Link
CN (1) CN104750537B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598594B (zh) * 2016-12-14 2020-09-01 捷开通讯(深圳)有限公司 一种快速恢复测试程序的测试***及方法
CN107729187A (zh) * 2017-11-03 2018-02-23 郑州云海信息技术有限公司 一种基于虚拟化平台的测试用例管理容灾方法及***
CN111355629B (zh) * 2020-02-17 2021-01-15 苏州亿歌网络科技有限公司 一种客户端的测试方法、装置、计算机设备及存储介质
CN113703913B (zh) * 2021-08-06 2024-04-23 长江存储科技有限责任公司 设备测试方法及装置
CN114117409A (zh) * 2021-11-19 2022-03-01 上海商汤临港智能科技有限公司 用户代码的运行方法及装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102637144A (zh) * 2012-03-31 2012-08-15 奇智软件(北京)有限公司 一种***故障的处理方法和装置
CN102779094A (zh) * 2012-08-21 2012-11-14 深圳中兴网信科技有限公司 终端和软件异常测试方法
CN102902599A (zh) * 2012-09-17 2013-01-30 华为技术有限公司 虚拟机内部故障处理方法、装置及***

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978401B2 (en) * 2002-08-01 2005-12-20 Sun Microsystems, Inc. Software application test coverage analyzer
US20050223362A1 (en) * 2004-04-02 2005-10-06 Gemstone Systems, Inc. Methods and systems for performing unit testing across multiple virtual machines
CN101252471B (zh) * 2008-03-20 2010-09-29 中兴通讯股份有限公司 一种分布式自动化测试***及其方法
CN101447892B (zh) * 2008-11-24 2011-12-28 中兴通讯股份有限公司 分布式测试方法和***、以及测试服务器
CN102736972B (zh) * 2011-03-30 2016-03-09 国际商业机器公司 对待测试应用的测试例进行处理的方法和***
CN102866950B (zh) * 2012-09-13 2016-04-20 浪潮(北京)电子信息产业有限公司 一种虚拟服务器的性能测试方法以及测试工具

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102637144A (zh) * 2012-03-31 2012-08-15 奇智软件(北京)有限公司 一种***故障的处理方法和装置
CN102779094A (zh) * 2012-08-21 2012-11-14 深圳中兴网信科技有限公司 终端和软件异常测试方法
CN102902599A (zh) * 2012-09-17 2013-01-30 华为技术有限公司 虚拟机内部故障处理方法、装置及***

Also Published As

Publication number Publication date
CN104750537A (zh) 2015-07-01

Similar Documents

Publication Publication Date Title
US10491671B2 (en) Method and apparatus for switching between servers in server cluster
CN104750537B (zh) 一种执行测试用例的方法和装置
EP3121726B1 (en) Fault processing method, related device and computer
CN104133709B (zh) 嵌入式***的升级方法和装置
CN102279787B (zh) 一种平均无故障时间的测试方法和装置
CN110838953B (zh) 一种测试方法、***、电子设备及存储介质
WO2014169645A1 (zh) 一种检测智能终端故障的方法以及智能终端
US9594899B2 (en) Apparatus and method for managing operation of a mobile device
CN106371938A (zh) 智能延迟自动关机***及其方法
CN107894935B (zh) Ops电脑模块检测处理方法、装置以及电子设备
CN106919489B (zh) 应用程序的应用界面异常退出的监测方法及装置
CN106168974B (zh) 多***截屏文件的处理方法和***
US9465626B2 (en) Method and apparatus for acquiring time spent on system shutdown
WO2024119787A1 (zh) Amd服务器***安装断电处理方法、装置、设备及介质
CN106406963B (zh) 一种Linux***的初始化方法和装置
CN111130888B (zh) 故障信息收集与提示方法、装置、存储介质和移动终端
CN111918236A (zh) 物联网安防传感器寻网方法、装置、设备及存储介质
CN103235728B (zh) Android终端中预置第三方应用的安装方法和装置
CN106130815B (zh) 板级测试方法及装置
CN103139036A (zh) 电子设备及其信息处理方法
CN105426304A (zh) 一种重启测试的控制方法及装置
CN108347521A (zh) 一种数据备份方法及装置
CN103049344B (zh) 硬件插拔容错处理的方法和装置
JP5268820B2 (ja) 監視装置用プログラムの書き換え方法
CN104283846B (zh) 诊断终端应用被篡改的方法、***及服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant