CN108304322A - 一种压力测试方法及终端设备 - Google Patents
一种压力测试方法及终端设备 Download PDFInfo
- Publication number
- CN108304322A CN108304322A CN201810029551.9A CN201810029551A CN108304322A CN 108304322 A CN108304322 A CN 108304322A CN 201810029551 A CN201810029551 A CN 201810029551A CN 108304322 A CN108304322 A CN 108304322A
- Authority
- CN
- China
- Prior art keywords
- data
- pressure
- user
- amplification
- network node
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test 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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种压力测试方法及终端设备,适用于数据处理技术领域,该方法包括:获取***运行过程中产生的M组操作行为数据;基于目标压测用户数量N对M组操作行为数据进行数据扩增,并基于得到的N组操作模拟数据生成测试脚本;在***中创建隐藏操作对象,基于测试脚本模拟N位用户对象对隐藏操作对象进行操作;对压力测试过程中***输出的第一操作响应数据进行筛选,并对提取出的隐藏操作对象对应的第二操作响应数据进行压测数据分析,得到***的压力测试结果。以真实用户操作时的操作行为数据为基础扩增得到模拟用户对应的操作模拟数据,并对生产的操作响应数据进行数据分离,提升了对生产***压测的可靠性,保证了压测结果的真实可靠。
Description
技术领域
本发明属于数据处理技术领域,尤其涉及压力测试方法及终端设备。
背景技术
压力测试(简称压测),是通过大量用户对***进行并发操作,以确定***性能的一种测试方法。为了实现对如软件***以及web应用***等***性能的压力测试,现有技术中,都是使用压测工具直接模拟用户行为操作,生成出大量的操作模拟数据,并由技术人员对***初始化配置好后得到测试***,再利用生成的操作模拟数据对测试***进行压测,以得到***的性能测试结果。
生产***,是指在真实环境下支持单位日常业务运作的***。由于真实用户的操作行为较为复杂受到的影响因素较多,直接使用压测工具模拟出来的操作模拟数据往往与真实用户的操作行为存在较大出入,使得压测的结果往往与真实情况差异较大,同时,真实环境下运行的生产***为了适应不同用户不同情况下的使用,其参数配置也会产生非常大的变化,因此生产***与测试***的参数配置情况也相差较大,在测试***中进行压测也难以真实反映出***的性能。
综上可知,现有的压测方法可靠性较低,难以得到***的真实性能。
发明内容
有鉴于此,本发明实施例提供了一种压力测试方法及终端设备,以解决现有技术中压测方法可靠性较低,难以得到***真实性能的问题。
本发明实施例的第一方面提供了一种压力测试方法,包括:
获取***运行过程中产生的M组操作行为数据;
基于目标压测用户数量N对所述M组操作行为数据进行数据扩增,得到N组操作模拟数据,并基于所述N组操作模拟数据生成测试脚本,其中M为正整数,N为大于M的正整数;
在所述***中创建隐藏操作对象,基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作,以对所述***进行压力测试;
对所述压力测试过程中所述***输出的第一操作响应数据进行筛选,提取出所述隐藏操作对象对应的第二操作响应数据,并对所述第二操作响应数据进行压测数据分析,得到所述***的压力测试结果。
本发明实施例的第二方面提供了一种压力测试终端设备,所述压力测试终端设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤。
获取***运行过程中产生的M组操作行为数据;
基于目标压测用户数量N对所述M组操作行为数据进行数据扩增,得到N组操作模拟数据,并基于所述N组操作模拟数据生成测试脚本,其中M为正整数,N为大于M的正整数;
在所述***中创建隐藏操作对象,基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作,以对所述***进行压力测试;
对所述压力测试过程中所述***输出的第一操作响应数据进行筛选,提取出所述隐藏操作对象对应的第二操作响应数据,并对所述第二操作响应数据进行压测数据分析,得到所述***的压力测试结果。
本发明实施例的第三方面提供了一种计算机可读存储介质,包括:存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的压力测试方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:1、通过以真实用户操作时产生的操作行为数据为基础进行扩增,得到模拟用户对应的操作模拟数据,保证了压测模式中用户行为模拟的真实可靠,从而使得压测的结果更加接近***的真实性能。2、通过在***中直接生成对真实用户不可见的隐藏操作对象,并利用生成的模拟用户来对隐藏操作对象进行操作,由于隐藏操作对象对真实用户不可见,使得即使是在生成***中进行压测,也不会出现真实用户误操作隐藏操作对象的情况发生,最后仅对隐藏操作对象输出的操作响应数据来进行,保证了最终压测分析的数据均为此次生成的模拟用户对生产***进行操作后得到的响应数据,从而实现了压测时真实用户对生产***的操作与压测对生产***的操作产生的数据完全分离开来,提升了对生产***压测的可靠性,保证了压测结果的真实可靠。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的压力测试方法的实现流程示意图;
图2是本发明实施例二提供的压力测试方法的实现流程示意图;
图3是本发明实施例四提供的压力测试方法的实现流程示意图;
图4是本发明实施例五提供的压力测试方法的实现流程示意图;
图5是本发明实施例六提供的压力测试装置的结构示意图;
图6是本发明实施例七提供的压力测试终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
优先应当说明的,本发明实施例中的***,均是指真实环境下支持单位日常业务运作的生产***。考虑到现有技术中的操作模拟数据均是由压测工具直接用户模拟进行操作所产生的数据,其与真实用户的操作行为存在较大出入,因此,为了实现更为真实可靠的压测,本发明实施例中会采集真实用户在生产***中进行操作时产生的操作行为数据,并以此作为基础来进行生产***的压力测试。
图1示出了本发明实施例一提供的压力测试方法的实现流程图,详述如下:
S101,获取***运行过程中产生的M组操作行为数据。
在本发明实施例中,一位真实用户对生产***进行的所有操作行为所产生的操作行为数据即为一组操作行为数据。因此,S101中需要获取M位真实用户对生产***进行操作所产生的M组操作行为数据。
由于M组操作行为数据是本发明实施例的样本数据,也正是基于这M组操作行为数据进行扩增,本发明实施例才能得对***进行压测所需的N组操作模拟数据,因此M的数值大小直接决定了以样本数据扩增得到的操作模拟数据的有效性高低。例如,若M的数值过小,如M为个位数时,由于其数值过小样本的代表性较低,但真实用户操作的随机性较强情况较为复杂,此时样本数据无法有效地反映出真实用户的操作行为,其有效性就非常低。另一方面,若M的数值过大,例如直接达到了此次压测所希望模拟的用户的数量,此时虽然可以非常真实地模拟出真实用户在生产***中的操作,但由于压测所需模拟的用户数量非常大,直接记录大量的真实用户的操作行为数据需要耗费大量的时间成本以及经济成本,使得压测的综合成本急剧上升,操作的可行大大降低。
作为本发明的一个优选实施例,M可以是一个由技术人员预先设定的确定数值,但由上述说明可知,其数值不应过大或过小,优选地可以设定为2000。本发明实施例通过设定固定数量的方法,保证了采集的操作行为数据的数量,从而保障了模拟用户操作行为的有效性。
作为本发明的另一个优选实施例,不对M的具体数值进行设定,而是对采集真实用户的操作行为数据的时间段进行设定,如采集生产***在连续24小时内所产生的所有操作行为数据,并作为本发明实施例所需的M组操作行为数据。此时M的具体数据需要根据采集到的实际操作行为数据量来进行确定。本发明实施例考虑到不同时间段真实用户的活跃度相差较大,通过对采集时间段的指定,可以实现在真实用户活跃度高的时候进行采集,从而提高了对操作行为数据采集的灵活性。具体是采用上述固定数量方法还是固定时间段方法来进行本发明实施例操作行为数据的采集,此处不予限定,具体可由技术人员根据实际情况选取。
S102,基于目标压测用户数量N对M组操作行为数据进行数据扩增,得到N组操作模拟数据,并基于N组操作模拟数据生成测试脚本,其中M为正整数,N为大于M的正整数。
其中,目标压测用户数量N是指本次压测所需模拟的用户数量,由于每一次压测所需模拟的用户数量不一定相同,因此,需要由用户在压测前对目标压测用户数量N进行设定。作为本发明的一个优选实施例,若未接收到用户设定的目标压测用户数量N,读取预设的默认目标压测用户数量作为目标压测用户数量N。
在采集到所需的M组操作行为数据后,需要对M组操作行为数据进行数据扩增,以得到压测所需的操作模拟数据。其中数据扩增的方法包括但不限于直接对S101中采集到的M组操作行为数据进行复制,以得到最终所需的N组操作模拟数据。
由于得到的N组操作模拟数据仅仅只是压测脚本中的部分数据,为了实现对***的压测,还需要读取用户对压测时长以及施压模式等其他压测数据的设置,才能生成最终所需的压测脚本,因此在S102扩增得到所需的N组操作模拟数据之后,还会读取用户对其他压测数据的设置来生成压测脚本,以实现后续对***的压测过程。
S103,在***中创建隐藏操作对象,基于测试脚本模拟N位用户对象对隐藏操作对象进行操作,以对***进行压力测试。
其中,隐藏操作对象是指对真实用户不可见的操作对象。实际应用中,为了满足真实用户的使用需求,技术人员需要在***中设计许多真实用户可操作的对象,如设计一些功能选择框功能设置框等,以使得真实用户通过对这些操作对象的操作实现对***的正常使用。由于本发明实施例中压测的对象是真实环境中运行的***,无法保证在对***压测过程中是否会有真实用户对***进行操作,因此,为了防止真实用户对压测造成影响,本发明实施例中会在***创建隐藏操作对象,由于其对真实用户是不可见的,从而保证了真实用户不可能会对该隐藏操作对象进行任何操作,进而防止了真实用户对***压测造成影响。
作为本发明的一个优选实施例,考虑到***中包含的操作对象种类和数量都较多,为了减小压测创建隐藏操作对象给***带来的工作负荷,优选地可以在S101采集到M组操作行为数据之后,识别M组操作行为数据对应的操作对象,并以此为模板创建对应的隐藏操作对象,在保证模拟出来的用户可以正常对***隐藏操作对象进行操作的同时,减小创建隐藏操作对象给***带来的工作负荷。
S104,对压力测试过程中***输出的第一操作响应数据进行筛选,提取出隐藏操作对象对应的第二操作响应数据,并对第二操作响应数据进行压测数据分析,得到***的压力测试结果。
由于本发明实施例无法保证在对***压测过程中是否会有真实用户对***进行操作,因此,为了防止真实用户对***进行操作时***产生的操作响应数据对压测造成影响,本发明实施例中会将模拟用户对隐藏操作对象操作时***输出的操作响应数据,与真实用户对***中正常的操作对象进行操作时***输出的操作响应数据进行区分,并只对模拟用户对应的操作响应数据进行压测数据分析,以保证最终得到的压测结果的真实可靠。
作为本发明的一个优选实施例,隐藏操作对象在响应模拟用户的操作并生成对应的操作响应数据的同时,会对生成的操作响应数据添加压测标识,从而使得隐藏操作对象生成的操作响应数据与正常的操作对象生成的操作响应数据得以区分。此时,在对隐藏操作对象对应的操作响应数据进行筛选时,只需要筛选出带有压测标识的操作响应数据即可。
在筛选出隐藏操作对象对应的操作响应数据后,通过对其中包含的数据量并发信息、数据响应时间信息以及响应成功数据量信息等进行分析,以得到最终所需的对***的压测结果。考虑到进行压测的不同用户的需求不同,对***性能指标压测结果的关注侧重点有所差异,因此,在本发明实施例中,进行压测的用户可以自行设定所需分析的***性能指标,此时本发明实施例仅会对用户设定的***性能指标进行分析并给出相应的结果,如可以设置为仅需分析***的平均响应时间,此时仅会对此次压测的平均响应时间进行分析并给出相应的结果。
在本发明实施例中,通过以真实用户操作时产生的操作行为数据为样本数据进行扩增得到模拟用户对应的操作模拟数据,保证了压测模式中用户行为模拟的真实可靠,从而使得压测的结果更加接近***的真实性能。
由于***压测的最终目的是确定出***在真实环境中运行时所能够承受的用户并发操作数量,以帮助技术人员了解***对多用户操作的承受能力,而现有技术中在测试***进行压力测试,其测试的对象过于理想化,使得得到的压力测试结果也过于理想化,严重偏离了***的真实性能。本发明实施例中通过在***中直接生成对真实用户不可见的隐藏操作对象,并利用生成的模拟用户来对隐藏操作对象进行操作,由于隐藏操作对象对真实用户不可见,使得即使是在***中进行压测,也不会出现真实用户误操作隐藏操作对象的情况发生,最后仅对隐藏操作对象输出的操作响应数据来进行,保证了最终压测分析的数据均为此次生成的模拟用户对***进行操作后得到的响应数据,从而实现了压测时真实用户对***的操作与压测时模拟用户对***的操作产生的数据完全分离开来,提升了对***压测的可靠性,保证了压测结果的真实可靠。
作为S102数据扩增的一种具体实现方式,本发明实施例二如图2所示,包括:
S1021,根据操作行为数据的组数M以及目标压测用户数量N计算扩增比例值a,并判断扩增比例值a是否为整数,公式如下。
本发明实施例中,会根据设定的目标压测用户数量N对采集到的操作行为数据的组数进行比例复制扩增,即将M组操作行为数据进行一次或多次复制,直至得到与目标压测用户数量N对应的N组操作模拟数据,由于每个模拟用户对应着一组操作模拟数据,因此,在扩增得到N组操作模拟数据后,即可实现对所需的N位用户操作行为的模拟。
S1022,若扩增比例值a为整数,基于扩增比例值a对M组操作行为数据进行比例扩增,得到N组操作模拟数据。
当扩增比例值a为整数时,说明直接对M组操作行为数据进行a-1次复制即可得到N组操作模拟数据,如当M为1000,N为20000时,此时只需将M组操作行为数据复制19次,即可得到20000组所需的操作模拟数据,从而实现了20000模拟用户的操作模拟数据的确定。
S1023,若扩增比例值a不为整数,对扩增比例值a向下取整得到扩增比例系数b,并基于扩增比例系数b对M组操作行为数据进行比例扩增,得到N组操作模拟数据。
当扩增比例值a不为整数时,说明直接对M组操作行为数据进行整体复制是无法得到所需的N组操作模拟数据,此时本发明实施例会对a向下取整得到所需的扩增比例系数b,并对M组操作行为数据进行扩增比例系数b-1次复制,得到M×(b-1)操作模拟数据。由于此时得到的操作模拟数据组数与N的差值N-M×(b-1)小于N,对于还缺少的差值部分再从N组操作模拟数据选取出相应数量的操作模拟数据进行填补,即可得到所需的N组操作模拟数据。其中从N组操作模拟数据选取从操作模拟数据选取的方法既可以是随机选取,也可以是根据技术人员设定的其他选取规则进行选取,此处不予限定。
本发明实施例中,通过对M组操作行为数据进行复制,以实现对操作行为数据的扩增,得到所需的N组操作模拟数据。
作为本发明优选实施例三,包括:
S105,在获取***运行过程中产生的M组操作行为数据之前,还包括:
对***在预设时间段内产生的操作行为数据进行用户活跃时间段分析,确定出操作行为数据的数据量小于预设数据量的用户不活跃时间段。
由于本发明实施例无法保证在对***压测过程中是否会有真实用户对***进行操作,但考虑到真实用户对***的使用操作具有一定的规律性,如一般来说凌晨的时候用户使用***的频率较低活跃度较低,***的用户访问量较小,因此,为了尽可能地减小真实用户对***压测的影响,本发明实施例中会对真实用户对***的使用操作时间段进行分析,并在用户活跃度较低的时间段来对***进行压测,以提升压测效果的可靠性。
其中预设时间段以及用户活跃时间段划分的时长单位,均可由技术人员根据实际需求进行设定,如可以设定为预设时间段为当前时间前的24小时内,用户活跃时间段划分的时长单位为1小时,此时本发明实施例会将当前时间前的24小时以1个小时为单位进行划分,得到24个时间段,并对其进行用户活跃时间段分析,确定出其中用户不活跃的时间段。其中,是否活跃的判断标准为将时间段内接收到的操作行为数据的数据量与预设的预设数据量进行对比,若小于预设数据量,则可判定为用户不活跃,其中预设数据量的具体值可由技术人员根据***的实际用户使用情况进行设定。若出现多个时间段同时满足小于预设数据量的条件,此时可以由用户自行选定其中的一个时间段作为用户不活跃时间段,或者直接将其中操作行为数据的数据量最小的时间段作为用户不活跃时间段。另外,若所有的时间段操作行为数据的数据量均不小于预设数据量时,也可以由用户自行选取或者将数据量最小的时间段作为用户不活跃时间段。
基于测试脚本模拟N位用户对象对隐藏操作对象进行操作,包括:
若判断出当前时间属于用户不活跃时间段,基于测试脚本模拟N位用户对象对隐藏操作对象进行操作。
当确定出了用户不活跃时间段,选取在用户不活跃时间段对***进行压测,由于此时真实用户活跃度较低对***的使用操作较少,产生的操作行为数据较少,此时压测一方面能尽量减少压测对真实用户使用***的影响,另一方面也能保证真实用户对压测的干扰最小,极大地提升了对***压测的真实可靠性。
作为本发明实施例四S103的一种具体实现方式,如图3所示,包括:
S1031,确定出生成后的N组操作模拟数据在进行数据传输时所需历经的网络节点,以及网络节点对应的数据传输顺序。
现有技术在对用户进行模拟并利用模拟用户对测试***进行压测时,都是直接将生成的操作模拟数据直接输入至测试***所在的设备,如直接将生成的操作模拟数据输入至***服务器,并在其中对***进行压测。然而实际情况中,真实用户的操作行为数据需要从用户使用的终端出发,历经各个网络节点对应的设备后才能到达***所在的设备,进而实现对***的使用操作。例如对于web应用***而言,真实用户在对其进行操作时,都是现在用户设备中先对web应用进行操作,产生的操作行为数据会从用户设备传输至网关设备,再进一步传输至其他网络节点,最后才会传输至web应用***所在的服务器,服务器再对操作行为数据进行处理,以完成对真实用户操作的响应。
由此可知,现有技术中的***压测方法仅仅只是对测试***所在的设备进行压测,而没有考虑到实际情况中数据所需历经的各个网络节点的情况,由于这些网络节点同样直接影响着真实用户对***的实际使用,因此现有的压测方法并不能很好地实现对***真实可靠的压测。
本发明实施例中,为了进一步地提升对***压测的真实可靠性,会对从用户从使用终端发出操作行为数据开始到***所在设备进行处理为止的一系列过程进行完整模拟。其中,本发明实施例会将压测的设备作为真实用户使用的终端以进行模拟用户的操作模拟数据的输出。
S1032,基于数据传输顺序,控制N组操作模拟数据在各个网络节点中依次进行处理。
以从真实用户的使用终端到***所在的设备所经历的完整网络节点及对应的设备为:用户终端-网关设备-***服务器为例进行说明,此时本发明实施例会将压测的设备作为用户终端,并将生成的N组操作模拟数据发送至网关设备,再由网关设备将其处理后传输至***服务器。
S1033,在网络节点对N组操作模拟数据处理完成后,控制***利用接收到的N组操作模拟数据对隐藏操作对象进行操作。
在传输完成后,***所在的设备接收到了N组操作模拟数据,此时再由***利用接收到的N组操作模拟数据对隐藏操作对象进行操作,以实现对***的压测。
本发明实施例中,通过对操作模拟数据传输时对应的整个网络节点进行依次数据传输处理压测,最大限度地模拟了真实环境下的数据传输处理情况,使得对用户使用操作***的过程模拟更加真实,得到的压测结果更加真实可靠。
作为本发明优选实施例五,如图4所示,包括:
S106,对网络节点输出的节点响应数据进行压测数据分析,得到网络节点对应的节点压测结果。
在本发明实施例中,在操作模拟数据传输到该网络节点后,还会对该网络节点输出的响应数据进行记录分析,如对操作模拟数据通过该网络节点的所用的时间的进行记录,以分析出该网络节点的平均响应时间等数据。
本发明实施例通过对操作模拟数据传输时所历经的所有网络节点分别进行压测,从而实现了对***对应的整个生产链路的性能压测,全方面地反映出了***整个生产链路的性能。
本发明实施例中,利用真实用户的操作行为数据作为样本数据进行扩增,保证了得到行为模拟数据的真实可靠,利用创建隐藏操作对象以及操作响应数据划分的方式,对真实用户与模拟用户对***操作产生的数据进行数据分类,保证了***压测时不会受到真实用户操作的影响,同时,对数据传输的整个过程中的各个网络节点依次进行压测模拟,使得最终得到的压测结果更加贴近于真实环境中的***性能,极大地提升了压测结果的真实可靠性。
对应于上文实施例的方法,图5示出了本发明实施例提供的压力测试装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。图6示例的压力测试装置可以是前述实施例一提供的压力测试方法的执行主体。
参照图5,该压力测试装置包括:
数据获取模块51,用于获取***运行过程中产生的M组操作行为数据。
脚本生成模块52,用于基于目标压测用户数量N对所述M组操作行为数据进行数据扩增,得到N组操作模拟数据,并基于所述N组操作模拟数据生成测试脚本,其中M为正整数,N为大于M的正整数。
压力测试模块53,用于在所述***中创建隐藏操作对象,基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作,以对所述***进行压力测试。
压测分析模块54,用于对所述压力测试过程中所述***输出的第一操作响应数据进行筛选,提取出所述隐藏操作对象对应的第二操作响应数据,并对所述第二操作响应数据进行压测数据分析,得到所述***的压力测试结果。
进一步地,所述脚本生成模块52,包括:
比例值计算模块,用于根据操作行为数据的组数M以及所述目标压测用户数量N计算扩增比例值a,并判断所述扩增比例值a是否为整数,公式如下。
第一扩增模块,用于若所述扩增比例值a为整数,基于所述扩增比例值a对所述M组操作行为数据进行比例扩增,得到所述N组操作模拟数据。
第二扩增模块,用于若所述扩增比例值a不为整数,对所述扩增比例值a向下取整得到扩增比例系数b,并基于所述扩增比例系数b对所述M组操作行为数据进行比例扩增,得到所述N组操作模拟数据。
进一步地,该压力测试装置53,还包括:
用户活跃分析模块,用于对所述***在预设时间段内产生的操作行为数据进行用户活跃时间段分析,确定出所述操作行为数据的数据量小于预设数据量的用户不活跃时间段。
压测开始检测模块,用于若判断出当前时间属于所述用户不活跃时间段,基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作。
进一步地,压力测试模块53,包括:
节点确定模块,用于确定出生成后的所述N组操作模拟数据在进行数据传输时所需历经的网络节点,以及所述网络节点对应的数据传输顺序。
节点处理模块,用于基于所述数据传输顺序,控制所述N组操作模拟数据在各个所述网络节点中依次进行处理。
对象操作模块,用于在所述网络节点对所述N组操作模拟数据处理完成后,控制所述***利用接收到的所述N组操作模拟数据对所述隐藏操作对象进行操作。
进一步地,该压力测试装置,还包括:
节点压测模块,用于对所述网络节点输出的节点响应数据进行压测数据分析,得到所述网络节点对应的节点压测结果。
本发明实施例提供的压力测试装置中各模块实现各自功能的过程,具体可参考前述图1所示实施例一的描述,此处不再赘述。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
还应理解的是,虽然术语“第一”、“第二”等在文本中在一些本发明实施例中用来描述各种元素,但是这些元素不应该受到这些术语的限制。这些术语只是用来将一个元素与另一元素区分开。例如,第一接触可以被命名为第二接触,并且类似地,第二接触可以被命名为第一接触,而不背离各种所描述的实施例的范围。第一接触和第二接触都是接触,但是它们不是同一接触。
图6是本发明一实施例提供的压力测试终端设备的示意图。如图6所示,该实施例的压力测试终端设备6包括:处理器60、存储器61,所述存储器61中存储有可在所述处理器60上运行的计算机程序62。所述处理器60执行所述计算机程序62时实现上述各个数据表备份方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块51至54的功能。
所述压力测试终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述压力测试终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是压力测试终端设备6的示例,并不构成对压力测试终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述压力测试终端设备还可以包括输入发送设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述压力测试终端设备6的内部存储单元,例如压力测试终端设备6的硬盘或内存。所述存储器61也可以是所述压力测试终端设备6的外部存储设备,例如所述压力测试终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述压力测试终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述压力测试终端设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经发送或者将要发送的数据。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使对应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种压力测试方法,其特征在于,包括:
获取***运行过程中产生的M组操作行为数据;
基于目标压测用户数量N对所述M组操作行为数据进行数据扩增,得到N组操作模拟数据,并基于所述N组操作模拟数据生成测试脚本,其中M为正整数,N为大于M的正整数;
在所述***中创建隐藏操作对象,基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作,以对所述***进行压力测试;
对所述压力测试过程中所述***输出的第一操作响应数据进行筛选,提取出所述隐藏操作对象对应的第二操作响应数据,并对所述第二操作响应数据进行压测数据分析,得到所述***的压力测试结果。
2.如权利要求1所述的压力测试方法,其特征在于,所述基于目标压测用户数量N对所述M组操作行为数据进行数据扩增,包括:
根据操作行为数据的组数M以及所述目标压测用户数量N计算扩增比例值a,并判断所述扩增比例值a是否为整数,公式如下;
若所述扩增比例值a为整数,基于所述扩增比例值a对所述M组操作行为数据进行比例扩增,得到所述N组操作模拟数据;
若所述扩增比例值a不为整数,对所述扩增比例值a向下取整得到扩增比例系数b,并基于所述扩增比例系数b对所述M组操作行为数据进行比例扩增,得到所述N组操作模拟数据。
3.如权利要求1所述的压力测试方法,其特征在于,还包括:
在所述获取***运行过程中产生的M组操作行为数据之前,还包括:
对所述***在预设时间段内产生的操作行为数据进行用户活跃时间段分析,确定出所述操作行为数据的数据量小于预设数据量的用户不活跃时间段;
所述基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作,包括:
若判断出当前时间属于所述用户不活跃时间段,基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作。
4.如权利要求1或3所述的压力测试方法,其特征在于,所述基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作,包括:
确定出生成后的所述N组操作模拟数据在进行数据传输时所需历经的网络节点,以及所述网络节点对应的数据传输顺序;
基于所述数据传输顺序,控制所述N组操作模拟数据在各个所述网络节点中依次进行处理;
在所述网络节点对所述N组操作模拟数据处理完成后,控制所述***利用接收到的所述N组操作模拟数据对所述隐藏操作对象进行操作。
5.如权利要求4所述的压力测试方法,其特征在于,还包括:
对所述网络节点输出的节点响应数据进行压测数据分析,得到所述网络节点对应的节点压测结果。
6.一种压力测试终端设备,其特征在于,所述压力测试处理终端设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取***运行过程中产生的M组操作行为数据;
基于目标压测用户数量N对所述M组操作行为数据进行数据扩增,得到N组操作模拟数据,并基于所述N组操作模拟数据生成测试脚本,其中M为正整数,N为大于M的正整数;
在所述***中创建隐藏操作对象,基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作,以对所述***进行压力测试;
对所述压力测试过程中所述***输出的第一操作响应数据进行筛选,提取出所述隐藏操作对象对应的第二操作响应数据,并对所述第二操作响应数据进行压测数据分析,得到所述***的压力测试结果。
7.如权利要求6所述压力测试终端设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:
在所述获取***运行过程中产生的M组操作行为数据之前,还包括:
对所述***在预设时间段内产生的操作行为数据进行用户活跃时间段分析,确定出所述操作行为数据的数据量小于预设数据量的用户不活跃时间段;
所述基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作,包括:
若判断出当前时间属于所述用户不活跃时间段,基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作。
8.如权利要求6所述压力测试终端设备,其特征在于,所述基于所述测试脚本模拟N位用户对象对所述隐藏操作对象进行操作,具体包括:
确定出生成后的所述N组操作模拟数据在进行数据传输时所需历经的网络节点,以及所述网络节点对应的数据传输顺序;
基于所述数据传输顺序,控制所述N组操作模拟数据在各个所述网络节点中依次进行处理;
在所述网络节点对所述N组操作模拟数据处理完成后,控制所述***利用接收到的所述N组操作模拟数据对所述隐藏操作对象进行操作。
9.如权利要求8所述压力测试终端设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:
对所述网络节点输出的节点响应数据进行压测数据分析,得到所述网络节点对应的节点压测结果。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810029551.9A CN108304322B (zh) | 2018-01-12 | 2018-01-12 | 一种压力测试方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810029551.9A CN108304322B (zh) | 2018-01-12 | 2018-01-12 | 一种压力测试方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108304322A true CN108304322A (zh) | 2018-07-20 |
CN108304322B CN108304322B (zh) | 2021-02-09 |
Family
ID=62868713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810029551.9A Active CN108304322B (zh) | 2018-01-12 | 2018-01-12 | 一种压力测试方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108304322B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684211A (zh) * | 2018-12-18 | 2019-04-26 | 北京顺丰同城科技有限公司 | 一种基于店铺维度的订单调度***压力测试方法及装置 |
CN110166636A (zh) * | 2019-04-15 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 压力测试的装置、方法及存储介质 |
CN110569190A (zh) * | 2019-08-27 | 2019-12-13 | 中国工商银行股份有限公司 | 交易压力测试方法和装置、以及电子设备和可读存储介质 |
CN111309570A (zh) * | 2019-11-19 | 2020-06-19 | 天津网之易创新科技有限公司 | 压力测试方法、介质、装置和计算设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7222265B1 (en) * | 2001-07-02 | 2007-05-22 | Lesuer Brian J | Automated software testing |
CN101882105A (zh) * | 2010-06-01 | 2010-11-10 | 华南理工大学 | 一种测试Web网页并发环境下响应时间的方法 |
CN102799670A (zh) * | 2012-07-16 | 2012-11-28 | 北京国创富盛通信股份有限公司 | 压力测试数据处理装置和压力测试数据处理方法 |
-
2018
- 2018-01-12 CN CN201810029551.9A patent/CN108304322B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7222265B1 (en) * | 2001-07-02 | 2007-05-22 | Lesuer Brian J | Automated software testing |
CN101882105A (zh) * | 2010-06-01 | 2010-11-10 | 华南理工大学 | 一种测试Web网页并发环境下响应时间的方法 |
CN102799670A (zh) * | 2012-07-16 | 2012-11-28 | 北京国创富盛通信股份有限公司 | 压力测试数据处理装置和压力测试数据处理方法 |
Non-Patent Citations (1)
Title |
---|
赫建营: "一种有效的Web性能测试方法及其应用", 《计算机应用研究》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684211A (zh) * | 2018-12-18 | 2019-04-26 | 北京顺丰同城科技有限公司 | 一种基于店铺维度的订单调度***压力测试方法及装置 |
CN109684211B (zh) * | 2018-12-18 | 2022-04-08 | 北京顺丰同城科技有限公司 | 一种基于店铺维度的订单调度***压力测试方法及装置 |
CN110166636A (zh) * | 2019-04-15 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 压力测试的装置、方法及存储介质 |
CN110166636B (zh) * | 2019-04-15 | 2022-07-29 | 深圳壹账通智能科技有限公司 | 压力测试的装置、方法及存储介质 |
CN110569190A (zh) * | 2019-08-27 | 2019-12-13 | 中国工商银行股份有限公司 | 交易压力测试方法和装置、以及电子设备和可读存储介质 |
CN110569190B (zh) * | 2019-08-27 | 2023-03-31 | 中国工商银行股份有限公司 | 交易压力测试方法和装置、以及电子设备和可读存储介质 |
CN111309570A (zh) * | 2019-11-19 | 2020-06-19 | 天津网之易创新科技有限公司 | 压力测试方法、介质、装置和计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108304322B (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108304322A (zh) | 一种压力测试方法及终端设备 | |
CN108334572A (zh) | 一种基于图数据库的电网拓扑分析引擎***及方法 | |
CN104252481A (zh) | 主从数据库一致性的动态校验方法和装置 | |
CN110554958A (zh) | 图数据库测试方法、***、设备和存储介质 | |
CN109937418B (zh) | 用于仿真的基于波形的重构 | |
CN110910982A (zh) | 自编码模型训练方法、装置、设备及存储介质 | |
CN106803799B (zh) | 一种性能测试方法和装置 | |
CN112087313B (zh) | 用于生成网络模拟场景的技术 | |
CN106681903B (zh) | 生成测试用例的方法及装置 | |
CN104461903A (zh) | 基于浏览器的测试客户端的方法和装置 | |
US11409928B2 (en) | Configurable digital twin | |
CN109241994A (zh) | 一种用户异常行为检测方法、装置、设备及存储介质 | |
CN110362481A (zh) | 自动测试方法及终端设备 | |
CN109101412B (zh) | 测试文件生成、测试方法、装置、存储介质和计算机设备 | |
CN111708712A (zh) | 用户行为测试用例的生成方法、流量回放方法及电子设备 | |
CN109783381B (zh) | 一种测试数据生成方法、装置及*** | |
CN109684517A (zh) | 一种历史数据存储方法、读写方法、存储装置和设备 | |
CN112418305A (zh) | 一种训练样本的生成方法、装置、计算机设备和存储介质 | |
CN112631920A (zh) | 一种测试方法、装置、电子设备及可读存储介质 | |
CN115242684B (zh) | 全链路压测方法、装置、计算机设备及存储介质 | |
CN111984519A (zh) | 一种用于业务***的测试方法及其装置 | |
CN108875374A (zh) | 基于文档节点类型的恶意pdf检测方法及装置 | |
CN111210279A (zh) | 一种目标用户预测方法、装置和电子设备 | |
US20040138867A1 (en) | System and method for modeling multi-tier distributed workload processes in complex systems | |
CN113535594B (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 |