CN106776280B - 可配置性能测试装置 - Google Patents
可配置性能测试装置 Download PDFInfo
- Publication number
- CN106776280B CN106776280B CN201611041730.1A CN201611041730A CN106776280B CN 106776280 B CN106776280 B CN 106776280B CN 201611041730 A CN201611041730 A CN 201611041730A CN 106776280 B CN106776280 B CN 106776280B
- Authority
- CN
- China
- Prior art keywords
- test
- performance testing
- data
- task
- packet sender
- 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
Links
Images
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
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)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种可配置性能测试装置,其包括:接口测试平台、发包器、应用服务器群组、数据收集服务器和数据库;其中接口测试平台创建测试用例和/或测试场景,并保存测试任务信息至数据库,生成测试请求并调用发包器;发包器解析测试请求,从数据库调用测试用例和/或测试场景,并构建测试任务;发包器还通过应用服务器群组执行测试任务并生成测试数据,统计计算所测试数据得到统计数据;数据收集服务器统计计算应用服务器群组执行测试任务的资源数据;发包器统计所述统计数据并通过接口测试平台推送;数据库存储统计数据和测试数据。本发明通过接口测试平台、发包器和应用服务器群组等构建了通用的测试装置,便于使用而且具有更好使用体验。
Description
技术领域
本发明涉及一种性能测试装置,尤其是一种可配置性能测试装置。
背景技术
目前大部分测试团队对接口的性能测试,是基于编程方式实现接口的请求组装、发送、接收和对返回响应报文进行验证。不仅需要使用者有一定开发功底,而且学习使用成本较高,不便于在各团队普及性能测试。
而且虽然市面上也存在应用广泛且比较成熟的性能测试工具,但其也有各自的不足,无法满足不同用户的各种定制化的需求,比如:
Jmeter、LoadRunner和LoadTest都是市面上应用广泛且比较成熟的性能测试工具,其中Jmeter是纯Java应用,不支持需要引用到.net(美国微软公司的开发平台)提供的方法或动态链接库的测试脚本开发。LoadRunner扩展性低,无法二次开发。Visual Studio(美国微软公司的开发工具包)的性能测试工具Loadtest功能设计比较简单,并不适合复杂场景的性能测试。
并且目前的常规性能测试中需要性能测试人员在测试之后花费较多时间来统计测试结果,编写测试报告。对于迭代较快,需要周期性进行性能比对的项目,重复劳动较多。尤其是上述三种性能测试工具原生的报告,很难让非性能测试专业领域的人员快速理解。
发明内容
本发明要解决的技术问题是为了克服现有技术中性能测试装置定制化导致的通用性低、性能测试功能不完整、不便于使用以及使用体验差的缺陷,提供了一种可配置性能测试装置,通过接口测试平台、发包器和应用服务器群组等构建了通用的测试装置,并且便于使用并具有更好使用体验。
本发明是通过下述技术方案来解决上述技术问题的:
本发明提供了一种可配置性能测试装置,其特点是,所述可配置性能测试装置包括:
接口测试平台、发包器、应用服务器群组、数据收集服务器和数据库;
其中所述接口测试平台创建测试用例和/或测试场景,并保存测试任务信息至所述数据库,生成测试请求并调用所述发包器;
所述发包器解析所述测试请求,从所述数据库调用测试用例和/或测试场景,并构建测试任务;
所述发包器还通过所述应用服务器群组执行所述测试任务并生成测试数据,统计计算所述测试数据得到统计数据;
所述数据收集服务器统计计算应用服务器群组执行所述测试任务的资源数据;
所述发包器统计所述统计数据并通过接口测试平台推送;
所述数据库存储所述统计数据和测试数据。
本发明利用接口测试平台统一用户接口,并继而通过发包器、应用服务器群组等共同实现了配置全功能的性能测试,在简化性能测试复杂度,提高性能测试效率的同时,还为用户提供了更加直观便捷地使用体验。
较佳地,所述可配置性能测试装置还包括任务处理服务器群组,所述任务处理服务器群组从接口测试平台接收测试请求并调用所述发包器。
优选地,所述任务处理服务器群组将测试请求放入任务队列,并按照任务队列的顺序调用所述发包器。
本发明利用任务处理服务器群组来统一管理接口测试平台获取到的测试请求,强化请求处理效率。
较佳地,所述可配置性能测试装置还包括存储单元,所述发包器生成并存储响应报文至所述存储单元。
优选地,所述可配置性能测试装置异步地对所述响应报文进行功能验证,并将功能验证的结果通过所述接口测试平台推送。
请求和响应是一一对应的,响应报文用于方便发现请求执行中所存在的问题,但是在性能测试中,请求和响应的数量是巨大的,若每一对请求和响应中,请求要等待响应验证完毕会严重影响测试效率。
现有常规性能测试工具都是在得到响应后同步校验,逻辑过于复杂势必会影响请求频率,导致大压力下出现的功能异常无法全面检测到。而且也不记录响应结果,即使在脚本中实现记录也是保存到本地文件,不方便做统一管理和异步验证。
所以本发明中利用异步的功能测试,既不影响测试任务的执行效率,又可以进行全面的功能验证。
较佳地,所述测试请求包括测试参数、测试逻辑和对应于所述数据库中测试用例或测试场景的主键。
优选地,所述发包器基于测试参数、测试逻辑以及通过主键从所述数据库中调用的测试用例和/或测试场景构建测试任务。
优选地,所述统计数据包括响应时间、用户吞吐量以及并发数等。
优选地,所述资源数据包括使用内存、CPU(中央处理器)和IO(输入输出)的资源利用率等。
较佳地,所述发包器多线程地请求所述应用服务器群组执行所述测试任务。
较佳地,所述应用服务器群组和发包器采用分布式部署。
所谓分布式部署是将数据分散的存储于多***立的机器设备上,采用可扩展的***结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,本发明利用分布式部署不但解决了传统集中式存储***中单存储服务器的瓶颈问题,还提高了***的可靠性、可用性和扩展性。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:
本发明的可配置性能测试装置通过接口测试平台统一获取测试请求,并继而通过发包器、应用服务器群组等共同实现了配置全功能的性能测试,提高了性能测试效率,还为用户提供了更加直观便捷地使用体验。
本发明还通过对响应报文的异步功能测试,在不影响测试任务的执行效率的同时实现全面的功能验证。
此外本发明还利用分布式部署,避免了传统集中式存储***中单存储服务器的瓶颈问题,还提高了***的可靠性、可用性和扩展性。
附图说明
图1为本发明的实施例1的可配置性能测试装置的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
本发明为了实现了配置全功能的性能测试,提高了性能测试效率,以及为用户提供更加直观便捷地使用体验。通过接口测试平台统一获取测试请求,并继而通过发包器、应用服务器群组等构成了可配置性能测试装置。
本发明还利用对响应报文的异步功能测试,实现了在不影响测试任务的执行效率的同时,对响应报文的全面的功能验证。并且利用分布式部署提高了***的可靠性、可用性和扩展性。
下面通过下述实施例来对本发明进行进一步地详细地说明。
实施例1
如图1所示,本实施例的可配置性能测试装置包括接口测试平台1、发包器2、应用服务器群组3、数据收集服务器4、数据库5、任务处理服务器群组6和存储单元7。
其中接口测试平台1创建测试用例/测试场景,并保存测试任务信息至数据库5,如图1所示,本实施例的接口测试平台1包括接口管理11和性能测试用例管理12,其中接口管理11能够实现全面支持各种接口类型,性能测试用例管理12用于对测试用例的管理,实现对待测接口和测试用例的统一管理维护,所以性能测试的脚本无需编码实现,所有测试用例和测试场景通过配置就能执行。
任务处理服务器群组6获取接口测试平台1生成的测试请求,并放入任务队列,此后任务处理服务器群组6按照任务队列的顺序依次执行测试请求。执行测试请求首先调用分布式部署的发包器2,然后发包器2解析测试请求,从测试请求中提取测试参数、测试逻辑和需要调用的测试用例或测试场景的主键。
举例来说,通过配置的测试请求中可以自定义并发数,即通过启线程个数控制并发数,可设置恒定线程数或者逐步启线程,满足恒定压力和逐步增压两种场景的测试。定义测试时长/迭代次数,即可设置测试时长,到达测试时长,测试终止;也可设置迭代次数,每个线程请求满预定次数,测试终止。其中时长和次数同时设置则以次数为准。
还可以定义参数化方式,支持顺序取值,随机取值,唯一取值,满足各种场景的需要。自定义断言,即通过配置自定义设置断言,如:字符串匹配,XML/Json(可扩展标记语言/JavaScrip对象表示法)节点匹配,模糊匹配。
还可以进一步定义思考时间设置,即支持通过思考时间控制TPS(***吞吐量),如设置每秒发送一次请求,若请求耗时200毫秒,则等待800毫秒再继续发送请求;也可设置固定思考时间,如请求完成后等待一秒后再次发送请求。
然后从数据库5调用对应于主键的测试用例或测试场景。此后发包器2基于测试参数、测试逻辑以及通过主键从数据库5中调用的测试用例或测试场景构建测试任务。
其中本实施例中所述发包器2以多线程方式请求分布式部署的应用服务器群组3执行构建完成的测试任务。本实施例的分布式部署的应用服务器群组3和发包器2还可以采用异地部署的方式来实现。
其中可在发包器设置多测试用例批量运行,即支持多个测试用例的串行执行和并行执行。如需按序测试多个用例,可按序执行多个用例,用例间会按照执行顺序排队执行;也可以将多个用例组成混合场景并行测试。
在另一个实施例中,发包器支持分布式部署多台压力测试机,即应用服务器群组,并通过控制负载均衡,将多个性能测试任务分发到不同的压力测试机去执行。
判断待执行性能测试任务与正在执行或已排队执行的性能测试任务,在目标测试服务器和测试时间上是否有冲突,若有则放入同一队列按序执行,避免资源争用导致的测试结果不准确。若无冲突,则执行负载均衡策略,分发到空闲的压力测试机上。
发包器2调用应用服务器群组3执行测试任务并生成测试数据,然后发包器2统计计算所述测试数据得到包括响应时间、用户吞吐量以及并发数等的统计数据。
数据收集服务器4统计计算应用服务器群组执行所述测试任务的资源数据,包括使用内存、CPU和IO的资源利用率等。
此后发包器2统计计算所述统计数据并通过接口测试平台1推送至外部,本实施例中还可以进一步采用邮件通知的方式来通知用户,也可以通过特定的显示界面来显示相关测试报告。此外还可以采用其他适用的通知方式,并不局限于本实施例中的实现方式。
然后,数据库5存储所述统计数据和测试数据。并且在应用服务器群组3执行完测试任务并生成测试数据后,发包器2生成并存储响应报文,然后存储至存储单元7中。
此后,异步地对响应报文进行功能验证,即在发包器2生成测试数据和响应报文后,测试请求执行完成,任务队列中将队列中的测试请求按照次序再调用发包器2,而对于响应报文的验证独立执行,并不影响测试请求的完成。此后将功能验证的结果通过所述接口测试平台推送至用户,并且推送的方式和具体显示方法等与上述的测试数据的推送方式相同。
如上所述,本实施例的性能测试装置在测试用例和场景设置好后可重复使用,测试时简单配置就能够自动进行性能测试,测试完成后自动统计性能测试报告,分析结果,并还可以邮件通知用户,也可以到通过平台推送出测试报告页面查看报告,极大节省人力成本。此外,由于是自动执行测试任务,所以无需测试执行人员在现场等待,自动执行并出具报告。
此外通过平台推送的方式可以设立权限来区分推送人员,例如用户根据所在组别申请各自组别的权限,只能看到所在组别的测试用例和测试报告,避免干扰和误改他人用例。可申请多个组别的权限。
本申请可用于众多通用或专用的计算***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC(个人电脑)、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本申请也可以在由计算机执行的计算机可执行指令实现,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (11)
1.一种可配置性能测试装置,其特征在于,所述可配置性能测试装置包括:
接口测试平台、发包器、应用服务器群组、数据收集服务器和数据库;
其中所述接口测试平台创建测试用例和/或测试场景,并保存测试任务信息至所述数据库,生成测试请求并调用所述发包器;
所述发包器解析所述测试请求,从所述数据库调用测试用例和/或测试场景,并构建测试任务;
所述发包器还通过所述应用服务器群组执行所述测试任务并生成测试数据,所述发包器统计计算所述测试数据得到统计数据;
所述数据收集服务器统计计算应用服务器群组执行所述测试任务的资源数据;
所述发包器统计所述统计数据并通过接口测试平台推送;
所述数据库存储所述统计数据和测试数据;
在所述发包器中设置多个测试用例批量运行,其中多个测试用例批量运行包括多个测试用例的按序串行执行或组成混合场景并行执行。
2.如权利要求1所述的可配置性能测试装置,其特征在于,所述可配置性能测试装置还包括任务处理服务器群组,所述任务处理服务器群组从接口测试平台接收测试请求并调用所述发包器。
3.如权利要求2所述的可配置性能测试装置,其特征在于,所述任务处理服务器群组将测试请求放入任务队列,并按照任务队列的顺序调用所述发包器。
4.如权利要求2所述的可配置性能测试装置,其特征在于,所述可配置性能测试装置还包括存储单元,所述发包器生成并存储响应报文至所述存储单元。
5.如权利要求4所述的可配置性能测试装置,其特征在于,所述可配置性能测试装置异步地对所述响应报文进行功能验证,并将功能验证的结果通过所述接口测试平台推送。
6.如权利要求1所述的可配置性能测试装置,其特征在于,所述测试请求包括测试参数、测试逻辑和对应于所述数据库中测试用例或测试场景的主键。
7.如权利要求6所述的可配置性能测试装置,其特征在于,所述发包器基于测试参数、测试逻辑以及通过主键从所述数据库中调用的测试用例和/或测试场景构建测试任务。
8.如权利要求1所述的可配置性能测试装置,其特征在于,所述统计数据包括响应时间、用户吞吐量以及并发数。
9.如权利要求1所述的可配置性能测试装置,其特征在于,所述资源数据包括使用内存、CPU和IO的资源利用率。
10.如权利要求1所述的可配置性能测试装置,其特征在于,所述发包器多线程地请求所述应用服务器群组执行所述测试任务。
11.如权利要求1所述的可配置性能测试装置,其特征在于,所述应用服务器群组和发包器采用分布式部署。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611041730.1A CN106776280B (zh) | 2016-11-24 | 2016-11-24 | 可配置性能测试装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611041730.1A CN106776280B (zh) | 2016-11-24 | 2016-11-24 | 可配置性能测试装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776280A CN106776280A (zh) | 2017-05-31 |
CN106776280B true CN106776280B (zh) | 2020-10-16 |
Family
ID=58975202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611041730.1A Active CN106776280B (zh) | 2016-11-24 | 2016-11-24 | 可配置性能测试装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776280B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395453B (zh) * | 2017-07-03 | 2021-05-11 | 竹间智能科技(上海)有限公司 | 后台服务压力测试方法及装置 |
CN107577599A (zh) * | 2017-08-21 | 2018-01-12 | 同程网络科技股份有限公司 | 一种基于自定义脚本的接口自动化测试方法及平台 |
CN107688526A (zh) * | 2017-08-25 | 2018-02-13 | 上海壹账通金融科技有限公司 | 应用程序的性能测试方法、装置、计算机设备和存储介质 |
CN107861870B (zh) * | 2017-11-02 | 2020-07-24 | 平安科技(深圳)有限公司 | 接口测试及测试数据生成方法、装置、终端和存储介质 |
CN107908556A (zh) * | 2017-11-08 | 2018-04-13 | 中国平安人寿保险股份有限公司 | 接口测试方法、装置、设备及计算机可读存储介质 |
CN109840196B (zh) * | 2017-11-29 | 2022-08-12 | 北京京东尚科信息技术有限公司 | 测试业务逻辑的方法和装置 |
CN108334675B (zh) * | 2018-01-18 | 2022-03-15 | 北京航空航天大学 | 数字飞行器工况集批量仿真的人工智能处理方法及*** |
CN109408398A (zh) * | 2018-11-13 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种接口自动化测试装置及方法 |
CN109726119A (zh) * | 2018-12-04 | 2019-05-07 | 北京奇艺世纪科技有限公司 | 测试场景创建方法、申请方法、装置、客户端及服务器 |
CN109739704A (zh) * | 2018-12-28 | 2019-05-10 | 北京奇虎科技有限公司 | 一种接口测试方法、服务端及计算机可读存储介质 |
CN110046093A (zh) * | 2019-03-14 | 2019-07-23 | 平安信托有限责任公司 | 接口测试方法、装置、计算机设备和存储介质 |
CN111181800B (zh) * | 2019-11-27 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 测试数据处理方法、装置、电子设备及存储介质 |
CN112380113B (zh) * | 2020-10-15 | 2024-05-17 | 猫岐智能科技(上海)有限公司 | 软件测试方法及*** |
CN114500321B (zh) * | 2022-04-12 | 2022-08-02 | 成方金融科技有限公司 | 报文核验方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167537A (en) * | 1997-09-22 | 2000-12-26 | Hewlett-Packard Company | Communications protocol for an automated testing system |
CN1780236A (zh) * | 2004-11-17 | 2006-05-31 | 中兴通讯股份有限公司 | 一种电信智能业务的通用测试***及方法 |
CN101217417A (zh) * | 2007-12-28 | 2008-07-09 | 西安西电捷通无线网络通信有限公司 | 一种分布式ip网络性能测试*** |
CN104021080A (zh) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | 基于自定义脚本的自动化测试*** |
CN106021111A (zh) * | 2016-05-30 | 2016-10-12 | 上海携程商务有限公司 | 接口测试方法及*** |
-
2016
- 2016-11-24 CN CN201611041730.1A patent/CN106776280B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167537A (en) * | 1997-09-22 | 2000-12-26 | Hewlett-Packard Company | Communications protocol for an automated testing system |
CN1780236A (zh) * | 2004-11-17 | 2006-05-31 | 中兴通讯股份有限公司 | 一种电信智能业务的通用测试***及方法 |
CN101217417A (zh) * | 2007-12-28 | 2008-07-09 | 西安西电捷通无线网络通信有限公司 | 一种分布式ip网络性能测试*** |
CN104021080A (zh) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | 基于自定义脚本的自动化测试*** |
CN106021111A (zh) * | 2016-05-30 | 2016-10-12 | 上海携程商务有限公司 | 接口测试方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN106776280A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776280B (zh) | 可配置性能测试装置 | |
US10372600B2 (en) | Systems and methods for automated web performance testing for cloud apps in use-case scenarios | |
US9015667B2 (en) | Fuzz testing of asynchronous program code | |
US10521322B2 (en) | Modeling and testing of interactions between components of a software system | |
CN104683180B (zh) | 一种性能监控方法、***及应用服务器 | |
US20140047342A1 (en) | System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics | |
US20140047341A1 (en) | System and method for configuring cloud computing systems | |
US20140047227A1 (en) | System and method for configuring boot-time parameters of nodes of a cloud computing system | |
US8407672B2 (en) | Systems and methods for synchronizing software execution across data processing systems and platforms | |
US20140047079A1 (en) | System and method for emulating a desired network configuration in a cloud computing system | |
CN108256118B (zh) | 数据处理方法、装置、***、计算设备以及存储介质 | |
CN106649057A (zh) | 一种服务器压力测试的方法及装置 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN107608901B (zh) | 基于Jmeter的测试方法及装置、存储介质、电子设备 | |
CN106933709A (zh) | 一种测试方法及装置 | |
US8046638B2 (en) | Testing of distributed systems | |
US11971882B2 (en) | System and method for batch and real-time feature computation | |
CN108459958A (zh) | 功能及性能测试脚本的创建方法、装置、设备及存储介质 | |
CN114564374A (zh) | 算子性能评估方法、装置、电子设备及存储介质 | |
Lin et al. | Tracing function dependencies across clouds | |
US20200349063A1 (en) | Probabilistic software testing via dynamic graphs | |
Lei et al. | Performance and scalability testing strategy based on kubemark | |
CN110750453B (zh) | 基于html5的智能移动端测试方法、***、服务器及存储介质 | |
Frank et al. | Misim: A simulator for resilience assessment of microservice-based architectures | |
CN114116509A (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 |