CN107220171A - 一种虚拟机的测试方法及装置 - Google Patents

一种虚拟机的测试方法及装置 Download PDF

Info

Publication number
CN107220171A
CN107220171A CN201610166438.6A CN201610166438A CN107220171A CN 107220171 A CN107220171 A CN 107220171A CN 201610166438 A CN201610166438 A CN 201610166438A CN 107220171 A CN107220171 A CN 107220171A
Authority
CN
China
Prior art keywords
test
virtual machine
test scene
measured
scene
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.)
Pending
Application number
CN201610166438.6A
Other languages
English (en)
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.)
Banma Zhixing Network Hongkong Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610166438.6A priority Critical patent/CN107220171A/zh
Publication of CN107220171A publication Critical patent/CN107220171A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例中提供了一种虚拟机的测试方法及装置,该方法包括:根据第一待测性能指标,从预先创建的测试场景库中确定各第一待测性能指标对应的测试场景;其中,各测试场景分别包括一条或多条测试程序;在第一虚拟机上分别运行各测试场景的一条或多条测试程序;根据各测试场景的运行参数,确定所述第一虚拟机的各个第一待测性能指标对应的数据。采用本申请实施例中的方案,能够提供针对虚拟机的设定性能指标数据。

Description

一种虚拟机的测试方法及装置
技术领域
本申请涉及测试技术,具体地,涉及一种虚拟机的测试方法及装置。
背景技术
JVM(Java Virtual Machine,Java虚拟机)是可运行面向对象的程序设计语言Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
目前,Java虚拟机的应用场景很多,例如,安卓操作系统就提供了Java虚拟机的运行环境,使得安卓操作系统中的多个应用程序可以运行在Java虚拟机上;此外,多个电商网站也运行于Java虚拟机上。
为帮助采用安卓系统的手机操作系统或者电商网站提升性能和产品竞争力、节省网站运营成本,在进行手机开发、网站优化等活动时,需要对JAVA虚拟机的性能进行测试方法。
在现有技术中,有一些手机性能评测方面的应用程序能够对该应用程序所运行的JAVA虚拟机的性能进行测试,并提供用于反应JAVA虚拟机总体性能的数据供用户参考。
但是发明人认为,该测试方案仅能提供总体性能数据,不能提供针对虚拟机的设定性能指标数据的测试。
发明内容
本申请实施例中提供了一种虚拟机的测试方法及装置,用于解决现有技术中不能提供针对虚拟机的设定性能指标数据的测试的问题。
根据本申请实施例的一个方面,提供了一种虚拟机的测试方法,包括:根据第一待测性能指标,从预先创建的测试场景库中确定各第一待测性能指标对应的测试场景;其中,各测试场景分别包括一条或多条测试程序;在第一虚拟机上分别运行各测试场景的一条或多条测试程序;根据各测试场景的运行参数,确定该第一虚拟机的各个第一待测性能指标对应的数据。
根据本申请实施例的另一个方面,提供了一种虚拟机的测试装置,其特征在于,包括:测试场景确定模块,用于根据第一待测性能指标,从预先创建的测试场景库中确定各第一待测性能指标对应的测试场景;其中,各测试场景分别包括一条或多条测试程序;运行模块,用于在第一虚拟机上分别运行各测试场景的一条或多条测试程序;性能确定模块,用于根据各测试场景的运行参数,确定该第一虚拟机的各个第一待测性能指标对应的数据。
采用本申请实施例中的虚拟机的测试方法,预先创建包括对应于各个性能指标的多个测试场景的测试场景库,在测试时,能够根据设置的待测性能指标,从预先创建的测试场景库中确定各待测性能指标对应的测试场景;并在第一虚拟机上分别运行各测试场景的一条或多条测试程序;最终能够根据各测试场景的运行参数,确定第一虚拟机的各个待测性能指标对应的数据,从而能够提供针对虚拟机的设定性能指标数据。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例所示的测试系统架构示意图。
图2为本申请实施例一的虚拟机的测试方法的流程图;
图3为本申请实施例二的虚拟机的测试方法的流程图;
图4为本申请实施例三所示虚拟机的测试装置的结构示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在实现本申请的过程中,发明人发现,采用现有技术中的虚拟机的测试方法,该测试方案仅能提供总体性能数据,不能根据用户的需求灵活提供针对虚拟机的多个性能指标数据。
针对上述问题,本申请实施例中提供了一种虚拟机的测试方法及装置,预先创建包括对应于各个性能指标的多个测试场景的测试场景库,在测试时,能够根据用户设置的待测性能指标,从预先创建的测试场景库中确定各待测性能指标对应的测试场景;并在第一虚拟机上分别运行各测试场景的一条或多条测试程序;最终能够根据各测试场景的运行参数,确定第一虚拟机的各个待测性能指标对应的数据,从而能够提供针对虚拟机的设定性能指标数据。
在具体实施时,本申请实施例中的虚拟机的测试方法可以运行于图1所示的系统架构中。
如图1所示,该系统架构包括:硬件底层;在硬件底层之上是操作系统用户层、或操作系统内核层、或硬件驱动层;在操作系统用户层、或操作系统内核层、或硬件驱动层之上,可以运行JAVA虚拟机;在JAVA虚拟机上运行各种应用。为达到测试的目的,可以分别运行待测试的JAVA虚拟机1、JAVA虚拟机2、JAVA虚拟机3;在分别运行各个待测试的JAVA虚拟机1时,该各种应用可以是测试人员预先设置的、对应于各种性能指标的测试场景;在具体实施时,可以将分别对应于多种性能指标的测试场景保存至测试场景库中;更具体地,还可以根据实际需要,在测试场景库中增加新的测试场景。
本申请实施例中的方案可以应用于各种Java虚拟机的性能测试场景中,例如,基于安卓开发的手机操作系统的Java虚拟机的性能测试、电商网站运行的Java虚拟机的性能测试等。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java等。
实施例一
图2为本申请实施例一的虚拟机的测试方法的流程图。
在本申请实施例中,可以对一台虚拟机的性能指标数据进行测试。如图2所示,本申请实施例一的虚拟机的测试方法包括如下步骤:
S201,预先创建测试场景库;该场景库中包括多个测试场景,各测试场景分别对应于各性能指标;各测试场景分别包括一条或多条测试程序。
在具体实施时,可以根据预先确定的多个虚拟机的性能指标,确定分别对应于这些性能指标的测试场景;然后根据对应于这些性能指标的测试场景,确定各测试场景对应的一个或多个测试程序;具体地,该测试程序可以是由开发人员或测试人员提前编写的测试程序。
具体地,虚拟机的性能指标可以包括多个虚拟机的性能指标,例如,逻辑运算处理能力、整数运算处理能力、浮点运算处理能力、异常处理能力、数据块的处理能力、硬盘随机读取能力、硬盘连续读取能力等。
为区分测试场景库中的多个测试场景,可以为测试场景库中的各个测试场景分配相应的标识,该标识可以用于在测试场景库中区分各测试场景;更具体地,该标识可以分别对应于各个性能指标,例如,对应于整数运算处理能力的测试场景的标识可以为IntegerTest。
在具体实施时,场景库中的每个测试场景可以用于一个性能指标的测试,也可以有多个测试场景对应于一个性能指标;具体地,在测试人员编写出对应于某一性能指标的新的测试场景时,可以在场景库中替换原有测试场景,也可以将新的测试场景存储至场景库,并分配与该性能指标相对应的新的标识,以便测试人员能够区分原有测试场景和新的测试场景。
在具体实施时,场景库中的各测试场景分别包括一条或多条测试程序;具体地,根据测试场景对应的性能指标的不同,各测试场景包括的测试程序也不相同。例如,对应于整数运算处理能力的测试场景包括两条测试程序:整形相关的数据的运算能力测试程序,以及与其他类型的数据之间的换算能力测试程序。
在具体实施时,随着性能指标的变化或更新,各测试场景中所包括的测试程序的数量和内容也可以实时更新。
具体地,各测试场景包括的一条或多条测试程序均能够独立运行的在虚拟机中运行。
具体地,在测试时,各测试程序根据自身的代码逻辑,调用虚拟机提供的相应计算功能;在运行过程中记录运行参数,并在运行结束后,根据各测试程序在运行时的运行参数,确定虚拟机的相应性能指标数据。具体地,各测试程序在运行时的运行参数可以包括各测试场景的运行时长、CPU率、内存占用率等。
在具体实施时,为了使各测试场景所对应的性能指标对总体性能指标的影响系数保持一致,还可以进一步对各个测试场景执行归一化处理,以得到归一化后的多个测试场景。具体地,可以根据场景库中多个测试场景的运行参数,对场景库中多个测试场景执行归一化处理,得到归一化后的多个测试场景。具体地,执行归一化时依据的运行参数也可以包括各测试场景的运行时长、CPU率、内存占用率等。更具体地,执行归一化处理所依据的运行参数,与前述确定虚拟机的相应性能指标数据时所依据的运行参数通常保持一致。具体地,各测试场景的运行参数,可以是该测试场景包括的测试程序的运行参数之和。
在运行参数包括运行时长时,该归一化处理可以具体包括:在相同测试环境下,运行该多个测试场景,并记录该各测试场景的运行时长;取各测试场景的运行时长的最小公倍数S;并将归一化后的测试场景分别设置为:相应的测试场景运行N次,N=最小公倍数/该测试场景的运行时长。
下面以逻辑运算处理能力、整数运算处理能力、浮点运算处理能力三种测试场景的运行时长的归一化处理为例,对归一化处理的具体执行过程进行详细描述,本领域技术人员应当理解,下述示出仅为举例的目的,并不用于限制本申请。
首先,在相同的测试环境下运行该三个测试场景,并记录各自的运行时长,具体地,该测试环境可以包括运行该第一虚拟机的终端的硬件参数相同、终端操作系统及版本号相同等;假设逻辑运算处理能力的运行时长为1秒、整数运算处理能力的运行时长为2秒、浮点运算处理能力的运行时长为7秒;则可以得到1、2、7的公倍数为14;可以修改原有测试场景的运行次数,以得到归一化后的各个测试场景,归一化后的各个测试场景分别设置为:将逻辑运算处理能力的原有测试场景运行14/1=14次;将整数运算处理能力的原有测试场景运行14/2=7次;将浮点运算处理能力的原有测试场景运行14/7=2次。
在具体实施时,可以对场景库中全部的测试场景执行归一化处理,也可以仅对场景库中的部分测试场景执行归一化处理,本申请不作限制。在具体实施时,如果对场景库中全部的测试场景执行归一化处理,那么在场景库中增加新的测试场景时,可以重新对全部的测试场景执行归一化处理。
S202,获取第一虚拟机的测试环境参数,该测试环境参数包括运行该第一虚拟机的终端的硬件参数,以及该终端下述参数中的任意一种:操作系统用户层参数、操作系统内核层参数、硬件驱动层的参数。
在S202的一种具体实施方式中,可以向用户(如测试人员)提供用于设置该测试环境参数的界面,以便用户根据进行测试的终端的实际参数输入该测试环境参数;或者,用户可以从多种测试环境参数中选择与该测试终端实际参数一致的参数。
具体地,该硬件参数可以包括的CPU(Central Processing Unit,中央处理器)参数、内存参数等;具体地,CPU参数可以包括以下任意一种或多种参数的组合:内核结构,主频,外频,倍频,接口,缓存,多媒体指令集,制造工艺,电压,封装形式,整数单元和浮点单元等参数;内存参数可以包括以下任意一种或多种参数的组合:内存大小、内存的存取时间等。
具体地,该操作系统用户层参数可以包括下述任意一种或多种的组合:操作系统的类型、操作系统版本号等;具体地,操作系统可以包括手机操作系统和计算机操作系统,如Windows 7、Windows 8、Unix、Mac OS、Linux、IOS、安卓等;该操作系统内核层参数可以包括内核的类型,如单内核、微内核、外内核、混合内核等。
在具体实施时,用户可以多种方式获取硬件参数和操作系统用户层参数、操作系统内核层参数、或硬件驱动层的参数。例如,对于安装Windows操作系统的终端,可以通过查看“我的电脑”的“属性”获取CPU型号及参数、内存大小、当前操作系统及版本号;对于移动终端,可以先获取终端型号,再通过终端型号查询对应硬件参数和操作系统类型;对于安装安卓操作系统的移动终端,可以通过“设置”中的“关于本机”了解当前终端的硬件参数和操作系统版本号。或者,还可以通过终端型号查询对应的硬件参数和操作系统用户层参数、操作系统内核层参数、或硬件驱动层的参数。
在S202的另一种具体实施方式中,还可以通过代码自动获取进行测试的终端的实际参数。例如,在Java语言中,可以通过System.getProperty(″os.name″)和System.getProperty(″os.version″)函数获取操作系统类型和版本号,可以通过读取/sys/devices/system/cpu/目录下的文件或/proc/meminfo/目录下的文件系统获得cpu参数和内存参数。
S203,根据该测试环境参数将第一虚拟机与该测试环境进行适配。
在具体实施时,由于不同操作系统与虚拟机的接口不完全相同,并且提供给虚拟机调用的文件也可能不完全相同;例如,三星手机的安卓操作系统提供给虚拟机调用的方法库中的方法为100个,而阿里云手机的YunOS操作系统提供给虚拟机调用的方法库中的方法为101个等。因此,为使多个虚拟机在该测试环境中正常运行,需要将该虚拟机与该测试环境进行适配。具体地,可以根据该测试环境参数,设置待测虚拟机引用相应测试环境的Framework参数。
例如,运行虚拟机的终端为三星手机、操作系统为安卓系统时,可以将虚拟机引用的framework环境参数改为三星手机的framework参数;运行虚拟机的终端为阿里云手机、操作系统为YUNOS系统时,可以将虚拟机引用的framework环境参数改为阿里云手机的framework参数。
至此,测试系统环境已搭建完成。
S204,根据第一待测性能指标,从预先创建的测试场景库中确定各第一待测性能指标对应的测试场景;
在具体实施时,该第一待测性能指标可以是由用户设置的;也可以是系统默认的,本申请对此不作限制。具体地,可以向用户提供设置第一待测性能指标的界面,由用户根据进行需要测试的性能指标输入多个性能指标;或者,该界面中可以向用户提供步骤201中的测试场景库中提供的测试场景对应的性能指标,供用户从场景库中的测试场景对应的性能指标中,选择一个或多个关注的性能指标进行测试;也可以供用户选择场景库中的多个或全部的测试场景进行测试。
在具体实施时,在确定第一待测性能指标后,可以从步骤201创建的测试场景库中确定各第一待测性能指标对应的测试场景。
例如,该待测性能指标为虚拟机的整数运算处理能力,则可以从测试场景库中确定整数运算处理能力对应的测试场景。
在具体实施时,第一待测性能指标可以是一个,也可以是多个,本申请对此不作限制。
在具体实施时,步骤204和步骤202-203之间没有严格的时序关系,可以先执行步骤202-203,再执行步骤204;也可以先执行步骤204,再执行步骤202-203,还可以并行执行步骤204和步骤202-203,本申请对此均不作限制。
S205,在第一虚拟机上分别运行各测试场景的一条或多条测试程序;
在具体实施时,在步骤204中,从步骤201创建的测试场景库中确定各第一待测性能指标对应的测试场景之后,就可以顺序运行这些待测性能指标对应的测试场景所包括的测试程序。
在运行过程中,各测试程序根据自身的代码逻辑,调用虚拟机提供的相应计算功能;在运行过程中,可以记录各测试场景对应的运行参数;具体地,该运行参数可以包括各测试场景的运行时长、CPU率、内存占用率等。
以运行参数为运行时长,测试场景为整数运算处理能力对应的测试场景为例,该测试场景包括两条测试程序:整形相关的数据的运算能力测试程序,以及与其他类型的数据之间的换算能力测试程序;则在测试时,可以依次执行整形相关的数据的运算能力测试程序,以及与其他类型的数据之间的换算能力测试程序;并记录这两条测试程序的运行时长,并将该两条测试程序的运行时长之和作为整数运算处理能力对应的测试场景的运行时长。
S206,根据各测试场景的运行参数,确定该第一虚拟机的各个第一待测性能指标对应的数据。
在具体实施时,在步骤205中得到测试场景的运行参数后,可以根据预定的规则确定虚拟机与该测试场景相应的性能指标对应的数据。
在具体实施时,该性能指标对应的数据可以包括该运行参数。例如,该运行参数为运行时长时,该性能指标对应的数据可以以运行时长的方式提供;该运行参数为CPU占用率时,该性能指标对应的数据可以以CPU占用率的方式提供。
例如,在步骤205之后,得到虚拟机运行整数运算处理能力测试场景的运行时长为4秒,则可以提供该虚拟机的整数运算处理能力的性能指标对应的数据为4秒。
在具体实施时,该性能指标对应的数据还可以包括基于该运行参数,通过预定规则计算得到的性能指标数据,具体地,可以是一个在预定期间内的数值。例如,在0-100范围内的一个具体的数值。具体地,该预定规则可以是用户根据该性能指标的经验数据,将经验数据中的各个运行参数,或者各期间内的运行参数分别对应于一个具体的数值,在得到待测虚拟机的该运行参数后,查询相应的具体数值,即得到待测虚拟机的性能指标数据。
例如,仍然以运行参数为运行时长,测试场景为整数运算处理能力对应的测试场景为例,在步骤105之前,用户基于经验值,确定通常各虚拟机的整数运算处理能力的运行时长从1秒至10秒不等;用户将运行时长1秒至10秒平均划分为对应于100分至10分的各档,具体提供形式可以如下表:
运行时长(秒) 性能指标数据
(0,1] 100
(1,2] [90,100)
(2,3] [80,90)
(3,4] [70,80)
(4,5] [60,70)
(5,6] [50,60)
(6,7] [40,50)
(7,8] [30,40)
(8,9] [20,30)
(9,10] [10,20)
大于10 [0,10)
假设在步骤205之后,得到虚拟机运行整数运算处理能力测试场景的运行时长为4秒,则可以查询上表得到该虚拟机的整数运算处理能力的性能指标数据可以是70;或者,得到虚拟机运行整数运算处理能力测试场景的运行时长为2.3秒,则可以查询上表得到该虚拟机的整数运算处理能力的性能指标数据可以是约87。
在具体实施时,如果第一待测性能指标是多个,则可以依次执行各性能指标的测试场景,并依次得到各第一待测性能指标对应的数据。
在具体实施时,在到各第一待测性能指标对应的数据之后,可以向用户显示该各性能指标对应的数据。具体地,在向用户显示之前,还可以进一步根据预定规则剔除无效数据,例如数据小于预定阈值的数字。
具体地,向在用户显示之前,还可以进一步根据各第一待测性能指标对应的数据计算得到该虚拟机的总体性能指标数据。具体地,如果在步骤201中对测试场景进行了归一化处理,则可以直接求取各性能指标对应的数据的平均数,并将该平均数作为总体性能指标数据。
至此,本申请实施例已经得到针对虚拟机的多个性能指标数据。
采用本申请实施例的虚拟机的测试方法,预先创建包括对应于各个性能指标的多个测试场景的测试场景库,在测试时,能够根据用户设置的待测性能指标,从预先创建的测试场景库中确定各待测性能指标对应的测试场景;并在虚拟机上分别运行各测试场景的一条或多条测试程序;最终能够根据各测试场景的运行参数,确定第一虚拟机的各个待测性能指标对应的数据,从而能够根据用户的需求灵活提供虚拟机的多个设定性能指标数据。
上述实施例一中,示出了对一台虚拟机进行测试的方法流程。在具体实施时,还可以对多台虚拟机的性能指标数据进行测试,并将测试结果进行对比分析。下面将结合实施例二来对多台虚拟机的性能指标数据进行测试,并将测试结果进行对比分析的测试方法流程进行阐述。
实施例二
图3为本申请实施例二的虚拟机的测试方法的流程图。
如图3所示,本申请实施例二的虚拟机的测试方法包括如下步骤:
S301,预先创建测试场景库;该场景库中的各测试场景分别对应于各性能指标;各测试场景分别包括一条或多条测试程序;
在具体实施时,步骤301的具体实施可以参照本申请实施例一中步骤201的实施,重复之处,不再赘述。
S302,获取测试环境参数,该测试环境参数包括运行该第一虚拟机的终端的硬件参数,以及该终端下述参数中的任意一种:操作系统用户层参数、操作系统内核层参数、硬件驱动层的参数;;
在具体实施时,步骤302的具体实施可以参照本申请实施例一中步骤202的实施,重复之处,不再赘述。
S303,将待测试的多个虚拟机分别与该测试环境进行适配;
在具体实施时,步骤303中,各个虚拟机与该测试环境的适配的具体实施可以参照本申请实施例一中步骤203的实施,重复之处,不再赘述。
应当理解,在具体实施时,可以依次执行多个虚拟机与测试环境的适配,也可以同时执行,本申请对此不作限制。
S304,根据用户设置的待测性能指标,从预先创建的测试场景库中确定各待测性能指标对应的测试场景;
在本申请实施例中,为对多个虚拟机进行性能指标的对比,在具体实施时,可以为该多个虚拟机设置相同的多个待测性能指标;该多个待测性能指标可以包括测试场景库中的部分或全部测试场景,本申请对此不作限制。
在具体实施时,步骤304中,用户设置待测性能指标的具体实施可以参照本申请实施例一中步骤204中相应部分的实施,重复之处,不再赘述。
在具体实施时,步骤304中,从预先创建的测试场景库中确定各待测性能指标对应的测试场景的具体实施也可以参照本申请实施例一中步骤204中相应部分的实施,重复之处,不再赘述。
S305,分别在待测试的多个虚拟机上分别运行各测试场景的一条或多条测试程序;
在具体实施时,步骤305中,在各虚拟机上分别运行各测试场景的一条或多条测试程序的具体实施可以参照本申请实施例一中步骤205的实施,重复之处,不再赘述。
应当理解,在具体实施时,各虚拟机上测试场景的运行顺序没有严格的先后关系,即,可以依次在多个虚拟机上运行各测试场景,也可以在各虚拟机上同时运行某一测试场景;还可以在一个虚拟机上运行完毕所有的测试场景后,再在另一虚拟机上运行所有的测试场景;或者,在一个虚拟机上运行完毕部分测试场景后,再在另一台虚拟机上运行另一部分测试场景等,本申请对此均不作限制。
S306,根据各测试场景的运行参数,分别确定多个虚拟机的各个性能指标数据;
在具体实施时,步骤306中,根据各测试场景的运行参数,分别确定多个虚拟机的各个性能指标数据的具体实施可以参照本申请实施例一中步骤206的实施,重复之处,不再赘述。
应当理解,为便于比较,在确定各虚拟机的性能指标数据时,可以针对各虚拟机均采用相同的运行参数,例如,各虚拟机均记录各测试场景的运行时长,或者各虚拟机均记录各测试场景的CPU占用率,或者各虚拟机均记录各测试场景的内存占用率等,本申请对此不作限制。
S307,将该多个虚拟机的各个性能指标对应的数据分别进行对比,并显示比较结果。
在具体实施时,可以采用本领域常用的多种数据对比方式进行比较。具体地,可以采用列表的形式。例如,在列表中列出各虚拟机的标识、测试的各性能指标的标识,各虚拟机对应的各性能指标对应的数据等;并将结果显示给用户进行分析。
在具体实施时,还可以采用本领域常用的多种方式直观显示各虚拟机之间的性能指标数据的比较结果,例如,突出显示各虚拟机数据最优的性能指标、对各虚拟机按总体性能指标数据从高到低排序等;应当理解,这些实施方式均在本申请的保护范围之内。
在具体实施时,还可以根据比较结果生成评测报告,在报告中,可以提供对各虚拟机的优化建议,例如,某一虚拟机的某项性能指标数据较差,可以建议进行相应性能的优化等。
至此,已经完成本申请实施例中多台虚拟机之间的性能数据的对比测试。
采用本申请实施例的虚拟机的测试方法,预先创建包括对应于各个性能指标的多个测试场景的测试场景库,在测试时,能够根据用户设置的待测性能指标,从预先创建的测试场景库中确定各待测性能指标对应的测试场景;并在多台虚拟机上分别运行各测试场景的一条或多条测试程序;最终能够根据多虚拟机中各测试场景的运行参数,确定多台虚拟机的各个性能指标对应的数据,从而能够实现对多台虚拟机的性能指标数据的对比分析。
基于同一发明构思,本申请实施例中还提供了一种虚拟机的测试装置,由于该装置解决问题的原理与本申请实施例一或二所提供的虚拟机的测试方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
实施例三
图4为本申请实施例三所示虚拟机的测试装置的结构示意图。
如图4所示,根据本申请实施例三所示的虚拟机的测试装置400,包括:测试场景确定模块401,用于根据第一待测性能指标,从预先创建的测试场景库中确定各第一待测性能指标对应的测试场景;其中,各测试场景分别包括一条或多条测试程序;运行模块402,用于在第一虚拟机上分别运行各测试场景的一条或多条测试程序;性能确定模块403,用于根据各测试场景的运行参数,确定该第一虚拟机的各个第一待测性能指标对应的数据。
在具体实施时,根据本申请实施例三所示的虚拟机的测试装置,还可以包括:参数获取模块,用于获取第一虚拟机的测试环境参数;适配模块,用于根据该测试环境参数,将该第一虚拟机与该测试环境进行适配;其中,该测试环境参数包括运行该第一虚拟机的终端的硬件参数,以及该终端下述参数中的任意一种:操作系统用户层参数、操作系统内核层参数、硬件驱动层的参数。
在具体实施时,适配模块具体还可以用于根据该测试环境参数,设置设置该第一虚拟机引用相应测试环境的框架Framework参数。
在具体实施时,测试场景确定模块,具体可以包括:测试场景确定子模块,用于根据预先确定的多个第二待测性能指标,确定分别对应于该第二待测性能指标的测试场景;其中,该多个第二待测性能指标包括该第一待测性能指标;测试程序确定子模块,用于根据该测试场景,确定各测试场景对应的一个或多个测试程序。
在具体实施时,该测试场景确定模块还可以包括:归一化处理子模块,用于根据该多个测试场景的运行参数,对该多个测试场景执行归一化处理,得到归一化后的多个测试场景。
在具体实施时,归一化处理子模块,具体可以用于在相同测试环境下,运行该多个测试场景,并记录该各测试场景的运行时长;取该各测试场景的运行时长的最小公倍数S;将归一化后的测试场景分别设置为:相应的测试场景运行N次,N=最小公倍数/该测试场景的运行时长。
在具体实施时,该适配模块还可以用于将第二虚拟机与该测试环境进行适配;该运行模块,还用于在该第二虚拟机上分别运行各测试场景的一条或多条测试程序;该性能确定模块,还用于根据各测试场景的运行参数,确定该第二虚拟机的各个第一待测性能指标对应的数据。
在具体实施时,根据本申请实施例三所示的虚拟机的测试装置,还可以包括:对比模块,用于将该第一虚拟机的各个第一待测性能指标对应的数据与第二虚拟机的各个第一待测性能指标对应的数据,分别进行对比;显示模块,用于显示比较结果。
采用本申请实施例的虚拟机的测试装置,预先创建包括对应于各个性能指标的多个测试场景的测试场景库,在测试时,能够根据用户设置的待测性能指标,从预先创建的测试场景库中确定各待测性能指标对应的测试场景;并在多台虚拟机上分别运行各测试场景的一条或多条测试程序;最终能够根据多虚拟机中各测试场景的运行参数,确定多台虚拟机的各个性能指标对应的数据,从而能够根据用户的需求灵活提供虚拟机的多个设定性能指标数据,也能够实现对多台虚拟机的性能指标数据的对比分析。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (16)

1.一种虚拟机的测试方法,其特征在于,包括:
根据第一待测性能指标,从预先创建的测试场景库中确定各第一待测性能指标对应的测试场景;其中,各测试场景分别包括一条或多条测试程序;
在第一虚拟机上分别运行各测试场景的一条或多条测试程序;
根据各测试场景的运行参数,确定所述第一虚拟机的各个第一待测性能指标对应的数据。
2.根据权利要求1所述的方法,其特征在于,在根据第一待测性能指标,从预先创建的测试场景库中确定各第一待测性能指标对应的测试场景之前,还包括:
获取第一虚拟机的测试环境参数;
根据所述测试环境参数,将所述第一虚拟机与所述测试环境进行适配;
其中,所述测试环境参数包括运行所述第一虚拟机的终端的硬件参数,以及所述终端下述参数中的任意一种:操作系统用户层参数、操作系统内核层参数、硬件驱动层的参数。
3.根据权利要求2所述的方法,其特征在于,根据所述测试环境参数,将所述第一虚拟机与所述测试环境进行适配,具体包括:
根据所述测试环境参数,设置所述第一虚拟机引用相应测试环境的框架Framework参数。
4.根据权利要求1所述的方法,其特征在于,预先创建测试场景库,具体包括:
根据预先确定的多个第二待测性能指标,确定分别对应于所述第二待测性能指标的测试场景;其中,所述多个第二待测性能指标包括所述第一待测性能指标;
根据所述测试场景,确定各测试场景对应的一个或多个测试程序。
5.根据权利要求4所述的方法,其特征在于,在根据所述测试场景,编写各测试场景对应的一个或多个测试程序之后,还包括:
根据所述多个测试场景的运行参数,对所述多个测试场景执行归一化处理,得到归一化后的多个测试场景。
6.根据权利要求5所述的方法,其特征在于,所述运行参数包括运行时长,根据所述多个测试场景的运行参数,对所述多个测试场景执行归一化处理,得到归一化后的多个测试场景,具体包括:
在相同测试环境下,运行所述多个测试场景,并记录所述各测试场景的运行时长;
取所述各测试场景的运行时长的最小公倍数S;
将归一化后的测试场景分别设置为:相应的测试场景运行N次,N=最小公倍数/所述测试场景的运行时长。
7.根据权利要求2所述的方法,其特征在于,在根据各测试场景的运行参数,确定所述第一虚拟机的各个第一待测性能指标对应的数据之后,还包括:
将第二虚拟机与所述测试环境进行适配;
在所述第二虚拟机上分别运行各测试场景的一条或多条测试程序;
根据各测试场景的运行参数,确定所述第二虚拟机的各个第一待测性能指标对应的数据。
8.根据权利要求7所述的方法,其特征在于,在根据各测试场景的运行参数,确定所述第二虚拟机的各个第一待测性能指标对应的数据之后,还包括:
将所述第一虚拟机的各个第一待测性能指标对应的数据与第二虚拟机的各个第一待测性能指标对应的数据,分别进行对比;
显示比较结果。
9.一种虚拟机的测试装置,其特征在于,包括:
测试场景确定模块,用于根据第一待测性能指标,从预先创建的测试场景库中确定各第一待测性能指标对应的测试场景;其中,各测试场景分别包括一条或多条测试程序;
运行模块,用于在第一虚拟机上分别运行各测试场景的一条或多条测试程序;
性能确定模块,用于根据各测试场景的运行参数,确定所述第一虚拟机的各个第一待测性能指标对应的数据。
10.根据权利要求9所述的装置,其特征在于,还包括:
参数获取模块,用于获取第一虚拟机的测试环境参数;
适配模块,用于根据所述测试环境参数,将所述第一虚拟机与所述测试环境进行适配;
其中,所述测试环境参数包括运行所述第一虚拟机的终端的硬件参数,以及所述终端下述参数中的任意一种:操作系统用户层参数、操作系统内核层参数、硬件驱动层的参数。
11.根据权利要求10所述的装置,其特征在于,适配模块具体用于根据所述测试环境参数,设置所述第一虚拟机引用相应测试环境的Framework参数。
12.根据权利要求9所述的装置,其特征在于,测试场景确定模块,具体包括:
测试场景确定子模块,用于根据预先确定的多个第二待测性能指标,确定分别对应于所述第二待测性能指标的测试场景;其中,所述多个第二待测性能指标包括所述第一待测性能指标;
测试程序确定子模块,用于根据所述测试场景,确定各测试场景对应的一个或多个测试程序。
13.根据权利要求12所述的装置,其特征在于,所述测试场景确定模块还包括:
归一化处理子模块,用于根据所述多个测试场景的运行参数,对所述多个测试场景执行归一化处理,得到归一化后的多个测试场景。
14.根据权利要求13所述的装置,其特征在于,归一化处理子模块,具体用于在相同测试环境下,运行所述多个测试场景,并记录所述各测试场景的运行时长;取所述各测试场景的运行时长的最小公倍数S;将归一化后的测试场景分别设置为:相应的测试场景运行N次,N=最小公倍数/所述测试场景的运行时长。
15.根据权利要求10所述的装置,其特征在于,所述适配模块还用于将第二虚拟机与所述测试环境进行适配;
所述运行模块,还用于在所述第二虚拟机上分别运行各测试场景的一条或多条测试程序;
所述性能确定模块,还用于根据各测试场景的运行参数,确定所述第二虚拟机的各个第一待测性能指标对应的数据。
16.根据权利要求15所述的装置,其特征在于,还包括:
对比模块,用于将所述第一虚拟机的各个第一待测性能指标对应的数据与第二虚拟机的各个第一待测性能指标对应的数据,分别进行对比;
显示模块,用于显示比较结果。
CN201610166438.6A 2016-03-22 2016-03-22 一种虚拟机的测试方法及装置 Pending CN107220171A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610166438.6A CN107220171A (zh) 2016-03-22 2016-03-22 一种虚拟机的测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610166438.6A CN107220171A (zh) 2016-03-22 2016-03-22 一种虚拟机的测试方法及装置

Publications (1)

Publication Number Publication Date
CN107220171A true CN107220171A (zh) 2017-09-29

Family

ID=59928045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610166438.6A Pending CN107220171A (zh) 2016-03-22 2016-03-22 一种虚拟机的测试方法及装置

Country Status (1)

Country Link
CN (1) CN107220171A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656828A (zh) * 2018-12-18 2019-04-19 郑州云海信息技术有限公司 一种集群中虚拟机压力自动测试方法,终端及可读存储介质
CN110209577A (zh) * 2019-05-20 2019-09-06 深圳壹账通智能科技有限公司 一种测试方法及装置
CN111193833A (zh) * 2020-01-02 2020-05-22 中国银行股份有限公司 一种话务类报表系统测试方法、装置、服务器及存储介质
CN111258882A (zh) * 2020-01-03 2020-06-09 恩亿科(北京)数据科技有限公司 一种基于数字媒体系统的测试数据获取方法及装置
CN113037582A (zh) * 2019-12-25 2021-06-25 中国电信股份有限公司 网络功能虚拟化nfv测试方法、装置和系统
CN113485755A (zh) * 2021-06-30 2021-10-08 深圳市科力锐科技有限公司 设备驱动程序验证方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567203A (zh) * 2011-12-28 2012-07-11 创新科软件技术(深圳)有限公司 一种测试分布式文件系统性能的方法及系统
US20130007710A1 (en) * 2011-06-28 2013-01-03 Microsoft Corporation Deploying Environments For Testing By Providing Instantaneous Availability Of Prebuilt Environments
CN104182333A (zh) * 2013-05-23 2014-12-03 阿里巴巴集团控股有限公司 一种性能测试方法和设备
CN102662836B (zh) * 2012-03-28 2015-06-03 易云捷讯科技(北京)有限公司 一种虚拟机评测系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130007710A1 (en) * 2011-06-28 2013-01-03 Microsoft Corporation Deploying Environments For Testing By Providing Instantaneous Availability Of Prebuilt Environments
CN102567203A (zh) * 2011-12-28 2012-07-11 创新科软件技术(深圳)有限公司 一种测试分布式文件系统性能的方法及系统
CN102662836B (zh) * 2012-03-28 2015-06-03 易云捷讯科技(北京)有限公司 一种虚拟机评测系统及方法
CN104182333A (zh) * 2013-05-23 2014-12-03 阿里巴巴集团控股有限公司 一种性能测试方法和设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109656828A (zh) * 2018-12-18 2019-04-19 郑州云海信息技术有限公司 一种集群中虚拟机压力自动测试方法,终端及可读存储介质
CN109656828B (zh) * 2018-12-18 2022-03-04 郑州云海信息技术有限公司 一种集群中虚拟机压力自动测试方法,终端及可读存储介质
CN110209577A (zh) * 2019-05-20 2019-09-06 深圳壹账通智能科技有限公司 一种测试方法及装置
CN113037582A (zh) * 2019-12-25 2021-06-25 中国电信股份有限公司 网络功能虚拟化nfv测试方法、装置和系统
CN111193833A (zh) * 2020-01-02 2020-05-22 中国银行股份有限公司 一种话务类报表系统测试方法、装置、服务器及存储介质
CN111193833B (zh) * 2020-01-02 2021-06-08 中国银行股份有限公司 一种话务类报表系统测试方法、装置、服务器及存储介质
CN111258882A (zh) * 2020-01-03 2020-06-09 恩亿科(北京)数据科技有限公司 一种基于数字媒体系统的测试数据获取方法及装置
CN111258882B (zh) * 2020-01-03 2023-08-25 恩亿科(北京)数据科技有限公司 一种基于数字媒体系统的测试数据获取方法及装置
CN113485755A (zh) * 2021-06-30 2021-10-08 深圳市科力锐科技有限公司 设备驱动程序验证方法、装置、设备及存储介质
CN113485755B (zh) * 2021-06-30 2023-08-18 深圳市科力锐科技有限公司 设备驱动程序验证方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107220171A (zh) 一种虚拟机的测试方法及装置
CN103761189B (zh) 一种测试用例管理方法及系统
Măruşter et al. Redesigning business processes: a methodology based on simulation and process mining techniques
EP2650780A2 (en) Component discovery from source code
CN111722839B (zh) 一种代码生成方法、装置、电子设备及存储介质
CN109241141A (zh) 深度学习的训练数据处理方法和装置
US9098630B2 (en) Data selection
CN110262976B (zh) 游戏资源文件的解析方法、装置、设备和存储介质
US10942840B2 (en) System and method for managing a code repository
CN102855177A (zh) 一种单元测试的方法和装置
US8843878B1 (en) Quality software development process
Chen et al. Improving crowd-supported gui testing with structural guidance
CN104054051A (zh) 操纵源代码补丁
CN111475137A (zh) 一种软件开发需求预测的方法、系统及设备
CN107124236A (zh) 一种基于脚本语言的接收机性能指标测试方法
CN107729510B (zh) 信息交互方法、信息交互终端及存储介质
Mainkar Expert Android Programming: Master skills to build enterprise grade Android applications
Losada et al. Applying Usability Engineering in InterMod Agile Development Methodology. A Case Study in a Mobile Application.
Akca et al. Run-time measurement of cosmic functional size for java business applications: Initial results
CN104616168B (zh) 一种营销工具合法性校验的方法及装置
Lerchner et al. An open S-BPM runtime environment based on abstract state machines
CA2967203A1 (en) Infeasibility management in e-sourcing systems
CN109344079A (zh) 布局布线回归测试方法、系统、设备及存储介质
Tarhan et al. A proposal on requirements for cosmic FSM automation from source code
JP2018045619A (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
TA01 Transfer of patent application right

Effective date of registration: 20201218

Address after: Room 603, 6 / F, Roche Plaza, 788 Cheung Sha Wan Road, Kowloon, China

Applicant after: Zebra smart travel network (Hong Kong) Limited

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20170929

RJ01 Rejection of invention patent application after publication