CN109144846B - 用于测试服务器的测试方法和装置 - Google Patents

用于测试服务器的测试方法和装置 Download PDF

Info

Publication number
CN109144846B
CN109144846B CN201710508953.2A CN201710508953A CN109144846B CN 109144846 B CN109144846 B CN 109144846B CN 201710508953 A CN201710508953 A CN 201710508953A CN 109144846 B CN109144846 B CN 109144846B
Authority
CN
China
Prior art keywords
test
testing
parameters
testing machine
server
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
CN201710508953.2A
Other languages
English (en)
Other versions
CN109144846A (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710508953.2A priority Critical patent/CN109144846B/zh
Publication of CN109144846A publication Critical patent/CN109144846A/zh
Application granted granted Critical
Publication of CN109144846B publication Critical patent/CN109144846B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了用于测试服务器的测试方法和装置。该方法的一具体实施方式包括:获取测试参数,其中,测试参数包括:虚拟用户数、单个测试用机运行的进程数、单个进程包括的线程数,虚拟用户数为开启的测试用机数、单个测试用机运行的进程数与单个进程包括的线程数之积;根据所获取的测试参数,控制至少一个测试用机的运行;获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数;根据所获取的信息项生成测试结果。该实施方式提高了测试效率。

Description

用于测试服务器的测试方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及一种用于测试服务器的测试方法和装置。
背景技术
随着互联网的高速发展,网站***的性能要求越来越高,任何***上线前的性能测试都必不可少。通常,性能测试前都固定配置好并发虚拟用户数。但是在真实场景中,用户数会不断变化,特别是在促销时会出现某一时刻陡增和陡降的现象,造成***的访问压力大幅度变化。如何在性能测试中,控制压力动态变化,是性能测试人员面临的问题。
现有技术中,测试人员如果需要增加虚拟用户数,通常需要新启动一个任务执行同样的脚本,如果需要减少虚拟用户数,则需要停止部分任务,启动和停止过程复杂,导致测试效率不高。
发明内容
本申请的目的在于提出一种改进的用于测试服务器的测试方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请实施例提供了一种用于测试服务器的测试方法,测试服务器与至少一个测试用机通信连接,至少一个测试用机中的每个测试用机开启时运行有至少一个进程,至少一个进程中的每个进程包括至少一个线程,至少一个线程用于向被测服务器发送数据处理请求,并接收被测服务器返回的相应的数据处理结果,该方法包括:获取测试参数,其中,测试参数包括:虚拟用户数、单个测试用机运行的进程数、单个进程包括的线程数,虚拟用户数为开启的测试用机数、单个测试用机运行的进程数与单个进程包括的线程数之积;根据所获取的测试参数,控制至少一个测试用机的运行;获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数;根据所获取的信息项生成测试结果。
在本实施例中,控制至少一个测试用机的运行,包括:根据虚拟用户数、单个测试用机运行的进程数和单个进程包括的线程数,确定需要开启的测试用机数;获取至少一个测试用机中各个测试用机的状态信息,其中,状态信息用于指示测试用机处于开启或停止的运行状态;根据需要开启的测试用机数以及所获取的状态信息,确定至少一个测试用机中各个测试用机的运行状态;根据单个测试用机运行的进程数和单个进程包括的线程数,确定所确定的处于开启运行状态的测试用机中运行的进程数和线程数。
在本实施例中,方法还包括:响应于获取到用户输入的用于改变至少一个测试用机中各个测试用机的运行状态的指令,根据指令,确定至少一个测试用机中各个测试用机的运行状态。
在本实施例中,测试参数存储在目标数据表中,目标数据表中还存储有测试参数的执行时间;以及根据所获取的测试参数,控制至少一个测试用机的运行,包括:在执行时间内,根据所获取的测试参数,控制至少一个测试用机的运行。
在本实施例中,目标数据表中还存储有与测试参数对应的标识信息和执行序号,标识信息用于指示测试参数所属的测试任务,执行序号用于指示测试参数在测试任务中被执行的顺序;以及获取测试参数,包括:获取用户输入的标识信息;在目标数据表中查询与标识信息匹配的测试参数;以及根据所获取的测试参数,控制至少一个测试用机的运行,包括:响应于查询到的测试参数的数量大于一组,根据查询到的测试参数中的各组测试参数的执行时间和执行序号,以及各组测试参数,控制至少一个测试用机的运行。
第二方面,本申请实施例提供了一种用于测试服务器的测试装置,测试服务器与至少一个测试用机通信连接,至少一个测试用机中的每个测试用机开启时运行有至少一个进程,至少一个进程中的每个进程包括至少一个线程,至少一个线程用于向被测服务器发送数据处理请求,并接收被测服务器返回的相应的数据处理结果,该装置包括:第一获取单元,用于获取测试参数,其中,测试参数包括:虚拟用户数、单个测试用机运行的进程数、单个进程包括的线程数,虚拟用户数为开启的测试用机数、单个测试用机运行的进程数与单个进程包括的线程数之积;控制单元,用于根据所获取的测试参数,控制至少一个测试用机的运行;第二获取单元,用于获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数;生成单元,用于根据所获取的信息项生成测试结果。
在本实施例中,控制单元,包括:第一确定子单元,用于根据虚拟用户数、单个测试用机运行的进程数和单个进程包括的线程数,确定需要开启的测试用机数;获取子单元,用于获取至少一个测试用机中各个测试用机的状态信息,其中,状态信息用于指示测试用机处于开启或停止的运行状态;第二确定子单元,用于根据需要开启的测试用机数以及所获取的状态信息,确定至少一个测试用机中各个测试用机的运行状态;第三确定子单元,用于根据单个测试用机运行的进程数和单个进程包括的线程数,确定所确定的处于开启运行状态的测试用机中运行的进程数和线程数。
在本实施例中,装置还包括确定单元,确定单元配置用于:响应于获取到用户输入的用于改变至少一个测试用机中各个测试用机的运行状态的指令,根据指令,确定至少一个测试用机中各个测试用机的运行状态。
在本实施例中,测试参数存储在目标数据表中,目标数据表中还存储有测试参数的执行时间;以及根据所获取的测试参数,控制至少一个测试用机的运行,包括:在执行时间内,根据所获取的测试参数,控制至少一个测试用机的运行。
在本实施例中,目标数据表中还存储有与测试参数对应的标识信息和执行序号,标识信息用于指示测试参数所属的测试任务,执行序号用于指示测试参数在测试任务中被执行的顺序;以及获取单元,进一步配置用于:获取用户输入的标识信息;在目标数据表中查询与标识信息匹配的测试参数;以及控制单元,进一步配置用于:响应于查询到的测试参数的数量大于一组,根据查询到的测试参数中的各组测试参数的执行时间和执行序号,以及各组测试参数,控制至少一个测试用机的运行。
第三方面,本申请实施例提供了一种设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现如第一方面上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一方面上述的方法。
本申请实施例提供的用于测试服务器的测试方法和装置,通过获取测试参数,并根据所获取的测试参数,控制至少一个测试用机的运行,而后获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数,最后根据所获取的信息项生成测试结果,提高了测试效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性***架构图;
图2是根据本申请的用于测试服务器的测试方法的一个实施例的示意性流程图;
图3是根据本申请的用于测试服务器的测试方法的一个应用场景的示意图;
图4是根据本申请的用于测试服务器的测试方法的再一个实施例的示意性流程图;
图5是根据本申请的用于测试服务器的测试装置的一个实施例的示例性结构图;
图6是适于用来实现本申请实施例的设备的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于测试服务器的测试方法或用于测试服务器的测试装置的实施例的示例性***架构100。
如图1所示,***架构100可以包括测试服务器101,测试用机103、104、105,被测服务器106和网络107、108。网络107用以在测试服务器101和测试用机103、104、105之间提供通信链路的介质,网络108用以在测试用机103、104、105和被测服务器106之间提供通信链路的介质。网络107、108可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
测试服务器101,测试服务器101可以是测试***的管理端,或主控机,与测试用机103、104、105通信连接,测试用机103、104、105中的每个测试用机开启时运行有至少一个进程,至少一个进程中的每个进程包括至少一个线程,至少一个线程用于向被测服务器106发送数据处理请求,并接收被测服务器106返回的相应的数据处理结果。测试用机103、104、105可以是压力机,即模拟客户端的机器,可以是实体的计算机,也可以是虚拟的计算环境,包含CPU、内存、操作***、带宽、磁盘等最基础的计算组件,可理解为一个独立的虚拟机。被测服务器可以是单个的服务器或服务器集群,被测服务器106运行有待测***,待测***可以是将要上线的网站***。
测试服务器101可以首先获取测试参数,并根据所获取的测试参数,控制测试用机103、104、105的运行,而后获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器106的运行参数,最后根据所获取的信息项生成测试结果。
另外,***架构100还可以包括数据库106,数据库106可以是用于管理各种数据的、各种类型的数据库,例如,用于存储测试数据的数据库、用于存储测试过程中产生的数据用于确定测试结果的数据库。数据库106为用于存储测试用机103、104、105当前的状态信息的实时数据库时,测试服务器101可以实时地从数据库106中获取测试用机103、104、105的状态信息。
需要说明的是,本申请实施例所提供的测试方法一般由测试服务器101执行,相应地,测试方法装置一般设置于测试服务器101中。
应该理解,图1中的测试服务器、网络、测试用机和被测服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的测试服务器、网络、测试用机和被测服务器。
继续参考图2,示出了根据本申请的用于测试服务器的测试方法的一个实施例的流程200。该用于测试服务器的测试方法,包括以下步骤:
步骤201,获取测试参数。
在本实施例中,测试服务器与至少一个测试用机通信连接,至少一个测试用机中的每个测试用机开启时运行有至少一个进程,至少一个进程中的每个进程包括至少一个线程,至少一个线程用于向被测服务器发送数据处理请求,并接收被测服务器返回的相应的数据处理结果。数据处理请求可以是超文本传输协议(HTTP,HyperText TransferProtocol)请求。
在本实施例中,用于测试服务器的测试方法运行于其上的电子设备(例如图1所示的服务器101)可以首先获取测试参数。其中,测试参数包括:虚拟用户数、单个测试用机运行的进程数、单个进程包括的线程数,虚拟用户数为开启的测试用机数、单个测试用机运行的进程数与单个进程包括的线程数之积。测试参数的值可以是用户设置的,也可以是预先设置好的缺省值。
上述电子设备可以在准备执行一个测试任务时,获取与测试任务相关的测试参数,也可以响应于测试参数的改变而获取测试参数,例如,上述电子设备接收到了用户修改测试参数的指令,或测试参数存储在预设数据库中,上述电子设备实时扫描数据库以监测测试参数的变化。
步骤202,根据所获取的测试参数,控制至少一个测试用机的运行。
在本实施例中,上述电子设备可以根据所获取的测试参数,控制至少一个测试用机的运行。以测试用机为压力测试中的压力机为例,可以采用客户机和服务器结构,测试服务器上可以安装有测试任务管理模块,集中控制压力机资源池,并向压力机发送压力测试参数信息。管理模块可与各个压力机保持长连接,当需要执行任务时临时指派需要启动测试的压力机。当需要增加压力机时,从资源池中选取空闲压力机;当需要减少压力机时,停止执行中的压力机。
在本实施例的一些可选实现方式中,控制至少一个测试用机的运行,可以包括:根据虚拟用户数、单个测试用机运行的进程数和单个进程包括的线程数,确定需要开启的测试用机数;获取至少一个测试用机中各个测试用机的状态信息,其中,状态信息用于指示测试用机处于开启或停止的运行状态;根据需要开启的测试用机数以及所获取的状态信息,确定至少一个测试用机中各个测试用机的运行状态;根据单个测试用机运行的进程数和单个进程包括的线程数,确定所确定的处于开启运行状态的测试用机中运行的进程数和线程数。
在本实现方式中,测试用机处于开启的运行状态,不仅是电源意义上的开机,且需要测试用机处于工作状态。同样,测试用机处于停止的运行状态,也可以是已开机,但处于空闲或准备状态。可以根据预先设置的规则,确定至少一个测试用机中各个测试用机的运行状态,例如,上述电子设备可以比较处于工作状态的测试用机个数和需要开启的测试用机数,做出增减测试用机的判断。预先设置的规则包括但不限于:按某种测试用机的标识的排序(如名称字符串排序)、先启动先停止、先启动后停止等。在确定需要开启的测试用机数时,可以用做取整操作,保证得到整数值。
在本实施例的一些可选实现方式中,测试参数也可以直接包括需要开启的测试用机数,由于测试用机硬件方面处理能力有限,单台测试机开启较多的进程和线程,会降低测试机的运行效率,考虑到整体发压能力,测试参数中单个测试用机运行的进程数和单个进程包括的线程数可以是一个范围,例如,根据测试机的历史运行参数,单台测试机在运行不超过8个进程,每个进程包括不超过5个线程时,处理能力正常,则单个测试用机运行的进程数的范围可以是1~8,单个进程包括的线程数可以是1~5。作为示例,若上述电子设备获取到需要开启的测试用机数是25,虚拟用户数是1000,则单个测试用机运行的进程数可以是8和单个进程包括的线程数可以是5。若获取到需要开启的测试用机数小于25,还可以输出提示信息,用于指示整体发压能力会受到影响,以提示用户增加需要开启的测试用机数,或减少虚拟用户数。
在本实施例的一些可选实现方式中,方法还包括:响应于获取到用户输入的用于改变至少一个测试用机中各个测试用机的运行状态的指令,根据指令,确定至少一个测试用机中各个测试用机的运行状态。例如,用户可通过命令行控制测试用机中各个测试用机的运行状态,方便集成到自动化测试中。此外,用户还可以通过预先设置的命令行接口,完成新建测试任务等操作。以此进一步提高了测试方法的灵活性。
步骤203,获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数。
在本实施例中,上述电子设备可以获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数。其中,被测服务器的运行参数可以是服务器的CPU(Central Processing Unit,中央处理器)利用率、内存占用等。测试用机在执行测试任务的同时可以统计各进程、线程的执行结果。为了防止实时上报结果造成网络拥塞,测试用机可以先对数据进行汇总。等待固定延时后,再上传到实时数据库(RTDB,Real Time DataBase)。实时数据库可以仅保留近期执行的测试过程的数据,需要长时间保存的数据再进行转存。数据存储以时间及测试用机的标识作为索引,可自动的统计某一时段全部或者部分测试用机的测试数据。
步骤204,根据所获取的信息项生成测试结果。
在本实施例中,上述电子设备可以根据步骤203中获取的信息项生成测试结果。其中,根据数据处理结果成测试结果,可以考虑是否接收到数据处理结果、接收到的数据处理结果是否与预期相符等因素。测试结果可以包括平均响应时间、总用时、服务器CPU利用率、内存占用等。测试结果还可以是TP99(满足百分之九十九的网络请求所需要的最低耗时)。测试结果生成后,可以展示测试结果,也可以像其他建立有通信连接的设备推送测试结果。
本申请的上述实施例提供的方法通过获取测试参数,并根据所获取的测试参数,控制至少一个测试用机的运行,而后获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数,最后根据所获取的信息项生成测试结果,提高了测试效率。
继续参见图3,图3是根据本实施例的用于测试服务器的测试方法的应用场景的一个示意图。在图3的应用场景中,测试服务器301与测试用机1、测试用机2等组成的测试用机资源池305通信连接,测试用机资源池305中的每个测试用机开启时运行有至少一个进程,至少一个进程中的每个进程包括至少一个线程,至少一个线程用于向被测服务器304发送数据处理请求,并接收被测服务器304返回的相应的数据处理结果。服务器301可以首先获取测试参数。测试参数中包括的虚拟用户数302可以是用户输入的,而后可将其存储至目标数据表303中,测试参数中包括的单个测试用机运行的进程数、单个进程包括的线程数可以是用户输入的也可以是预先存储在目标数据表303中的。测试服务器301可以根据所获取的测试参数,控制测试用机资源池305中各个测试用机的运行,而后获取以下信息项中的至少一项:测试用机资源池305中各个测试用机接收到的数据处理结果、测试用机资源池305中各个测试用机的线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数306,最后根据所获取的信息项生成测试结果。
请参考图4,图4是根据本实施例的用于测试服务器的测试方法的再一个实施例的流程示意图。
在图4中,该用于测试服务器的测试方法的流程400,包括以下步骤:
步骤401,获取用户输入的标识信息。
在本实施例中,用于测试服务器的测试方法运行于其上的电子设备(例如图1所示的服务器101)可以首先获取用户输入的标识信息。标识信息用于指示测试参数所属的测试任务,测试任务可以包括一组或多组测试参数,标识信息可以是测试任务的名称,例如,“测试1”、“洪峰测试”,同样也可以是测试任务的编号,例如,“001”、“002”。
步骤402,在目标数据表中查询与标识信息匹配的测试参数。
在本实施例中,上述电子设备可以在目标数据表中查询与步骤401中获取的标识信息匹配的测试参数。目标数据表中存储有与测试参数对应的标识信息,目标数据表中还可以存储有测试参数的执行时间。例如,标识信息为“测试1”的测试任务包括一组测试参数:虚拟用户数为1000,单个测试用机运行的进程数为8,单个进程包括的线程数为5,执行时间为5分钟。
步骤403,响应于查询到的测试参数的数量大于一组,根据查询到的测试参数中的各组测试参数的执行时间和执行序号,以及各组测试参数,控制至少一个测试用机的运行。
在本实施例中,上述电子设备可以响应于步骤402中查询到的测试参数的数量大于一组,根据查询到的测试参数中的各组测试参数的执行时间和执行序号,以及各组测试参数,控制至少一个测试用机的运行。执行序号用于指示测试参数在测试任务中被执行的顺序。
以标识信息为“洪峰测试”的压力测试任务为例,该任务包括3组测试参数执行序号可以分别是1、2、3。第一组测试参数中虚拟用户数为1000,单台压力机线程数与进程数之积为100,执行时间为600秒;第二组测试参数中虚拟用户数为20000,单台压力机线程数与进程数之积为100,执行时间为30秒;第三组测试参数中虚拟用户数为2000,单台压力机线程数与进程数之积为100,执行时间为300秒。开始执行该任务时,开始的600秒,启动10台压力机,之后的30秒启动200台压力机,最后的300秒启动20台压力机执行测试。此外还可以设置每组测试参数的执行的次数,例如,第二组测试参数执行三到四次可模拟多次流量洪峰的场景,不做改变持续当前虚拟用户数也可起到疲劳测试的效果。需要说明的是,目标数据表中的数据可以是测试任务开始前存储好的,也可以是测试任务进行中,响应于接收到测试人员输入的指令,实时存储在目标数据表中的。
步骤404,获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数。
在本实施例中,上述电子设备可以获取以下信息项中的至少一项数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数。
步骤405,根据所获取的信息项生成测试结果。
在本实施例中,上述电子设备可以根据步骤404中获取的信息项生成测试结果。
步骤404、步骤405的实现细节和技术效果可以参考步骤203、步骤204中的说明,在此不再赘述。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于测试服务器的测试方法的流程400增加了根据查询到的测试参数中的各组测试参数的执行时间和执行序号,以及各组测试参数,控制至少一个测试用机的运行的步骤。由此,本实施例描述的方案丰富了对测试方法的控制手段,进一步提高了测试的效率。
进一步参考图5,作为对上述方法的实现,本申请提供了一种用于测试服务器的测试装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于测试服务器的测试装置500包括:第一获取单元501、控制单元502、第二获取单元503、生成单元504,其中,第一获取单元501,用于获取测试参数,其中,测试参数包括:虚拟用户数、单个测试用机运行的进程数、单个进程包括的线程数,虚拟用户数为开启的测试用机数、单个测试用机运行的进程数与单个进程包括的线程数之积;控制单元502,用于根据所获取的测试参数,控制至少一个测试用机的运行;第二获取单元503,用于获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数;生成单元504,用于根据所获取的信息项生成测试结果。
在本实施例中,第一获取单元501、控制单元502、第二获取单元503、生成单元504的具体处理可以参考图2对应实施例步骤201、步骤202、步骤203、步骤204的详细描述,在此不再赘述。
在本实施例的一些可选实现方式中,控制单元502,包括:第一确定子单元(图中未示出),用于根据虚拟用户数、单个测试用机运行的进程数和单个进程包括的线程数,确定需要开启的测试用机数;获取子单元(图中未示出),用于获取至少一个测试用机中各个测试用机的状态信息,其中,状态信息用于指示测试用机处于开启或停止的运行状态;第二确定子单元(图中未示出),用于根据需要开启的测试用机数以及所获取的状态信息,确定至少一个测试用机中各个测试用机的运行状态;第三确定子单元(图中未示出),用于根据单个测试用机运行的进程数和单个进程包括的线程数,确定所确定的处于开启运行状态的测试用机中运行的进程数和线程数。
在本实施例的一些可选实现方式中,装置还包括确定单元(图中未示出),确定单元(图中未示出)配置用于:响应于获取到用户输入的用于改变至少一个测试用机中各个测试用机的运行状态的指令,根据指令,确定至少一个测试用机中各个测试用机的运行状态。
在本实施例的一些可选实现方式中,测试参数存储在目标数据表中,目标数据表中还存储有测试参数的执行时间;以及根据所获取的测试参数,控制至少一个测试用机的运行,包括:在执行时间内,根据所获取的测试参数,控制至少一个测试用机的运行。
在本实施例的一些可选实现方式中,目标数据表中还存储有与测试参数对应的标识信息和执行序号,标识信息用于指示测试参数所属的测试任务,执行序号用于指示测试参数在测试任务中被执行的顺序;以及获取单元(图中未示出),进一步配置用于:获取用户输入的标识信息;在目标数据表中查询与标识信息匹配的测试参数;以及控制单元502,进一步配置用于:响应于查询到的测试参数的数量大于一组,根据查询到的测试参数中的各组测试参数的执行时间和执行序号,以及各组测试参数,控制至少一个测试用机的运行。
从图5中可以看出,本实施例中用于测试服务器的测试装置500通过获取测试参数,并根据所获取的测试参数,控制至少一个测试用机的运行,而后获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数,最后根据所获取的信息项生成测试结果,提高了测试效率。
下面参考图6,其示出了适于用来实现本申请实施例的设备的计算机***600的结构示意图。图6示出的设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口606。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段、或代码的一部分,所述单元、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一获取单元、控制单元、第二获取单元、生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“用于获取测试参数的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入服务器中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:获取测试参数,其中,测试参数包括:虚拟用户数、单个测试用机运行的进程数、单个进程包括的线程数,虚拟用户数为开启的测试用机数、单个测试用机运行的进程数与单个进程包括的线程数之积;根据所获取的测试参数,控制至少一个测试用机的运行;获取以下信息项中的至少一项:数据处理结果、至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、被测服务器的运行参数;根据所获取的信息项生成测试结果。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种用于测试服务器的测试方法,其特征在于,所述测试服务器与至少一个测试用机通信连接,所述至少一个测试用机中的每个测试用机开启时运行有至少一个进程,所述至少一个进程中的每个进程包括至少一个线程,所述至少一个线程用于向被测服务器发送数据处理请求,并接收所述被测服务器返回的相应的数据处理结果,所述方法包括:
获取测试参数,其中,所述测试参数包括:虚拟用户数、单个测试用机运行的进程数、单个进程包括的线程数,所述虚拟用户数为开启的测试用机数、单个测试用机运行的进程数与单个进程包括的线程数之积;
根据所获取的测试参数,控制所述至少一个测试用机的运行;
获取以下信息项中的至少一项:所述数据处理结果、所述至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、所述被测服务器的运行参数;
根据所获取的信息项生成测试结果;所述控制所述至少一个测试用机的运行,包括:
根据所述虚拟用户数、所述单个测试用机运行的进程数和所述单个进程包括的线程数,确定需要开启的测试用机数;
获取所述至少一个测试用机中各个测试用机的状态信息,其中,所述状态信息用于指示测试用机处于开启或停止的运行状态;
根据所述需要开启的测试用机数以及所获取的状态信息,确定所述至少一个测试用机中各个测试用机的运行状态;
根据所述单个测试用机运行的进程数和所述单个进程包括的线程数,确定所确定的处于开启运行状态的测试用机中运行的进程数和线程数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于获取到用户输入的用于改变所述至少一个测试用机中各个测试用机的运行状态的指令,根据所述指令,确定所述至少一个测试用机中各个测试用机的运行状态。
3.根据权利要求1或2所述的方法,其特征在于,所述测试参数存储在目标数据表中,所述目标数据表中还存储有所述测试参数的执行时间;以及
所述根据所获取的测试参数,控制所述至少一个测试用机的运行,包括:
在所述执行时间内,根据所获取的测试参数,控制所述至少一个测试用机的运行。
4.根据权利要求3所述的方法,其特征在于,所述目标数据表中还存储有与测试参数对应的标识信息和执行序号,所述标识信息用于指示所述测试参数所属的测试任务,所述执行序号用于指示所述测试参数在所述测试任务中被执行的顺序;以及
所述获取测试参数,包括:
获取用户输入的标识信息;
在目标数据表中查询与所述标识信息匹配的测试参数;以及
所述根据所获取的测试参数,控制所述至少一个测试用机的运行,包括:
响应于查询到的测试参数的数量大于一组,根据查询到的测试参数中的各组测试参数的执行时间和执行序号,以及所述各组测试参数,控制所述至少一个测试用机的运行。
5.一种用于测试服务器的测试装置,其特征在于,所述测试服务器与至少一个测试用机通信连接,所述至少一个测试用机中的每个测试用机开启时运行有至少一个进程,所述至少一个进程中的每个进程包括至少一个线程,所述至少一个线程用于向被测服务器发送数据处理请求,并接收所述被测服务器返回的相应的数据处理结果,所述装置包括:
第一获取单元,用于获取测试参数,其中,所述测试参数包括:虚拟用户数、单个测试用机运行的进程数、单个进程包括的线程数,所述虚拟用户数为开启的测试用机数、单个测试用机运行的进程数与单个进程包括的线程数之积;
控制单元,用于根据所获取的测试参数,控制所述至少一个测试用机的运行;
第二获取单元,用于获取以下信息项中的至少一项:所述数据处理结果、所述至少一个线程发送数据处理请求与接收到相应的数据处理结果的时间差、所述被测服务器的运行参数;
生成单元,用于根据所获取的信息项生成测试结果;所述控制单元,包括:
第一确定子单元,用于根据所述虚拟用户数、所述单个测试用机运行的进程数和所述单个进程包括的线程数,确定需要开启的测试用机数;
获取子单元,用于获取所述至少一个测试用机中各个测试用机的状态信息,其中,所述状态信息用于指示测试用机处于开启或停止的运行状态;
第二确定子单元,用于根据所述需要开启的测试用机数以及所获取的状态信息,确定所述至少一个测试用机中各个测试用机的运行状态;
第三确定子单元,用于根据所述单个测试用机运行的进程数和所述单个进程包括的线程数,确定所确定的处于开启运行状态的测试用机中运行的进程数和线程数。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括确定单元,所述确定单元配置用于:
响应于获取到用户输入的用于改变所述至少一个测试用机中各个测试用机的运行状态的指令,根据所述指令,确定所述至少一个测试用机中各个测试用机的运行状态。
7.根据权利要求5或6所述的装置,其特征在于,所述测试参数存储在目标数据表中,所述目标数据表中还存储有所述测试参数的执行时间;以及
所述根据所获取的测试参数,控制所述至少一个测试用机的运行,包括:
在所述执行时间内,根据所获取的测试参数,控制所述至少一个测试用机的运行。
8.根据权利要求7所述的装置,其特征在于,所述目标数据表中还存储有与测试参数对应的标识信息和执行序号,所述标识信息用于指示所述测试参数所属的测试任务,所述执行序号用于指示所述测试参数在所述测试任务中被执行的顺序;以及
所述获取单元,进一步配置用于:
获取用户输入的标识信息;
在目标数据表中查询与所述标识信息匹配的测试参数;以及
所述控制单元,进一步配置用于:
响应于查询到的测试参数的数量大于一组,根据查询到的测试参数中的各组测试参数的执行时间和执行序号,以及所述各组测试参数,控制所述至少一个测试用机的运行。
9.一种设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN201710508953.2A 2017-06-28 2017-06-28 用于测试服务器的测试方法和装置 Active CN109144846B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710508953.2A CN109144846B (zh) 2017-06-28 2017-06-28 用于测试服务器的测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710508953.2A CN109144846B (zh) 2017-06-28 2017-06-28 用于测试服务器的测试方法和装置

Publications (2)

Publication Number Publication Date
CN109144846A CN109144846A (zh) 2019-01-04
CN109144846B true CN109144846B (zh) 2022-07-05

Family

ID=64803224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710508953.2A Active CN109144846B (zh) 2017-06-28 2017-06-28 用于测试服务器的测试方法和装置

Country Status (1)

Country Link
CN (1) CN109144846B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988552B (zh) * 2019-12-12 2023-06-30 腾讯科技(深圳)有限公司 应用程序测试方法、装置、设备及存储介质
CN114077449B (zh) * 2020-08-20 2023-08-01 网联清算有限公司 数据库服务器的测试方法、装置、电子设备和存储介质
CN112035303B (zh) * 2020-09-01 2021-08-24 腾讯科技(深圳)有限公司 一种数据测试方法、装置、计算机及可读存储介质
CN113656161A (zh) * 2021-08-17 2021-11-16 中正信评(深圳)技术服务有限公司 一种性能测试中压力产生服务的调度方法、装置和***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102480392A (zh) * 2010-11-23 2012-05-30 中兴通讯股份有限公司 性能测试装置及其工作方法
CN103150238A (zh) * 2011-12-07 2013-06-12 阿里巴巴集团控股有限公司 一种服务请求处理方法、模拟性能测试方法及装置
CN103064778B (zh) * 2011-10-20 2015-09-09 阿里巴巴集团控股有限公司 一种服务器性能测试方法、装置及***
CN105207832A (zh) * 2014-06-13 2015-12-30 腾讯科技(深圳)有限公司 一种服务器压力测试方法和装置
CN106649057A (zh) * 2015-10-28 2017-05-10 北京国双科技有限公司 一种服务器压力测试的方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7406626B2 (en) * 2004-11-12 2008-07-29 Empirix Inc. Test agent architecture
US8301761B2 (en) * 2009-03-31 2012-10-30 International Business Machines Corporation Determining server load capacity with virtual users
CN103139006A (zh) * 2011-12-05 2013-06-05 上海博腾信息科技有限公司 基于web服务的自动化测试装置及方法
US10572368B2 (en) * 2014-11-24 2020-02-25 Micro Focus Llc Application management based on data correlations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102480392A (zh) * 2010-11-23 2012-05-30 中兴通讯股份有限公司 性能测试装置及其工作方法
CN103064778B (zh) * 2011-10-20 2015-09-09 阿里巴巴集团控股有限公司 一种服务器性能测试方法、装置及***
CN103150238A (zh) * 2011-12-07 2013-06-12 阿里巴巴集团控股有限公司 一种服务请求处理方法、模拟性能测试方法及装置
CN103150238B (zh) * 2011-12-07 2015-11-11 阿里巴巴集团控股有限公司 一种服务请求处理方法、模拟性能测试方法及装置
CN105207832A (zh) * 2014-06-13 2015-12-30 腾讯科技(深圳)有限公司 一种服务器压力测试方法和装置
CN106649057A (zh) * 2015-10-28 2017-05-10 北京国双科技有限公司 一种服务器压力测试的方法及装置

Also Published As

Publication number Publication date
CN109144846A (zh) 2019-01-04

Similar Documents

Publication Publication Date Title
CN109144846B (zh) 用于测试服务器的测试方法和装置
US10430332B2 (en) System and method for performance tuning of garbage collection algorithms
CN106959894B (zh) 资源分配方法和装置
US8910128B2 (en) Methods and apparatus for application performance and capacity analysis
CN106557369A (zh) 一种多线程的管理方法及***
CN109726004B (zh) 一种数据处理方法及装置
CN105808347B (zh) 集群服务器部署计算方法及装置
CN111045911B (zh) 性能测试方法、性能测试装置、存储介质与电子设备
CN113590403B (zh) 压力测试方法、装置、***、电子设备、存储介质及产品
US11210127B2 (en) Method and apparatus for processing request
CN115150471B (zh) 数据处理方法、装置、设备、存储介质及程序产品
CN109284229B (zh) 一种基于qps的动态调整方法以及相关设备
CN114564374A (zh) 算子性能评估方法、装置、电子设备及存储介质
CN110225082B (zh) 任务处理方法、装置、电子设备和计算机可读介质
CN109857633B (zh) 一种任务算力估计方法、装置和存储介质
US11726893B2 (en) System for automatically evaluating a change in a large population of processing jobs
CN109873731B (zh) 测试方法、装置和***
CN107193749B (zh) 测试方法、装置及设备
CN115037665B (zh) 设备测试方法和装置
CN109462491B (zh) 用于测试服务器功能的***、方法和装置
CN115827179B (zh) 一种物理机设备的算力调度方法、装置、设备及存储介质
CN111767149A (zh) 调度方法、装置、设备及存储设备
CN109842665B (zh) 用于任务分配服务器的任务处理方法和装置
CN109656709B (zh) 一种Codis集群扩容的方法和装置
US9256700B1 (en) Public service for emulation of application load based on synthetic data generation derived from preexisting models

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