CN108681506A - 一种压力测试方法及装置 - Google Patents

一种压力测试方法及装置 Download PDF

Info

Publication number
CN108681506A
CN108681506A CN201810390862.8A CN201810390862A CN108681506A CN 108681506 A CN108681506 A CN 108681506A CN 201810390862 A CN201810390862 A CN 201810390862A CN 108681506 A CN108681506 A CN 108681506A
Authority
CN
China
Prior art keywords
test
item
user equipment
module
pressure
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.)
Granted
Application number
CN201810390862.8A
Other languages
English (en)
Other versions
CN108681506B (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.)
Wuxi Ruiqin Technology Co Ltd
Original Assignee
Wuxi Ruiqin 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 Wuxi Ruiqin Technology Co Ltd filed Critical Wuxi Ruiqin Technology Co Ltd
Priority to CN201810390862.8A priority Critical patent/CN108681506B/zh
Publication of CN108681506A publication Critical patent/CN108681506A/zh
Application granted granted Critical
Publication of CN108681506B publication Critical patent/CN108681506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F11/3672Test management

Abstract

本发明公开了一种压力测试方法,具体为:用户设备根据用户对所述用户设备发起的测试请求,确定所述测试请求所请求测试的压力测试模块;所述压力测试项模块中包括至少一个压力测试项,以及每个压力测试项的测试比例和嵌套循环方式;所述用户设备按照所述压力测试项中每个压力测试项的测试比例以及嵌套循环方式,执行所述压力测试模块;并在执行所述压力测试模块中的每个压力测试项时,获取所述用户设备的运行数据;所述用户设备根据所述运行数据,确定所述用户设备在所述压力测试项中存在异常状态时,向所述用户显示与所述异常状态对应的告警。

Description

一种压力测试方法及装置
技术领域
本发明涉及压力测试技术领域,尤其涉及一种压力测试方法及装置。
背景技术
目前,在用户设备的压力测试阶段,为了测试用户设备在运行过程中是否存在异常,通常需要人工让系统进入睡眠、休眠、热启动、冷启动等状态,并需要手动唤醒所述待测的用户设备。在用户设备还需要人工检测在测试过程中,是否出现硬件和驱动的丢失,以及其他错误等异常状态。由于压力测试需要非常庞大的测试数量,所以会耗费巨大的人工成本,而且人为测试会在长时间重复性的测试过程中由于疲劳而产生一些疏忽性错误。
现有技术中,通常会根据测试需求,人工选取多个测试项进行测试,并将各个测试项编译在被测的用户设备中,以便测试时能够在用户设备的运行过程中获取用户设备中的各个测试项所对应的运行数据。
基于上述分析可知,现有技术中的压力测试方法,虽然在一定程度上能够采集到各个测试项所对应的运行数据,但是,在每次更改测试项时,都必须重新修改测试项的源代码、重新编译,灵活性和调试效率较差。另外,而且,现有技术中的压力测试方法比较单一,无法及时地了解用户设备的错误情况,不便于测试人员对错误的排查和分析。
发明内容
本发明实施例提供了一种压力测试方法及装置,用以解决现有技术中的压力测试方法存在灵活性和调试效率较差,无法实时反应用户设备的运行情况,以及不便对用户设备的错误进行分析和排查的问题。
本发明实施例提供的具体技术方案如下:
本发明实施例提供一种压力测试方法,包括:
用户设备根据用户对所述用户设备发起的测试请求,确定所述测试请求所请求测试的压力测试模块;所述压力测试项模块中包括至少一个压力测试项,以及每个压力测试项的测试比例和嵌套循环方式;
所述用户设备按照所述压力测试项中每个压力测试项的测试比例以及嵌套循环方式,执行所述压力测试模块;并在执行所述压力测试模块中的每个压力测试项时,获取所述用户设备的运行数据;
所述用户设备根据所述运行数据,确定所述用户设备在所述压力测试项中存在异常状态时,向所述用户显示与所述异常状态对应的告警。
一种可能的实现方式,所述压力测试模块为睡眠测试模块,所述睡眠测试模块包括:睡眠测试项、休眠测试项、热启动项;
所述睡眠测试项、休眠测试项、热启动项的测试比例为M:N:L;所述睡眠测试模块的嵌套循环方式,包括:所述睡眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述睡眠测试项循环N次和所述休眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
一种可能的实现方式,所述压力测试模块为休眠测试模块,所述休眠测试模块包括:休眠测试项、睡眠测试项、热启动项;
所述休眠测试项、睡眠测试项、热启动项的比例为M:N:L;所述嵌套循环方式,包括:所述休眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述休眠测试项循环N次和所述睡眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
一种可能的实现方式,所述压力测试模块为混合测试模块,所述混合测试模块包括:睡眠测试模块、休眠测试模块、热启动模块;
所述睡眠测试模块、所述休眠测试模块、所述热启动模块的测试比例为a:b:c;所述a>b>c;a,b,c为正整数。
一种可能的实现方式,所述用户设备在执行所述压力测试模块中的每个压力测试项时,获取所述用户设备的运行数据,包括:
所述用户设备在所述每个压力测试项中被唤醒后,运行所述用户设备中的应用程序,以使所述用户设备处于高负荷运行状态;
所述用户设备检测所述用户设备中可运行的硬件或软件的数量,以及所述用户设备中可运行的硬件的运行状态或软件的运行状态,将所述用户设备中可运行的硬件的运行状态或软件的运行状态作为所述用户设备的硬件或软件的运行数据。
本发明实施例提供一种压力测试装置,包括:
获取单元,用于根据用户对所述用户设备发起的测试请求,确定所述测试请求所请求测试的压力测试模块;所述压力测试项模块中包括至少一个压力测试项,以及每个压力测试项的测试比例和嵌套循环方式;
处理单元,用于按照所述压力测试项中每个压力测试项的测试比例以及嵌套循环方式,执行所述压力测试模块;并在执行所述压力测试模块中的每个压力测试项时,获取所述用户设备的运行数据;根据所述运行数据,确定所述用户设备在所述压力测试项中存在异常状态时,向所述用户显示与所述异常状态对应的告警。
一种可能的实现方式,所述压力测试模块为睡眠测试模块,所述睡眠测试模块包括:睡眠测试项、休眠测试项、热启动项;
所述睡眠测试项、休眠测试项、热启动项的测试比例为M:N:L;所述睡眠测试模块的嵌套循环方式,包括:所述睡眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述睡眠测试项循环N次和所述休眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
一种可能的实现方式,所述压力测试模块为休眠测试模块,所述休眠测试模块包括:休眠测试项、睡眠测试项、热启动项;
所述休眠测试项、睡眠测试项、热启动项的比例为M:N:L;所述嵌套循环方式,包括:所述休眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述休眠测试项循环N次和所述睡眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
一种可能的实现方式,所述压力测试模块为混合测试模块,所述混合测试模块包括:睡眠测试模块、休眠测试模块、热启动模块;
所述睡眠测试模块、所述休眠测试模块、所述热启动模块的测试比例为a:b:c;所述a>b>c;a,b,c为正整数。
一种可能的实现方式,所述处理单元具体用于:
在所述每个压力测试项中被唤醒后,运行所述用户设备中的应用程序,以使所述用户设备处于高负荷运行状态;检测所述用户设备中可运行的硬件或软件的数量,以及所述用户设备中可运行的硬件的运行状态或软件的运行状态,将所述用户设备中可运行的硬件的运行状态或软件的运行状态作为所述用户设备的硬件或软件的运行数据。
本发明实施例提供了一种计算机可读存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述任意一项所述的方法。
本发明实施例提供了一种计算机程序产品,包括计算机可读指令,当计算机读取并执行所述计算机可读指令,使得计算机执行如上述任意一项所述的方法。
本发明实施例提供一种芯片,所述芯片与存储器相连,用于读取并执行所述存储器中存储的软件程序,以实现上述任一项及任一项中各种可能的设计中的方法。
本发明实施例的有益效果如下:
本发明实施例中,通过获取用户的测试项的设置,即可确定用户设备对应的各个测试项,以及测试项的循环次数,无需将各个测试项编译并固化在用户设备中,同样的,若要更改用户设备对应的各个测试项,也无需重新编译、修改和固化用户设备的源代码,重新向测试系统发起变量设置指令即可,从而实现了测试项的随时更改,灵活性较强,测试效率较高,而且,通过在测试循环过程中来执行用户设备的监测以及运行数据的采集,不仅可以及时地获取到测试系统发送的各个测试项,还可以及时地采集到各个测试项对应运行数据,能够实时地反应出用户设备的运行情况,进而,给测试系统提供了良好的数据基础,方便了测试系统对用户设备的错误分析和排查。
附图说明
图1为本发明实施例中压力测试方法的流程示意图;
图2a为本发明实施例中用户操作界面示意图;
图2b为本发明实施例中用户操作界面示意图;
图2c为本发明实施例中数据显示管理界面示意图;
图3为本发明实施例中压力测试方法的示意图;
图4为本发明实施例中压力测试方法的流程示意图;
图5为本发明实施例中压力测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中的压力测试方法存在灵活性和调试效率较差,无法反映用户设备的压力运行下的真实情况,无法在测试期间有效快速的发现用户设备的错误,进而有效的进行分析和排查的问题。
本发明实施例中,本发明实施例中,通过获取用户的测试项的设置,即可确定用户设备对应的各个测试项,以及测试项的循环次数,无需将各个测试项编译并固化在用户设备中,同样的,若要更改用户设备对应的各个测试项,也无需重新编译、修改和固化用户设备的源代码,重新向测试系统发起变量设置指令即可,从而实现了测试项的随时更改,灵活性较强,测试效率较高,而且,通过在测试循环过程中来执行用户设备的监测以及运行数据的采集,不仅可以及时地获取到测试系统发送的各个测试项,还可以及时地采集到各个测试项对应运行数据,能够实时地反应出用户设备的运行情况,进而,给测试系统提供了良好的数据基础,方便了测试系统对用户设备的错误分析和排查。
下面通过具体实施例对本发明方案进行详细描述,当然,本发明并不限于以下实施例,此外,以下实施例中的用户设备可以是但不限于是windows系统,还可以是其他系统,在此不做限定。
本发明实施例一提供了一种压力测试方法,参阅图1所示,包括:
步骤101:用户设备根据用户对所述用户设备发起的测试请求,确定所述测试请求所请求测试的压力测试模块;所述压力测试项模块中包括至少一个压力测试项,以及每个压力测试项的测试比例和嵌套循环方式;
步骤102:所述用户设备按照所述压力测试项中每个压力测试项的测试比例以及嵌套循环方式,执行所述压力测试模块;
步骤103:所述用户设备在执行所述压力测试模块中的每个压力测试项时,获取所述用户设备的运行数据;
步骤104:所述用户设备根据所述运行数据,确定所述用户设备在所述压力测试项中存在异常状态时,向所述用户显示与所述异常状态对应的告警。
在步骤101中,用户设备根据用户对所述用户设备发起的测试请求的具体实施方式,可以通过用户设备向测试人员提供一个测试系统,所述测试系统可以包括如图2a所示的用户操作界面。
该用户操作界面上可以包含但不限于:测试项选择区域,变量选择区域,变量显示区域和执行图标等等。其中,测试项选择区域用于显示包含压力测试项的各个任务名称的选择下拉菜单(其中,各个任务名称可以是压力测试项中用户在将所述压力测试项将各个测试项划分后存储至用户设备的,也可以是用户设备从压力测试的过程中用户输入的压力测试请求中获取的,具体实现方式在此不作具体限定);变量选择区域用于显示变量输入框,包含用户设备对应的所有变量的变量列表等(其中,用户设备对应的所有变量可以是预先配置在测试系统中的);变量显示区域用于显示测试人员选择的各个测试项,即变量选择列表等。
在实际应用中,测试人员可通过该压力测试选择下拉菜单,选择用户设备对应的压力测试;通过在变量输入框中输入测试项,来选取用户设备对应的各个测试项或者移除被选择的测试项,当然,测试人员也可以通过在变量列表中选取测试项,来选择用户设备对应的各个测试项或者移除被选择的测试项;在测试人员选择测试项的过程中,变量显示区域会显示出测试人员选择的每一个测试项,即显示出变量选择列表;还可以通过再次点击,实现取消操作;通过点击执行图标,向测试系统发起变量设置指令,其中,该变量设置指令中至少携带有测试人员选择的各个测试项。
为简化流程,加快压力测试的速度,本发明实施例还提供一种用户界面,如图2b所示,至少包括:测试模块和每个测试模块的循环次数。测试人员只需要选择需要测试的测试模块和对应的循环次数即可完成所述用户对所述用户设备发起的测试请求。其中,S3Focus表示计算机睡眠测试模块;S4Focus表示计算机休眠测试模块;S3only表示计算机睡眠单独测试模块;S4only表示计算机休眠单独测试模块;WarmBoot表示计算机热启动测试模块;CoolBoot表示计算机冷启动测试模块;S3S4WB示计算机混合测试模块。所述混合测试模块可以包括睡眠测试模块、休眠测试模块、热启动测试模块等。
一种可能的实现方式,所述界面可以使用Python的Tkinter与ttk模组中相关控件来进行搭建。在所述界面的标题栏上还可以显示了所述用户设备的BIOS版本信息,所述BIOS版本信息可以从Windows的SMBIOS API接口获取的。
在步骤102中,一种可能的实现方式,所述压力测试模块为睡眠测试模块,所述睡眠测试模块包括:睡眠测试项、休眠测试项、热启动项;
所述睡眠测试项、休眠测试项、热启动项的测试比例为M:N:L;所述睡眠测试模块的嵌套循环方式,包括:所述睡眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述睡眠测试项循环N次和所述休眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
在具体实施过程中,如图3所示,所述睡眠测试模块的嵌套循环方式中,以M为50,N为10,L为1为例进行说明。一个循环一共执行了上图的五个子模块和1次热启动项,其中每一个子模块包含:10次S3,1次S4。通过这种循环方法,可以着重测试睡眠测试项,更好的体现在压力测试中睡眠测试的在压力测试中的影响。
一种可能的实现方式,所述嵌套循环方式还可以将整个模块循环执行上图的K次作为一个完整的睡眠测试项。一种具体实施方式,所述K可以为5次。
在具体实施过程中,可以通过微软的pwrtest工具写成命令行并由程序调用,使得所述用户设备自动进入睡眠或者休眠状态,WB热启动则可以使用Python调用Windows cmd关于重启的命令行来实现。本发明实施例中,还可以通过其他方式实现睡眠、休眠和重启,在此不做限定。
一种可能的实现方式,所述压力测试模块为休眠测试模块,所述休眠测试模块包括:休眠测试项、睡眠测试项、热启动项;
所述休眠测试项、睡眠测试项、热启动项的比例为M:N:L;所述嵌套循环方式,包括:所述休眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述休眠测试项循环N次和所述睡眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
需要说明的是,为了避免各个压力测试的相互干扰,确保各个压力测试的稳定运行,所述测试系统可以为各个压力测试分别配置相应的运行周期,各个压力测试只能在各自对应的运行周期内运行,而在各自对应的运行周期外暂停运行。
基于此,用户设备在通过预先针对用户设备划分出的压力测试,获取到各个测试项对应的用户设备的运行状态的数据采集地址后,为了确保在该压力测试对应的每一个运行周期内都可以快速准确地读取到各个测试项对应的数据采集地址,用户设备还可以将各个测试项对应的数据采集地址保存至预设存储区域,这样,在该压力测试对应的每一个运行周期内,用户设备都可以从预设存储区域中读取到各个测试项对应的数据采集地址。
此外,为了在更改测试项后,用户设备能够及时地获取到更改后的各个测试项对应的数据采集地址,在该压力测试对应的每一个运行周期内,用户设备可以在用户设备的运行过程中周期性地从预设存储区域中读取各个测试项对应的数据采集地址,并基于各个测试项对应的数据采集地址,采集各个测试项所对应的运行数据,以及将采集到的各个测试项所对应的运行数据返回至测试系统,这样,即使更改了测试项,用户设备也可以及时地获取到更改后的各个测试项对应的数据采集地址,从而保证了获取到的各个测试项对应的运行数据的准确性和实时性,进而,确保了返回给测试系统的运行数据能够实时地反应出用户设备的运行情况,给测试系统提供了良好的数据基础,方便了测试系统对用户设备的错误分析和排查。
一种可能的实现方式,所述用户设备在执行所述压力测试模块中的每个压力测试项时,获取所述用户设备的运行数据,包括:
步骤一、所述用户设备在所述每个压力测试项中被唤醒后,运行所述用户设备中的应用程序,以使所述用户设备处于高负荷运行状态。
在一种具体的实施过程中,可以在每个压力测试的运行周期内,即用户设备自动唤醒之后,对用户设备的所有硬件设备及其驱动程序进行扫描。
为提高压力测试的效果,在扫描之前,可以先对所述用户设备执行高负荷运行。例如,所述测试系统可以打开指定列表中的音频或视频文件进行播放,播放完成后自动结束播放器的进程。
步骤二、所述用户设备检测所述用户设备中可运行的硬件或软件的数量,以及所述用户设备中可运行的硬件的运行状态或软件的运行状态,将所述用户设备中可运行的硬件的运行状态或软件的运行状态作为所述用户设备的硬件或软件的运行数据。
在步骤二中,可以对所述用户设备进行错误信息的提取和筛选。
一种具体实施方式,在每一个测试循环周期完成,都可以扫描是否有硬件设备出现黄色警示棒或者有硬件设备丢失及增加的情况。在具体实施过程中,可以通过Devcon命令行工具中的状态命令可以将当前计算机所有硬件设备的实时状态进行读取。
在步骤103中,用户设备获取各个测试项对应的运行数据,并基于各个测试项对应的运行数据,检测用户设备在运行过程中是否出现异常。
在所有测试模块完成之后,所述测试系统会根据在测试过程中获取的所述用户设备运行所述测试模块的信息和所述用户设备的运行状态,确定是否存储异常。所有的数据可以保存在指定路径,方便查阅。例如,没有错误信息可以显示为PASS,有错误信息可以显示为Fail。
在具体实施过程中,在执行所述压力测试刚开始前,所述用户设备可以将所述用户设备的所有的设备名录全部读取到一个文本文件中,所述设备名录可以作为确定所述用户设备是否出现异常的基准。每个测试周期内,通过检测所述用户设备中可运行的硬件或软件的数量,以及所述用户设备中可运行的硬件的运行状态或软件的运行状态,将所述用户设备中可运行的硬件的运行状态或软件的运行状态作为所述用户设备的硬件或软件的运行数据。与基准文件进行比较,求取差集,如果差集为空,则说明是正常状态,如果差集为非空,那这个差集就是当前计算机丢失或者增加的硬件设备。所产生的差集设备也会被提取记录到指定路径的文本文档。具体实施过程中可以通过正则表达式的相关通配符进行关键字的精确匹配,将所有状态异常的设备和驱动筛选出来,并写入到指定路径的文本文档。
一种可能的实现方式,在测试人员点击显示在用户操作界面上的执行图标之后,测试系统还可以将用户操作界面切换至如图2c所示的数据显示管理界面,该数据显示管理界面可以包含但不限于:数据管理区域,数据显示区域,数据控制区域,测试结果显示区域等等。其中,数据管理区域用于显示数据管理菜单,该数据管理菜单可以包括但不限于数据查找,数据保存,数据删除等,测试人员可通过该数据管理菜单,针对用户设备的运行数据执行相应的管理操作;数据控制区域用于显示数据控制菜单,该数据控制菜单可以包括但不限于暂停数据显示,继续数据显示,暂停采集数据,继续采集数据等,测试人员可通过该数据控制菜单针对用户设备的运行数据执行相应的控制操作;测试结果显示区域用于显示用户设备的测试结果;数据显示区域用于显示用户设备返回的各个测试项对应的运行数据。
在实际应用中,用户设备获取到各个测试项对应的运行数据的情况下,可以针对接收到的各个测试项对应的运行数据进行分析,若确定各个测试项对应的运行数据均符合针对相应测试项设定的正常条件,则认定该用户设备在运行过程中未出现异常;若确定任意一个测试项对应的运行数据不符合针对该测试项设定的正常条件,则认定该用户设备在运行过程中出现异常。
在步骤104中,一种可能的实现方式,用户设备还可以将所述用户设备在运行过程中是否出现异常的测试结果显示在数据显示管理界面上的测试结果显示区域中。
进一步的,为了使得测试人员能够简单明了地确定该用户设备在运行过程中是否出现异常,测试系统在接收到用户设备返回的各个测试项对应的运行数据时,可以在数据显示管理界面上的数据显示区域中,以数据分析图的形式显示用户设备返回的各个测试项对应的运行数据。具体的,测试系统根据接收到的各个测试项对应的运行数据,分别为各个测试项绘制相应的数据分析图,并将各个测试项对应的数据分析图显示在数据显示管理界面上的数据显示区域,也可以直接将各个测试项对应的数据分析图显示在数据显示区域,也可以根据测试项的数目,将数据显示区域划分为相应数目的数据显示子区域,并将各个测试项对应的数据分析图分别显示在不同的数据显示子区域上,具体显示方式在此不作具体限定。
进一步地,测试系统在确定用户设备在运行过程中出现异常时,为了能够及时地暂停用户设备的运行,测试系统还可以向用户设备发送暂停测试指令,用户设备在接收到测试系统发送的暂停测试指令时,控制用户设备暂停运行,并暂停采集各个测试项对应的运行数据。
为了方便测试系统分析用户设备在运行过程中出现异常的原因,用户设备在接收到测试系统发送的暂停测试指令时,在控制用户设备暂停运行之前,还可以采集在用户设备出现异常时用户设备对应的所有变量(其中,这里的变量不仅限于变量设置指令所指示的各个测试项,还可以包括用户设备对应的其他变量)的运行数据,并将采集到的所有变量对应的运行数据返回至测试系统,这样,测试系统就可以针对在用户设备出现异常时该用户设备对应的所有变量的运行数据进行综合全面地分析,从而定位出用户设备出现异常的具体原因。
结合图3中的实施例,所述休眠测试模块的嵌套循环方式中,以M为50,N为10,L为1为例进行说明。一个循环一共执行了上图的五个子模块和1次热启动项,其中每一个子模块包含:10次S4,1次S3。通过这种循环方法,可以着重测试休眠测试项,更好的体现在压力测试中休眠测试的对压力测试的影响。
一种可能的实现方式,睡眠单独测试模块与休眠单独测试模块都是单独对计算机睡眠及休眠的测试,WarmBoot循环测试与CoolBoot循环测试都是单独对计算机的热启动与冷启动进行测试。测试人员在测试之前,可以在每个测试模块对应的循环变量中输入需要测试的循环次数,所述循环次数可以为一个整型常量。在具体实施过程中,所述测试系统可以通过IntVar与所述测试变量对应的文本框进行绑定,从而将用户输入的循环次数输入至到实际执行函数中进行使用。
以睡眠单独测试模块为例,对单独测试模块进行说明,如图4所示,所述睡眠单独测试模块可以包括:
步骤401、用户设备获取用户的测试请求;
其中,所述测试请求可以包括所述用户需要测试的测试模块,所述测试对应的用户设备的信息,所述测试模块的循环次数等。
步骤402、所述用户设备获取所述用户设备的设备名录作为基准项;
其中,所述设备名录包括所述用户设备中的所有可运行的硬件设备以及所述硬件设备的驱动程序等。
步骤403、所述用户设备根据所述测试请求执行睡眠单独测试模块;
步骤404、在每个循环周期内,扫描所述用户设备的所述硬件设备,并确定是否出现异常;若出现异常,则提取异常数据。若未出现异常,则显示通过。
步骤405、根据所述设备名录与扫描的所述用户设备的所述硬件设备的数据进行对比,确定是否出现异常;若出现异常,则提取所述异常数据;例如,丢失或增加的硬件设备等。
步骤406,判断所述睡眠单独测试模块的循环次数是否达到所述测试请求中的混合次数,若是,则执行步骤八,若否,则执行步骤七;
步骤407、返回至步骤三;
步骤408、确定所述睡眠单独测试模块测试结束,输出测试结果。
需要说明的是,在用户设备执行重启或者关机时,当前所运行的程序都会关闭,为不影响测试的连续性。本发明实施例中,可以将WarmBoot或CoolBoot的模块包成独立的子脚本,由主程序进行调用,主程序做的事情就是在刚开始运行的时候将这些独立的子脚本复制到启动盘的Startup路径下面并启动所述子脚本,凡是在所述子脚本路径下面的执行文件都会在开机后的第一时间自动运行,这样就保证了测试的连续性。
在存储当前执行的循环次数时,可以在每执行一个循环周期时,在一个指定的文本文档中做一个行标记,做完标记之后,通过读取文本中当前的总行数,确定当前所执行的循环次数。因此,通过上述方法,无论执行多少次开关机,在统计所述循环次数都不会受影响,以保证测试的准确性。
一种可能的实现方式,所述压力测试模块为混合测试模块,所述混合测试模块包括:睡眠测试模块、休眠测试模块、热启动模块;
所述睡眠测试模块、所述休眠测试模块、所述热启动模块的测试比例为a:b:c;所述a>b>c;a,b,c为正整数。
在混合测试模块中,睡眠测试模块,休眠测试模块和热启动测试模块的三者混合的比例可以为5:2:1,即每个混合测试模块中包括5次睡眠测试,2次休眠测试和1次热启动测试。当然混合测试模块还可以为其他测试模块的混合,在此不再赘述。
一种可能的实现方式,在所述混合测试模块中加入了定时监控功能,定时监控为无论设置多少个循环次数,一旦测试时间超过预设时间,则所述混合测试模块的测试自动停止。
在具体实施过程中,可以在用户设备刚开始运行的时候读取当前用户设备的系统时间,然后在这个时间基础上计算出预设时间后的系统时间,这个计算出预设时间后的系统时间就是所述混合测试模块的目标停止时间,当每个测试周期结束时,都可以将系统当前时间与所述目标停止时间进行对比,一旦达到或者超过这个停止时间,所述测试系统就会触发停止测试,并显示出测试结果。
其他测试模块的具体实施方式可以参考图2a-4的实施方式,在此不再赘述。
在使用本发明之后,可以显著的节省压力测试的人工成本,也提高了测试效率,节约了时间。以一个专案20台机器为例:若使用人工进行手动压力测试,则需要(以每项测试400个cycle,每人同时操作五台机器为例):S3手动测试需要8小时;S4手动测试需要8.5小时;S3only手动测试需要9小时;S4only手动测试需要10小时;WarmBoot手动测试需要10小时;CoolBoot手动测试需要12小时;S3S4WB手动测试需要11小时。一共需要4个人,总共花费274个小时,按每人每天8小时工作时长来算,完成上面的一轮测试就相当于需要274/8=34.25个人力天。而且这些测试是压力测试中经常需要反复去测试的项目,所以实际需要的时间更加可观。通过本发明实施方式,原本需要人工去测试的工作全部都可以自动化完成,上述人工所需要的时间可以全部节省,而且自动化测试的效率更高,且不会出现一些由于人力疲劳出现的疏忽性错误,一举多得,大大提高了生产力且节省了生产成本。
参阅图5所示,本发明实施例提供一种压力测试装置,至少包括:
获取单元501,用于根据用户对所述用户设备发起的测试请求,确定所述测试请求所请求测试的压力测试模块;所述压力测试项模块中包括至少一个压力测试项,以及每个压力测试项的测试比例和嵌套循环方式;
处理单元502,用于按照所述压力测试项中每个压力测试项的测试比例以及嵌套循环方式,执行所述压力测试模块;并在执行所述压力测试模块中的每个压力测试项时,获取所述用户设备的运行数据;根据所述运行数据,确定所述用户设备在所述压力测试项中存在异常状态时,向所述用户显示与所述异常状态对应的告警。
一种可能的实现方式,所述压力测试模块为睡眠测试模块,所述睡眠测试模块包括:睡眠测试项、休眠测试项、热启动项;
所述睡眠测试项、休眠测试项、热启动项的测试比例为M:N:L;所述睡眠测试模块的嵌套循环方式,包括:所述睡眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述睡眠测试项循环N次和所述休眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
一种可能的实现方式,所述压力测试模块为休眠测试模块,所述休眠测试模块包括:休眠测试项、睡眠测试项、热启动项;
所述休眠测试项、睡眠测试项、热启动项的比例为M:N:L;所述嵌套循环方式,包括:所述休眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述休眠测试项循环N次和所述睡眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
一种可能的实现方式,所述压力测试模块为混合测试模块,所述混合测试模块包括:睡眠测试模块、休眠测试模块、热启动模块;
所述睡眠测试模块、所述休眠测试模块、所述热启动模块的测试比例为a:b:c;所述a>b>c;a,b,c为正整数。
一种可能的实现方式,处理单元502具体用于:
在所述每个压力测试项中被唤醒后,运行所述用户设备中的应用程序,以使所述用户设备处于高负荷运行状态;检测所述用户设备中可运行的硬件或软件的数量,以及所述用户设备中可运行的硬件的运行状态或软件的运行状态,将所述用户设备中可运行的硬件的运行状态或软件的运行状态作为所述用户设备的硬件或软件的运行数据。
在介绍了本发明示例性实施方式的方法和装置之后,本发明示例性实施方式还可以用于压力测试的计算机可读存储介质。本发明实施例提供了一种计算机可读存储介质,该非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行上述压力测试方法的步骤。
本发明实施例提供了一种计算机可读存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述任意一项所述的方法。
本发明实施例提供了一种计算机程序产品,包括计算机可读指令,当计算机读取并执行所述计算机可读指令,使得计算机执行如上述任意一项所述的方法。
本发明实施例提供一种芯片,所述芯片与存储器相连,用于读取并执行所述存储器中存储的软件程序,以实现上述任一项及任一项中各种可能的设计中的方法。
综上所述,本发明实施例中,通过获取用户的测试项的设置,即可确定用户设备对应的各个测试项,以及测试项的循环次数,无需将各个测试项编译并固化在用户设备中,同样的,若要更改用户设备对应的各个测试项,也无需重新编译、修改和固化用户设备的源代码,重新向测试系统发起变量设置指令即可,从而实现了测试项的随时更改,灵活性较强,测试效率较高,而且,通过在测试循环过程中来执行用户设备的监测以及运行数据的采集,不仅可以及时地获取到测试系统发送的各个测试项,还可以及时地采集到各个测试项对应运行数据,能够实时地反应出用户设备的运行情况,进而,给测试系统提供了良好的数据基础,方便了测试系统对用户设备的错误分析和排查。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种压力测试方法,其特征在于,包括:
用户设备根据用户对所述用户设备发起的测试请求,确定所述测试请求所请求测试的压力测试模块;所述压力测试项模块中包括至少一个压力测试项,以及每个压力测试项的测试比例和嵌套循环方式;
所述用户设备按照所述压力测试项中每个压力测试项的测试比例以及嵌套循环方式,执行所述压力测试模块;并在执行所述压力测试模块中的每个压力测试项时,获取所述用户设备的运行数据;
所述用户设备根据所述运行数据,确定所述用户设备在所述压力测试项中存在异常状态时,向所述用户显示与所述异常状态对应的告警。
2.如权利要求1所述的压力测试方法,其特征在于,所述压力测试模块为睡眠测试模块,所述睡眠测试模块包括:睡眠测试项、休眠测试项、热启动项;
所述睡眠测试项、休眠测试项、热启动项的测试比例为M:N:L;所述睡眠测试模块的嵌套循环方式,包括:所述睡眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述睡眠测试项循环N次和所述休眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
3.如权利要求1或2所述的压力测试方法,其特征在于,所述压力测试模块为休眠测试模块,所述休眠测试模块包括:休眠测试项、睡眠测试项、热启动项;
所述休眠测试项、睡眠测试项、热启动项的比例为M:N:L;所述嵌套循环方式,包括:所述休眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述休眠测试项循环N次和所述睡眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
4.如权利要求3所述的压力测试方法,其特征在于,所述压力测试模块为混合测试模块,所述混合测试模块包括:睡眠测试模块、休眠测试模块、热启动模块;
所述睡眠测试模块、所述休眠测试模块、所述热启动模块的测试比例为a:b:c;所述a>b>c;a,b,c为正整数。
5.如权利要求1,2,4任一项所述的压力测试方法,其特征在于,所述用户设备在执行所述压力测试模块中的每个压力测试项时,获取所述用户设备的运行数据,包括:
所述用户设备在所述每个压力测试项中被唤醒后,运行所述用户设备中的应用程序,以使所述用户设备处于高负荷运行状态;
所述用户设备检测所述用户设备中可运行的硬件或软件的数量,以及所述用户设备中可运行的硬件的运行状态或软件的运行状态,将所述用户设备中可运行的硬件的运行状态或软件的运行状态作为所述用户设备的硬件或软件的运行数据。
6.一种压力测试装置,其特征在于,包括:
获取单元,用于根据用户对所述用户设备发起的测试请求,确定所述测试请求所请求测试的压力测试模块;所述压力测试项模块中包括至少一个压力测试项,以及每个压力测试项的测试比例和嵌套循环方式;
处理单元,用于按照所述压力测试项中每个压力测试项的测试比例以及嵌套循环方式,执行所述压力测试模块;并在执行所述压力测试模块中的每个压力测试项时,获取所述用户设备的运行数据;根据所述运行数据,确定所述用户设备在所述压力测试项中存在异常状态时,向所述用户显示与所述异常状态对应的告警。
7.如权利要求6所述的压力测试装置,其特征在于,所述压力测试模块为睡眠测试模块,所述睡眠测试模块包括:睡眠测试项、休眠测试项、热启动项;
所述睡眠测试项、休眠测试项、热启动项的测试比例为M:N:L;所述睡眠测试模块的嵌套循环方式,包括:所述睡眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述睡眠测试项循环N次和所述休眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
8.如权利要求6或7所述的压力测试装置,其特征在于,所述压力测试模块为休眠测试模块,所述休眠测试模块包括:休眠测试项、睡眠测试项、热启动项;
所述休眠测试项、睡眠测试项、热启动项的比例为M:N:L;所述嵌套循环方式,包括:所述休眠测试模块的子模块重复循环M/N次和L次热启动项;所述子模块为所述休眠测试项循环N次和所述睡眠测试项执行N2/M次;所述M>N>L;M,N,L为正整数。
9.如权利要求8所述的压力测试装置,其特征在于,所述压力测试模块为混合测试模块,所述混合测试模块包括:睡眠测试模块、休眠测试模块、热启动模块;
所述睡眠测试模块、所述休眠测试模块、所述热启动模块的测试比例为a:b:c;所述a>b>c;a,b,c为正整数。
10.如权利要求6,7,9任一项所述的压力测试装置,其特征在于,所述处理单元具体用于:
在所述每个压力测试项中被唤醒后,运行所述用户设备中的应用程序,以使所述用户设备处于高负荷运行状态;检测所述用户设备中可运行的硬件或软件的数量,以及所述用户设备中可运行的硬件的运行状态或软件的运行状态,将所述用户设备中可运行的硬件的运行状态或软件的运行状态作为所述用户设备的硬件或软件的运行数据。
CN201810390862.8A 2018-04-27 2018-04-27 一种压力测试方法及装置 Active CN108681506B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810390862.8A CN108681506B (zh) 2018-04-27 2018-04-27 一种压力测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810390862.8A CN108681506B (zh) 2018-04-27 2018-04-27 一种压力测试方法及装置

Publications (2)

Publication Number Publication Date
CN108681506A true CN108681506A (zh) 2018-10-19
CN108681506B CN108681506B (zh) 2021-11-05

Family

ID=63802514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810390862.8A Active CN108681506B (zh) 2018-04-27 2018-04-27 一种压力测试方法及装置

Country Status (1)

Country Link
CN (1) CN108681506B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669831A (zh) * 2018-12-26 2019-04-23 无锡睿勤科技有限公司 一种测试方法及电子设备
CN110286281A (zh) * 2019-06-11 2019-09-27 上海龙旗科技股份有限公司 一种智能设备老化测试的方法与设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020082846A1 (en) * 2000-12-21 2002-06-27 Ming-Chih Chang Method and system for generating quality control testing procedures
CN1549125A (zh) * 2003-05-09 2004-11-24 英业达股份有限公司 计算机压力测试中辅助加压的方法
CN1553331A (zh) * 2003-05-30 2004-12-08 英业达股份有限公司 计算机压力测试的平衡方法
CN102541734A (zh) * 2011-12-27 2012-07-04 Tcl集团股份有限公司 基于android平台的设备的压力测试方法及装置
CN102855188A (zh) * 2012-08-03 2013-01-02 福州瑞芯微电子有限公司 基于Android的系统压力测试方法
CN102981863A (zh) * 2011-09-07 2013-03-20 奇智软件(北京)有限公司 一种开机启动项目的管理方法和装置
CN103455416A (zh) * 2013-07-18 2013-12-18 北京航空航天大学 一种基于占用Android系统智能设备内存和CPU的压力测试方法
US20150341229A1 (en) * 2014-05-20 2015-11-26 Krystallize Technologies, Inc Load generation application and cloud computing benchmarking

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020082846A1 (en) * 2000-12-21 2002-06-27 Ming-Chih Chang Method and system for generating quality control testing procedures
CN1549125A (zh) * 2003-05-09 2004-11-24 英业达股份有限公司 计算机压力测试中辅助加压的方法
CN1553331A (zh) * 2003-05-30 2004-12-08 英业达股份有限公司 计算机压力测试的平衡方法
CN102981863A (zh) * 2011-09-07 2013-03-20 奇智软件(北京)有限公司 一种开机启动项目的管理方法和装置
CN102541734A (zh) * 2011-12-27 2012-07-04 Tcl集团股份有限公司 基于android平台的设备的压力测试方法及装置
CN102855188A (zh) * 2012-08-03 2013-01-02 福州瑞芯微电子有限公司 基于Android的系统压力测试方法
CN103455416A (zh) * 2013-07-18 2013-12-18 北京航空航天大学 一种基于占用Android系统智能设备内存和CPU的压力测试方法
US20150341229A1 (en) * 2014-05-20 2015-11-26 Krystallize Technologies, Inc Load generation application and cloud computing benchmarking

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669831A (zh) * 2018-12-26 2019-04-23 无锡睿勤科技有限公司 一种测试方法及电子设备
CN109669831B (zh) * 2018-12-26 2022-05-17 无锡睿勤科技有限公司 一种测试方法及电子设备
CN110286281A (zh) * 2019-06-11 2019-09-27 上海龙旗科技股份有限公司 一种智能设备老化测试的方法与设备

Also Published As

Publication number Publication date
CN108681506B (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
EP3149590B1 (en) Performance optimization tip presentation during debugging
US9189365B2 (en) Hardware-assisted program trace collection with selectable call-signature capture
US8554811B2 (en) Software routine fingerprints in performance data
US9519571B2 (en) Method for analyzing transaction traces to enable process testing
CN109992498B (zh) 测试用例的生成方法及系统、计算机系统
US20110225592A1 (en) Contention Analysis in Multi-Threaded Software
US20100223600A1 (en) Thread execution analyzer
CN104794050A (zh) 应用程序的测试方法、装置及系统
CN103019942B (zh) 一种基于安卓系统的待测应用自动测试方法和系统
US9274930B2 (en) Debugging system using static analysis
US20100180245A1 (en) Methods and products for determining and visualizin ic behavior
WO2013174200A1 (zh) 代码分析方法及代码分析系统、计算机存储介质
CN108664372A (zh) 测试过程的监控装置、方法及计算机可读存储介质
CN110941553A (zh) 一种代码检测方法、装置、设备及可读存储介质
CN108595336A (zh) 一种基于以太网的计算机软件测试系统
CN102214133A (zh) 一种计算机硬件快速诊断测试系统
CN108681506A (zh) 一种压力测试方法及装置
TW201616356A (zh) 偵錯韌體/軟體以產生追蹤資料之系統與方法、記錄媒體及電腦程式產品
CN107045474B (zh) 一种Fuzz测试中的程序流跟踪方法及装置
CN111241447A (zh) 一种网页数据采集方法、系统及存储介质
CN109871307A (zh) 一种精确定位启动时间问题的自动化测试方法
US9075921B2 (en) Error simulation
US20120005540A1 (en) Search suggestions for static code analysis
CN107992406B (zh) 一种软件测试方法、相关系统及计算机可读存储介质
CN110311806A (zh) 一种移动应用程序界面响应延迟诊断方法、系统及终端

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