CN108572918A - 性能测试方法、装置、计算机设备及存储介质 - Google Patents
性能测试方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN108572918A CN108572918A CN201810332203.9A CN201810332203A CN108572918A CN 108572918 A CN108572918 A CN 108572918A CN 201810332203 A CN201810332203 A CN 201810332203A CN 108572918 A CN108572918 A CN 108572918A
- Authority
- CN
- China
- Prior art keywords
- logic flow
- service logic
- test
- implementing result
- test case
- 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
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/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)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种性能测试方法、装置、计算机设备及存储介质。所述方法包括:获取性能测试需求,其中,所述性能测试需求包括***间的关联性业务逻辑流程的性能测试需求;根据所述关联性业务逻辑流程生成测试用例;执行所述测试用例,并将执行结果保存;根据所述执行结果分析并定位所述关联性业务逻辑流程的性能测试中存在的异常。本发明实施例按照需求来进行性能测试,能较好的定位***间(模块间)的关联性业务逻辑流程的性能测试中存在的异常,方便测试人员对***间的关联性业务逻辑流程进行测试,以提高软件产品的质量。
Description
技术领域
本发明涉及测试技术领域,尤其涉及一种性能测试方法、装置、计算机设 备及存储介质。
背景技术
在软件开发的过程中,需要对软件产品进行性能测试,以来提高软件产品 的质量。当进行性能测试时,存在有以***维度来进行测试的情况,即以*** (模块)为单位,在***内(模块内)进行相关功能的测试。若仅以***维度 来进行测试,那么可能会忽略***与***之间(模块与模块之间)的测试,如 A***调用B***等。如此不能很好的定位软件开发过程中***之间(模块与 模块之间)存在的一些异常,即会忽略***间(模块间)的关联性测试问题。
发明内容
本发明实施例提供一种性能测试方法、装置、计算机设备及存储介质,可 对***间的关联性业务逻辑流程进行测试,提高了软件产品的测试质量。
第一方面,本发明实施例提供了一种性能测试方法,该方法包括:
获取性能测试需求,其中,所述性能测试需求包括***间的关联性业务逻 辑流程的性能测试;
根据所述关联性业务逻辑流程生成测试用例;
执行所述测试用例,并将执行结果保存;
根据所述执行结果分析并定位所述关联性业务逻辑流程的性能测试中存在 的异常。
第二方面,本发明实施例提供了一种装置,该装置包括用于执行上述第一 方面所述一种性能测试方法的单元。
第三方面,本发明实施例提供了一种计算机设备,所述计算机设备包括存 储器,以及与所述存储器相连的处理器;
所述存储器用于存储计算机程序,所述处理器用于运行所述存储器中存储 的计算机程序,以执行上述第一方面所述的性能测试方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可 读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令 被处理器执行时,实现上述第一方面所述的性能测试方法。
本发明实施例通过获取性能测试需求,其中,所述性能测试需求包括*** 间的关联性业务逻辑流程的性能测试;根据所述关联性业务逻辑流程生成测试 用例;执行所述测试用例,并将执行结果保存;根据所述执行结果分析并定位 所述关联性业务逻辑流程的性能测试中存在的异常。本发明实施例按照需求来 进行性能测试,能较好的定位***间的关联性业务逻辑流程中的异常,提高软 件产品的测试质量。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要 使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实 施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
图1是本发明实施例提供的一种性能测试方法的流程示意图;
图2是本发明实施例提供的一种性能测试方法的子流程示意图;
图3是本发明实施例提供的一种性能测试方法的另一子流程示意图;
图4是本发明实施例提供的一种性能测试方法的又一子流程示意图;
图5是本发明实施例提供的一种性能测试装置的示意性框图;
图6是本发明实施例提供的生成单元的示意性框图;
图7是本发明实施例提供的执行单元的示意性框图;
图8是本发明实施例提供的分析单元的示意性框图;
图9是本发明实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部 的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳 动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包 含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除 一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添 加。也应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或” 是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括 这些组合。
以下描述的方法实施例可以应用于具有显示器和/或触摸板的移动电话、膝 上型计算机或平板计算机之类的便携式设备中,也可以应用在具有显示器和/ 或触摸板的非便携式设备,如台式计算机中。
图1为本发明实施例提供的一种性能测试方法的流程示意图。该方法包括 以下步骤S101-S104。
S101,获取性能测试需求,其中,所述性能测试需求包括***间的关联性 业务逻辑流程的性能测试需求。
其中,性能测试需求根据具体应用场景来设定,设定的性能测试需求可以 保存在文档中,如Word文档或者Excel文档或者XML文档中。在文档中,保 存的信息包括***间的关联性业务逻辑流程的性能测试需求,以及对应的关联 性业务逻辑流程的输入数据的规则和输出数据的规则。如某个性能测试需求: 计算用户的贷款由哪个银行放款。该性能测试需求涉及两个***,信用***和 放款***。其中,信用***对应有信用***的接口,放款***对应有放款*** 的接口。信用***调用信用***的接口,以根据用户贷款的产品、用户的信用 信息计算用户的贷款基数,放款***调用放款***的接口,以根据用户贷款的产品和贷款基数等从众多可以贷款的银行中,选择一个匹配的放款银行,最后 将该匹配的放款银行返回给信用***。其中,不同贷款产品、不同贷款基数等 会导致最后的放款银行不同,其中,贷款基数由信用信息决定。在该性能测试 需求的业务逻辑流程中,需要先调用信用***,再根据信用***的结果调用放 款***,再将放款***计算出来的结果返回给信用***。如此,该性能测试需 求包括***间的关联性业务逻辑流程,具体地,属于***间相互调用的关联性 业务逻辑流程。其中,需要注意的是,这里的***也可以理解为一个***中的 多个模块。本发明实施例按照需求来进行性能测试,能较好的定位***间(模 块间)的关联性业务逻辑流程中存在的异常,方便测试人员对***间的关联性 业务逻辑流程进行测试,以提高软件产品的质量。
S102,根据所述关联性业务逻辑流程生成测试用例。
可以通过如图2所示的方法生成测试用例,如图2所示,步骤S102包括 S201-S202。
S201,获取所述关联性业务逻辑流程输入数据的规则和输出数据的规则。 其中,输入/输出数据的规则可以理解为输入/输出数据元素类型以及输入/输出 数据对应的一些条件等。如对于***间的关联性业务逻辑流程的性能测试,可 以将***间调用接口对应的函数中的参数作为输入数据。具体地,在相应的 Word文档或者Excel文档或者XML文档中获取。如账号注册的业务逻辑流程 中,输入数据的规则,包括:用户名、密码、验证码,其中,用户名的格式可 以为邮箱、昵称或者电话号码等,邮箱如163邮箱、QQ邮箱、Gmail邮箱等,如电话号码为11位数字等;密码为不超过16位的由字母和数字组成的字符串 等。输出数据的规则可以为:若用户名、密码、验证码满足对应规则,返回成 功注册,若其中有一个不满足对应条件,则注册失败。再如计算用户的贷款由 哪个银行放款的业务逻辑流程中,输入数据的规则,包括:贷款产品、用户的 信用信息等,如贷款产品是已经存在的贷款产品,用户的信用信息为不同类型 的信用信息,如***相关的信用信息、借记卡相关的信用信息、保险等相关 的信用信息等,其中,不同类型的信用信息根据不同类型的标准又分为不同的 信用等级等。不同贷款产品、不同信用等级等会导致最后的放款银行不同。输 出数据的规则可以为:根据不同类型的已经存在的贷款产品和用户的信用信息, 返回对应的贷款银行给到信用***;若贷款产品不是已经存在的贷款产品,则 返回失败;若信用信息不符合,则返回失败。
S201,根据对应的输入数据的规则和输出数据的规则,生成包括输入数据 和预期结果的测试用例。
如性能测试需求:计算用户的贷款由哪个银行放款。对应地,生成的测试 用例包括:输入数据:贷款产品A、信用信息A,预期结果:银行A;输入数 据:贷款产品A、信用信息B,预期结果:银行B;贷款产品B、信用信息B, 预期结果:银行B;贷款产品B、信用信息A,预期结果:银行A等。其中, 可以使用不同的覆盖原则来生成对应的测试用例。生成的测试用例能够代表并 覆盖各种合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输 入数据、操作和环境设置等。最后从生成的测试用例中挑选中合理的、合法的 等测试用例用来作为所述关联性业务逻辑流程性能测试中的测试用例。其中, 对于不合理的、非法等的测试用例用于其他测试中,如功能性测试中。也可以 直接就生成多个合理的、合法的测试用例作为所述关联性业务逻辑流程性能测 试中的测试用例。
S103,执行测试用例,并将执行结果保存。
图3是本发明实施例提供的一种性能测试方法的一子流程示意图。如图3 所示,步骤S103包括以下步骤S301-S302。
S301,设置执行测试用例的运行参数。性能测试时,需要设置一些执行测 试用例的运行参数,如设置线程的个数、每个线程发送执行请求的次数或者执 行测试用例的时间段、吞吐量定时器等。其中,线程的个数就是虚拟用户数, 一个虚拟用户占用一个进程或者线程,设置多少虚拟用户数就设置多少个线程 数,多个线程并行执行,即同时被初始化并同时执行对应的测试用例;每个线 程发送执行请求的次数也可以理解为循环次数,如线程数为200,每个线程发 送执行请求的次数为100,那么总的请求为200*100=10000;执行测试用例的时 间段,包括执行测试用例开始的时间和执行测试用例结束的时间,在此期间,测试用例会循环执行;吞吐量定时器用于设置吞吐量,吞吐量指得是单位时间 内发送执行请求的次数,或者单位时间内同时执行测试用例的个数,即单位时 间内对***间的关联性业务逻辑流程进行测试的次数,也即指的是同一时刻同 时运行的线程。在一些实施例中,运行参数还包括其他的参数,如还包括监视 器,可以通过监视器看到图形化统计信息等;还可以包括生成执行结果的路径 和文件名称等。
S302,根据运行参数执行测试用例,并将执行结果保存。
设置好运行参数后,就可以开始执行测试用例,得到执行结果,并将执行 结果保存,如保存在日志文件中。执行结果中包括了吞吐量、不同吞吐量下的 响应时间、不同吞吐量下的资源利用率等。其中,吞吐量能够反映出软件产品 的性能,也即是软件产品的执行效率,吞吐量较大,则软件产品的性能较高, 吞吐量较小,则软件产品的性能较低。响应时间指的是执行一次业务逻辑流程 的测试过程,并获取测试结果所需的时间,通过获取测试过程中的响应时间, 能够了解到性能测试过程中的执行速度,以根据业务逻辑流程的需求进行优化 处理,提高业务逻辑流程的执行速度。其中,响应时间一般会取平均响应时间。在一些实施例中,也包括最大响应时间、最小响应时间等,在本实施例中,响 应时间包括了在一次测试中,***间的关联性业务逻辑流程进行性能测试的总 响应时间和各***分别对应的响应时间。资源利用率包括在不同吞吐量下的 CPU使用率、内存使用率等。在一些实施例中,执行结果中还可以包括测试用 例执行成功率、软件产品的版本号等。
在一些实施例中,若在软件产品的性能测试中涉及多个接口,其中的某些 接口是外部的接口/第三方接口,而该外部接口/第三方接口对测试的结果影响较 大时,可使用Mock技术来模拟外部接口对象/第三方接口对象,再根据所述运 行参数、模拟的外部接口对象/第三方接口对象来执行测试用例,并将执行结果 保存。Mock技术指的是对于某些不容易构造或者不容易获取的对象,用一个 虚拟的对象来创建以便进行测试的技术,其中,虚拟的对象就是Mock对象, Mock对象就是真实对象在调试期间的代替品。在遇到如下问题时,Mock是第 一选择:1.外部资源,比如文件***、数据源,这是因为对此类外部资源依赖性非常强,而其行为的不可预测性很可能导致测试的随机失败。2.第三方API, 当接口属于使用者,通过Mock该接口来确定测试使用者与接口的交互,明确 定义该接口的职责等。使用Mock的好处包括:第一、隔绝其他模块出错引起 本模块的测试错误。第二、隔绝其他模块的开发状态,只要定义好接口,不用 管他们开发有没有完成。第三、一些速度较慢的操作,可以用Mock Object代 替,快速返回。
如性能测试需求:计算用户的贷款由哪个银行放款,若信用***的接口、 放款***的接口属于外部接口/第三方接口,可使用Mock技术来模拟信用*** 的接口对象、放款***的接口对象,以便能顺利完成性能测试。因为在测试的 过程中不可能真的在信用***上加上一条某人所对应的贷款银行的信息,实际 上这条信息是不存在的,只是测试的过程中产生的数据。
在执行测试用例时,也会对***间的关联性业务逻辑流程中的每一个***, 使用相同的运行参数进行单独的性能测试。可以理解地,记录在不同的吞吐量 下,***间的关联性业务逻辑流程进行性能测试时的执行结果和各***单独进 行性能测试时的***执行结果,如响应时间、资源利用率等。可以理解地,在 日志文件中,有不同的吞吐量对应的***间的关联性业务逻辑流程进行性能测 试时的响应时间以及资源使用率,和各***单独进行性能测试时的响应时间以 及资源使用率。需要注意的是,该处的各***单独进行性能测试时的响应时间 与上文中提到的各***分别对应的响应时间是不同的,各***分别对应的响应 时间指的是在一次测试中,***间的关联性业务逻辑流程进行性能测试时各***对应的响应时间。
S104,根据执行结果分析并定位所述关联性业务逻辑流程的性能测试中存 在的异常。
图4是本发明实施例提供的一种性能测试方法的另一子流程示意图。如图 4所示,步骤S104包括以下步骤S401-S403。
S401,分别获取各***在相同运行参数下对应的***执行结果,其中,各 ***指的是所述关联性业务逻辑流程所涉及到的***。
S402,将***执行结果与所述关联性业务逻辑流程执行测试用例的执行结 果进行比对,得到比对结果。
S403,根据比对结果分析并定位所述关联性业务逻辑流程的性能测试中存 在的异常。
预先对***间的关联性业务逻辑流程中的每一个***使用相同的运行参数 进行单独的性能测试,如此在日志文件中,保存有各***在相同运行参数下分 别单独执行测试用例的执行结果。获取日志文件中的各***在相同运行参数下 单独执行测试用例对应的执行结果。下面将以响应时间为例,进行比对分析。
分别将***间的关联性业务逻辑流程执行的总响应时间和各***分别对应 响应时间称为Tall、TA、TB、TC、......,,将每个***进行单独性能测试时的响应时 间称为tA、tB、tC、......,,其中,A、B、C分别对应关联性业务逻辑流程中涉及 的不同的***。
在相同的吞吐量下,判断TA>k1tA,其中,k1≥1,表示系数,由具体的业务 场景决定,如根据具体场景可取值为1.2等。若TA>k1tA,则可理解为在执行业 务逻辑流程的性能测试中A***的响应时间大于k1倍的A***单独进行性能测 试的响应时间,则说明A***可能会存在有性能优化的可能性,将存在的异常 定位在A***。
在相同的吞吐量下,分别对其他不同的***按照相同的方法进行测试,以 确定其他不同的***是否存在异常。对于每个不同的***,系数的取值可能相 同,也可能不同,根据具体的业务场景决定。系数的取值考虑到了网络延迟等 因素。
在相同的吞吐量下,判断Tall>k(TA+TB+TC+......)且TA≤k1tA、TB≤k2tB、TC≤k3tC,其中,k>1,表示系数。若是,则可理解为在执行***间的关联性业务逻辑流 程的性能测试中各***的响应时间是正常的,但是***间的关联性业务逻辑流 程总时间却大于各***的相应时间之和,则可能异常出现在***间调用的具体 流程上,如接口函数的调取上等。若Tall≤k(TA+TB+TC+......)且TA≤k1tA、TB≤k2tB、 TC≤k3tC,则符合要求。
在进行分析时,除了考虑响应时间的因素外,还同时需要考虑资源使用率 等因素。资源使用率等因素可按照类似的方法进行分析,以便找出可以优化的 地方。
图5是本发明实施例提供的一种性能测试装置的示意性框图。如图5所示, 该装置50包括需求获取单元501、生成单元502、执行单元503、分析单元504。
需求获取单元501,用于获取性能测试需求,其中,所述性能测试需求包 括***间的关联性业务逻辑流程的性能测试。
其中,性能测试需求根据具体应用场景来设定,设定的性能测试需求可以 保存在文档中,如Word文档或者Excel文档或者XML文档中。在文档中,保 存的信息包括***间的关联性业务逻辑流程的性能测试需求,以及对应的关联 性业务逻辑流程的输入数据的规则和输出数据的规则。如某个性能测试需求: 计算用户的贷款由哪个银行放款。该性能测试需求涉及两个***,信用***和 放款***。其中,信用***对应有信用***的接口,放款***对应有放款*** 的接口。信用***调用信用***的接口,以根据用户贷款的产品、用户的信用 信息计算用户的贷款基数,放款***调用放款***的接口,以根据用户贷款的产品和贷款基数等从众多可以贷款的银行中,选择一个匹配的放款银行,最后 将该匹配的放款银行返回给信用***。其中,不同贷款产品、不同贷款基数等 会导致最后的放款银行不同,其中,贷款基数由信用信息决定。在该性能测试 需求的业务逻辑流程中,需要先调用信用***,再根据信用***的结果调用放 款***,再将放款***计算出来的结果返回给信用***。如此,该性能测试需 求包括***间的关联性业务逻辑流程,具体地,属于***间相互调用的关联性 业务逻辑流程。其中,需要注意的是,这里的***也可以理解为一个***中的 多个模块。本发明实施例按照需求来进行性能测试,能较好的定位***间(模 块间)的关联性业务逻辑流程中存在的异常,方便测试人员对***间的关联性 业务逻辑流程进行测试,以提高软件产品的质量。
生成单元502,用于根据所述关联性业务逻辑流程生成测试用例。
在一实施例中,如图6所示,生成单元502包括规则获取单元601、测试 用例生成单元602。
规则获取单元601,用于获取所述关联性业务逻辑流程输入数据的规则和 输出数据的规则。其中,输入/输出数据的规则可以理解为输入/输出数据元素类 型以及输入/输出数据对应的一些条件等。如对于***间的关联性业务逻辑流程 的性能测试,可以将***间调用接口对应的函数中的参数作为输入数据。具体 地,在相应的Word文档或者Excel文档或者XML文档中获取。如账号注册的 业务逻辑流程中,输入数据的规则,包括:用户名、密码、验证码,其中,用 户名的格式可以为邮箱、昵称或者电话号码等,邮箱如163邮箱、QQ邮箱、 Gmail邮箱等,如电话号码为11位数字等;密码为不超过16位的由字母和数 字组成的字符串等。输出数据的规则可以为:若用户名、密码、验证码满足对 应规则,返回成功注册,若其中有一个不满足对应条件,则注册失败。再如计 算用户的贷款由哪个银行放款的业务逻辑流程中,输入数据的规则,包括:贷 款产品、用户的信用信息等,如贷款产品是已经存在的贷款产品,用户的信用 信息为不同类型的信用信息,如***相关的信用信息、借记卡相关的信用信 息、保险等相关的信用信息等,其中,不同类型的信用信息根据不同类型的标 准又分为不同的信用等级等。不同贷款产品、不同信用等级等会导致最后的放 款银行不同。输出数据的规则可以为:根据不同类型的已经存在的贷款产品和 用户的信用信息,返回对应的贷款银行给到信用***;若贷款产品不是已经存 在的贷款产品,则返回失败;若信用信息不符合,则返回失败。
测试用例生成单元602,用于根据对应的输入数据的规则和输出数据的规 则,生成包括输入数据和预期结果的测试用例。
如性能测试需求:计算用户的贷款由哪个银行放款。对应地,生成的测试 用例包括:输入数据:贷款产品A、信用信息A,预期结果:银行A;输入数据: 贷款产品A、信用信息B,预期结果:银行B;贷款产品B、信用信息B,预期结 果:银行B;贷款产品B、信用信息A,预期结果:银行A等。其中,可以使用 不同的覆盖原则来生成对应的测试用例。生成的测试用例能够代表并覆盖各种 合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输入数据、 操作和环境设置等。最后从生成的测试用例中挑选中合理的、合法的等测试用 例用来作为所述关联性业务逻辑流程性能测试中的测试用例。其中,对于不合 理的、非法等的测试用例用于其他测试中,如功能性测试中。也可以直接就生 成多个合理的、合法的测试用例作为所述关联性业务逻辑流程性能测试中的测 试用例。
执行单元503,用于执行测试用例,并将执行结果保存。
在一实施例中,如图7所示,执行单元503包括设置单元701、测试用例 执行单元702。
设置单元701,用于设置执行测试用例的运行参数。性能测试时,需要设 置一些执行测试用例的运行参数,如设置线程的个数、每个线程发送执行请求 的次数或者执行测试用例的时间段、吞吐量定时器等。其中,线程的个数就是 虚拟用户数,一个虚拟用户占用一个进程或者线程,设置多少虚拟用户数就设 置多少个线程数,多个线程并行执行,即同时被初始化并同时执行对应的测试 用例;每个线程发送执行请求的次数也可以理解为循环次数,如线程数为200, 每个线程发送执行请求的次数为100,那么总的请求为200*100=10000;执行测 试用例的时间段,包括执行测试用例开始的时间和执行测试用例结束的时间, 在此期间,测试用例会循环执行;吞吐量定时器用于设置吞吐量,吞吐量指得 是单位时间内发送执行请求的次数,或者单位时间内同时执行测试用例的个数, 即单位时间内对***间的关联性业务逻辑流程进行测试的次数,也即指的是同 一时刻同时运行的线程。在一些实施例中,运行参数还包括其他的参数,如还 包括监视器,可以通过监视器看到图形化统计信息等;还可以包括生成执行结 果的路径和文件名称等。
测试用例执行单元702,用于根据运行参数执行测试用例,并将执行结果 保存。设置好运行参数后,就可以开始执行测试用例,得到执行结果,并将执 行结果保存,如保存在日志文件中。执行结果中包括了吞吐量、不同吞吐量下 的响应时间、不同吞吐量下的资源利用率等。其中,吞吐量能够反映出软件产 品的性能,也即是软件产品的执行效率,吞吐量较大,则软件产品的性能较高, 吞吐量较小,则软件产品的性能较低。响应时间指的是执行一次业务逻辑流程 的测试过程,并获取测试结果所需的时间,通过获取测试过程中的响应时间, 能够了解到性能测试过程中的执行速度,以根据业务逻辑流程的需求进行优化 处理,提高业务逻辑流程的执行速度。其中,响应时间一般会取平均响应时间。 在一些实施例中,也包括最大响应时间、最小响应时间等,在本实施例中,响 应时间包括了在一次测试中,***间的关联性业务逻辑流程进行性能测试的总 响应时间和各***分别对应的响应时间。资源利用率包括在不同吞吐量下的 CPU使用率、内存使用率等。在一些实施例中,执行结果中还可以包括测试用 例执行成功率、软件产品的版本号等。
在一些实施例中,执行单元503还包括模拟单元。如若在软件产品的性能 测试中涉及多个接口,其中的某些接口是外部的接口/第三方接口,而该外部接 口/第三方接口对测试的结果影响较大时,可使用模拟单元。模拟单元,用于 Mock技术来模拟外部接口对象/第三方接口对象。测试用例执行单元,还用于 根据所述运行参数、模拟的外部接口对象/第三方接口对象来执行测试用例,并 将执行结果保存。Mock技术指的是对于某些不容易构造或者不容易获取的对 象,用一个虚拟的对象来创建以便进行测试的技术,其中,虚拟的对象就是 Mock对象,Mock对象就是真实对象在调试期间的代替品。在遇到如下异常时, Mock是第一选择:1.外部资源,比如文件***、数据源,这是因为对此类外部 资源依赖性非常强,而其行为的不可预测性很可能导致测试的随机失败。2.第 三方API,当接口属于使用者,通过Mock该接口来确定测试使用者与接口的 交互,明确定义该接口的职责等。使用Mock的好处包括:第一、隔绝其他模 块出错引起本模块的测试错误。第二、隔绝其他模块的开发状态,只要定义好 接口,不用管他们开发有没有完成。第三、一些速度较慢的操作,可以用Mock Object代替,快速返回。
如性能测试需求:计算用户的贷款由哪个银行放款,若信用***的接口、 放款***的接口属于外部接口/第三方接口,可使用Mock技术来模拟信用*** 的接口对象、放款***的接口对象,以便能顺利完成性能测试。因为在测试的 过程中不可能真的在信用***上加上一条某人所对应的贷款银行的信息,实际 上这条信息是不存在的,只是测试的过程中产生的数据。
在执行测试用例时,也会对***间的关联性业务逻辑流程中的每一个***, 使用相同的运行参数进行单独的性能测试。可以理解地,记录在不同的吞吐量 下,***间的关联性业务逻辑流程进行性能测试时的执行结果和各***单独进 行性能测试时的***执行结果,如响应时间、资源利用率等。可以理解地,在 日志文件中,有不同的吞吐量对应的***间的关联性业务逻辑流程进行性能测 试时的响应时间以及资源使用率,和各***单独进行性能测试时的响应时间以 及资源使用率。需要注意的是,该处的各***单独进行性能测试时的响应时间 与上文中提到的各***分别对应的响应时间是不同的,各***分别对应的响应 时间指的是在一次测试中***间的关联性业务逻辑流程进行性能测试时各***对应的响应时间。
分析单元504,用于根据执行结果分析并定位所述关联性业务逻辑流程的 性能测试中存在的异常。
在一实施例中,如图8所示,分析单元504包括分结果获取单元801、比 对单元802、分析定位单元803。
分结果获取单元801,分别获取各***在相同运行参数下对应的***执行 结果,其中,各***指的是所述关联性业务逻辑流程所涉及到的***。比对单 元802,用于将***执行结果与所述关联性业务逻辑流程执行测试用例的执行 结果进行比对,得到比对结果。分析定位单元803,用于根据比对结果分析并 定位所述关联性业务逻辑流程的性能测试中存在的异常。
预先对***间的关联性业务逻辑流程中的每一个***使用相同的运行参数 进行单独的性能测试,如此在日志文件中,保存有各***在相同运行参数下分 别单独执行测试用例的执行结果。获取日志文件中的各***在相同运行参数下 单独执行测试用例对应的执行结果。下面将以响应时间为例,进行比对分析。
分别将***间的关联性业务逻辑流程执行的总响应时间和各***分别对应 响应时间称为Tall、TA、TB、TC、......,,将每个***进行单独性能测试时的响应时 间称为tA、tB、tC、......,,其中,A、B、C分别对应关联性业务逻辑流程中涉及 的不同的***。
在相同的吞吐量下,判断TA>k1tA,其中,k1≥1,表示系数,由具体的业务 场景决定,如根据具体场景可取值为1.2等。若TA>k1tA,则可理解为在执行业 务逻辑流程的性能测试中A***的响应时间大于k1倍的A***单独进行性能测 试的响应时间,则说明A***可能会存在有性能优化的可能性,将存在的异常 定位在A***。
在相同的吞吐量下,分别对其他不同的***按照相同的方法进行测试,以 确定其他不同的***是否存在异常。对于每个不同的***,系数的取值可能相 同,也可能不同,根据具体的业务场景决定。系数的取值考虑到了网络延迟等 因素。
在相同的吞吐量下,判断Tall>k(TA+TB+TC+......)且TA≤k1tA、TB≤k2tB、TC≤k3tC,其中,k>1,表示系数。若是,则可理解为在执行***间的关联性业务逻辑流 程的性能测试中各***的响应时间是正常的,但是***间的关联性业务逻辑流 程总时间却大于各***的相应时间之和,则可能异常出现在***间调用的具体 流程上,如接口函数的调取等。若Tall≤k(TA+TB+TC+......)且TA≤k1tA、TB≤k2tB、 TC≤k3tC,则符合要求。
在进行分析时,除了考虑响应时间的因素外,还同时需要考虑资源使用率 等因素。资源使用率等因素可按照类似的方法进行分析,以便找出可以优化的 地方。
上述装置可以实现为一种计算机程序的形式,计算机程序可以在如图9所 示的计算机设备上运行。
图9为本发明实施例提供的一种计算机设备的示意性框图。该设备90也可 以是以客户端的形式存在。该设备90包括通过***总线901连接的处理器902、 存储器和网络接口903,其中,存储器可以包括非易失性存储介质904和内存 储器905。
该非易失性存储介质904可存储操作***9041和计算机程序9042。该计 算机程序9042被执行时,可使得处理器902执行一种性能测试方法。该处理器 902用于提供计算和控制能力,支撑整个设备90的运行。该内存储器905为非 易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器902 执行时,可使得处理器902执行一种性能测试方法。该网络接口903用于进行 网络通信,如接收指令等。本领域技术人员可以理解,图9中示出的结构,仅 仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其 上的设备90的限定,具体的设备90可以包括比图中所示更多或更少的部件, 或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器902用于运行存储在存储器中的计算机程序,以实现如 下步骤:
获取性能测试需求,其中,所述性能测试需求包括***间的关联性业务逻 辑流程的性能测试需求;根据所述关联性业务逻辑流程生成测试用例;执行所 述测试用例,并将执行结果保存;根据所述执行结果分析并定位所述关联性业 务逻辑流程的性能测试中存在的异常。
在一实施例中,所述处理器902在执行所述所述根据所述关联性业务逻辑 流程生成测试用例时,具体执行:
获取所述关联性业务逻辑流程输入数据的规则和输出数据的规则;根据对 应的输入数据的规则和输出数据的规则,生成测试用例。
在一实施例中,所述处理器902在执行所述执行所述测试用例,并将执行 结果保存时,具体执行:
设置执行所述测试用例的运行参数;根据所述运行参数执行所述测试用例, 并将执行结果保存。
在一实施例中,若所述关联性业务逻辑流程中涉及有调用第三方接口,所 述处理器902还具体执行:使用Mock技术来模拟所述第三方接口对象;所述 处理器902在执行所述根据所述运行参数执行所述测试用例,并将执行结果保 存时,具体执行:根据所述运行参数、模拟的第三方接口对象来执行所述测试 用例,并将执行结果保存。
在一实施例中,所述处理器902在执行所述根据所述执行结果分析并定位 所述关联性业务逻辑流程的性能测试中存在的异常时,具体执行:
分别获取各***在相同运行参数下对应的***执行结果,其中,各***指 的是所述业务逻辑流程所涉及到的***;将所述***执行结果与所述测试用例 的执行结果进行比对,得到比对结果;根据比对结果分析并定位所述关联性业 务逻辑流程的性能测试中存在的异常。
应当理解,在本发明实施例中,所称处理器902可以是中央处理单元 (CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号 处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray, FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件 等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供了一种计算机可读存储介质,所述计算机可 读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令 当被处理器执行时实现以下步骤:
获取性能测试需求,其中,所述性能测试需求包括***间的关联性业务逻 辑流程的性能测试需求;根据所述关联性业务逻辑流程生成测试用例;执行所 述测试用例,并将执行结果保存;根据所述执行结果分析并定位所述关联性业 务逻辑流程的性能测试中存在的异常。
在一实施例中,所述处理器在执行所述所述根据所述关联性业务逻辑流程 生成测试用例时,具体实现:
获取所述关联性业务逻辑流程输入数据的规则和输出数据的规则;根据对 应的输入数据的规则和输出数据的规则,生成测试用例。
在一实施例中,所述处理器在执行所述执行所述测试用例,并将执行结果 保存时,具体实现:
设置执行所述测试用例的运行参数;根据所述运行参数执行所述测试用例, 并将执行结果保存。
在一实施例中,若所述关联性业务逻辑流程中涉及有调用第三方接口,所 述处理器还具体实现:
使用Mock技术来模拟所述第三方接口对象;所述处理器在执行所述所述 根据所述运行参数执行所述测试用例,并将执行结果保存时,具体实现:根据 所述运行参数、模拟的第三方接口对象来执行所述测试用例,并将执行结果保 存。
在一实施例中,所述处理器在执行所述根据所述执行结果分析并定位所述 关联性业务逻辑流程的性能测试中存在的异常时,具体实现:
分别获取各***在相同运行参数下对应的***执行结果,其中,各***指 的是所述业务逻辑流程所涉及到的***;将所述***执行结果与所述测试用例 的执行结果进行比对,得到比对结果;根据比对结果分析并定位所述关联性业 务逻辑流程的性能测试中存在的异常。
所述计算机可读存储介质可以是前述任一实施例所述的设备的内部存储单 元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外 部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(SmartMedia Card, SMC),安全数字(SecureDigital,SD)卡等。进一步地,所述计算机可读存 储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、方法、计 算机设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是 示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可 以有另外的划分方式。所属领域的技术人员可以清楚地了解到,为了描述的方 便和简洁,上述描述的装置、单元、计算机设备的具体工作过程,可以参考前 述方法实施例中的对应过程,在此不再赘述。以上所述,仅为本发明的具体实 施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员 在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或 替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要 求的保护范围为准。
Claims (10)
1.一种性能测试方法,其特征在于,所述方法包括:
获取性能测试需求,其中,所述性能测试需求包括***间的关联性业务逻辑流程的性能测试需求;
根据所述关联性业务逻辑流程生成测试用例;
执行所述测试用例,并将执行结果保存;
根据所述执行结果分析并定位所述关联性业务逻辑流程的性能测试中存在的异常。
2.根据权利要求1所述的方法,其特征在于,所述根据所述关联性业务逻辑流程生成测试用例,包括:
获取所述关联性业务逻辑流程输入数据的规则和输出数据的规则;
根据对应的输入数据的规则和输出数据的规则,生成测试用例。
3.根据权利要求1所述的方法,其特征在于,所述执行所述测试用例,并将执行结果保存,包括:
设置执行所述测试用例的运行参数;
根据所述运行参数执行所述测试用例,并将执行结果保存。
4.根据权利要求3所述的方法,其特征在于,若所述关联性业务逻辑流程中涉及有调用第三方接口,所述方法还包括:
使用Mock技术来模拟所述第三方接口对象;
所述根据所述运行参数执行所述测试用例,并将执行结果保存,包括:根据所述运行参数、模拟的第三方接口对象来执行所述测试用例,并将执行结果保存。
5.根据权利要求1所述的方法,其特征在于,所述根据所述执行结果分析并定位所述关联性业务逻辑流程的性能测试中存在的异常,包括:
分别获取各***在相同运行参数下对应的***执行结果,其中,各***指的是所述业务逻辑流程所涉及到的***;
将所述***执行结果与所述测试用例的执行结果进行比对,得到比对结果;
根据比对结果分析并定位所述关联性业务逻辑流程的性能测试中存在的异常。
6.一种性能测试装置,其特征在于,所述装置包括:
需求获取单元,用于获取性能测试需求,其中,所述性能测试需求包括***间的关联性业务逻辑流程的性能测试;
生成单元,用于根据所述关联性业务逻辑流程生成测试用例;
执行单元,用于执行所述测试用例,并将执行结果保存;
分析单元,用于根据所述执行结果分析并定位所述关联性业务逻辑流程的性能测试中存在的异常。
7.根据权利要求6所述的装置,其特征在于,所述执行单元,包括:
设置单元,用于设置执行所述测试用例的运行参数;
测试用例执行单元,用于根据所述运行参数执行所述测试用例,并将执行结果保存。
8.根据权利要求6所述的装置,其特征在于,所述分析单元,包括:
分结果获取单元,用于分别获取各***在相同运行参数下对应的***执行结果,其中,各***指的是所述业务逻辑流程所涉及到的***;
比对单元,用于将所述***执行结果与所述测试用例的执行结果进行比对,得到比对结果;
分析并定位单元,用于根据比对结果分析并定位所述关联性业务逻辑流程的性能测试中存在的异常。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器,以及与所述存储器相连的处理器;
所述存储器用于存储计算机程序;所述处理器用于运行所述存储器中存储的计算机程序,以执行如权利要求1-5任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,实现如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810332203.9A CN108572918A (zh) | 2018-04-13 | 2018-04-13 | 性能测试方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810332203.9A CN108572918A (zh) | 2018-04-13 | 2018-04-13 | 性能测试方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108572918A true CN108572918A (zh) | 2018-09-25 |
Family
ID=63574692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810332203.9A Pending CN108572918A (zh) | 2018-04-13 | 2018-04-13 | 性能测试方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108572918A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109583688A (zh) * | 2018-10-16 | 2019-04-05 | 深圳壹账通智能科技有限公司 | 性能测试方法、装置、计算机设备和存储介质 |
CN109800098A (zh) * | 2018-12-13 | 2019-05-24 | 平安普惠企业管理有限公司 | 业务异常节点定位方法、装置、计算机设备及存储介质 |
CN110119354A (zh) * | 2019-04-19 | 2019-08-13 | 平安普惠企业管理有限公司 | 基于测试用例生成的软件测试方法、装置及电子设备 |
CN110457207A (zh) * | 2019-07-12 | 2019-11-15 | 平安普惠企业管理有限公司 | 基于机器学习模型的测试方法及相关设备 |
CN110633216A (zh) * | 2019-09-20 | 2019-12-31 | 北京首汽智行科技有限公司 | 一种app性能测试方法 |
CN110765006A (zh) * | 2019-10-08 | 2020-02-07 | 贝壳技术有限公司 | 流程测试方法和装置、计算机可读存储介质、电子设备 |
CN111258916A (zh) * | 2020-03-06 | 2020-06-09 | 贝壳技术有限公司 | 自动化测试方法、装置、存储介质及设备 |
CN112052172A (zh) * | 2020-09-04 | 2020-12-08 | 云账户技术(天津)有限公司 | 第三方通道的快速测试方法、装置和电子设备 |
CN112511367A (zh) * | 2020-07-31 | 2021-03-16 | ***通信有限公司研究院 | 一种测试方法及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030126517A1 (en) * | 2001-07-27 | 2003-07-03 | Accordsqa | Automated software testing and validation system |
US20090199047A1 (en) * | 2008-01-31 | 2009-08-06 | Yahoo! Inc. | Executing software performance test jobs in a clustered system |
CN102053872A (zh) * | 2009-11-06 | 2011-05-11 | ***股份有限公司 | 一种终端交易性能测试方法 |
CN102486748A (zh) * | 2010-12-02 | 2012-06-06 | 金蝶软件(中国)有限公司 | 一种性能测试的方法及装置 |
CN105099801A (zh) * | 2014-05-07 | 2015-11-25 | 中国电信股份有限公司 | 信息管理***的测试***和测试环境模拟方法 |
US20150363299A1 (en) * | 2014-06-13 | 2015-12-17 | International Business Machines Corporation | Performance testing of software applications |
-
2018
- 2018-04-13 CN CN201810332203.9A patent/CN108572918A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030126517A1 (en) * | 2001-07-27 | 2003-07-03 | Accordsqa | Automated software testing and validation system |
US20090199047A1 (en) * | 2008-01-31 | 2009-08-06 | Yahoo! Inc. | Executing software performance test jobs in a clustered system |
CN102053872A (zh) * | 2009-11-06 | 2011-05-11 | ***股份有限公司 | 一种终端交易性能测试方法 |
CN102486748A (zh) * | 2010-12-02 | 2012-06-06 | 金蝶软件(中国)有限公司 | 一种性能测试的方法及装置 |
CN105099801A (zh) * | 2014-05-07 | 2015-11-25 | 中国电信股份有限公司 | 信息管理***的测试***和测试环境模拟方法 |
US20150363299A1 (en) * | 2014-06-13 | 2015-12-17 | International Business Machines Corporation | Performance testing of software applications |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109583688A (zh) * | 2018-10-16 | 2019-04-05 | 深圳壹账通智能科技有限公司 | 性能测试方法、装置、计算机设备和存储介质 |
CN109800098A (zh) * | 2018-12-13 | 2019-05-24 | 平安普惠企业管理有限公司 | 业务异常节点定位方法、装置、计算机设备及存储介质 |
CN110119354A (zh) * | 2019-04-19 | 2019-08-13 | 平安普惠企业管理有限公司 | 基于测试用例生成的软件测试方法、装置及电子设备 |
CN110457207A (zh) * | 2019-07-12 | 2019-11-15 | 平安普惠企业管理有限公司 | 基于机器学习模型的测试方法及相关设备 |
CN110633216A (zh) * | 2019-09-20 | 2019-12-31 | 北京首汽智行科技有限公司 | 一种app性能测试方法 |
CN110765006A (zh) * | 2019-10-08 | 2020-02-07 | 贝壳技术有限公司 | 流程测试方法和装置、计算机可读存储介质、电子设备 |
CN111258916A (zh) * | 2020-03-06 | 2020-06-09 | 贝壳技术有限公司 | 自动化测试方法、装置、存储介质及设备 |
CN111258916B (zh) * | 2020-03-06 | 2023-08-15 | 贝壳技术有限公司 | 自动化测试方法、装置、存储介质及设备 |
CN112511367A (zh) * | 2020-07-31 | 2021-03-16 | ***通信有限公司研究院 | 一种测试方法及设备 |
US12019529B2 (en) | 2020-07-31 | 2024-06-25 | China Mobile Communication Co., Ltd Research Institute | Testing method and testing device |
CN112052172A (zh) * | 2020-09-04 | 2020-12-08 | 云账户技术(天津)有限公司 | 第三方通道的快速测试方法、装置和电子设备 |
CN112052172B (zh) * | 2020-09-04 | 2024-01-30 | 云账户技术(天津)有限公司 | 第三方通道的快速测试方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108572918A (zh) | 性能测试方法、装置、计算机设备及存储介质 | |
CN104993946B (zh) | 灰度发布的评估方法、装置和*** | |
EP3074863B1 (en) | System and method for testing data representation for different mobile devices | |
CN108809816A (zh) | 跨各设备提供未看见消息计数 | |
CN110097170A (zh) | 信息推送对象预测模型获取方法、终端及存储介质 | |
US20110161063A1 (en) | Method, computer program product and apparatus for providing an interactive network simulator | |
CN107909330A (zh) | 工作流数据处理方法、装置、存储介质和计算机设备 | |
CN110225104A (zh) | 数据获取方法、装置及终端设备 | |
CN106357719A (zh) | 用于网络应用的基于页面的事件相关 | |
CN109582452A (zh) | 一种容器调度方法、调度装置及电子设备 | |
US20200201984A1 (en) | Communicating trace information between security zones | |
CN110516472A (zh) | 仿真方法和装置 | |
US11783065B2 (en) | Business data protection for running tasks in computer system | |
Yin et al. | Analysing and determining substitutability of different granularity Web services | |
CN104536887B (zh) | 通讯数据检测方法和装置 | |
US20190278614A1 (en) | Simultaneously capturing status information for multiple operating modes | |
CN107025227A (zh) | 用户对产品的熟悉度的确定、信息筛选、处理方法及装置 | |
CN113762421B (zh) | 分类模型的训练方法、流量分析方法、装置及设备 | |
CN110084467A (zh) | 移动验标方法、装置、计算机设备及存储介质 | |
CN110333930A (zh) | 数字化平台*** | |
CN109034668A (zh) | Etl任务调度方法、装置、计算机设备及存储介质 | |
CN108762809A (zh) | 软件功能扩展方法、装置、计算机设备及存储介质 | |
CN109818920A (zh) | 邮件审核方法、装置、计算机设备及计算机可读存储介质 | |
CN110197061A (zh) | 业务数据监控方法、装置、计算机设备及存储介质 | |
US11811520B2 (en) | Making security recommendations |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180925 |
|
WD01 | Invention patent application deemed withdrawn after publication |