CN116795625A - 一种基于Java的多线程性能测试的方法及系统 - Google Patents
一种基于Java的多线程性能测试的方法及系统 Download PDFInfo
- Publication number
- CN116795625A CN116795625A CN202211664425.3A CN202211664425A CN116795625A CN 116795625 A CN116795625 A CN 116795625A CN 202211664425 A CN202211664425 A CN 202211664425A CN 116795625 A CN116795625 A CN 116795625A
- Authority
- CN
- China
- Prior art keywords
- test
- multithreading
- tool
- concurrent
- testing
- 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
- 238000011056 performance test Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000012360 testing method Methods 0.000 claims abstract description 209
- 238000012216 screening Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000012812 general test Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于Java的多线程性能测试的方法及系统,其中,所述方法包括:接收启动指令后,根据并发的线程数循环创建待测试代码中的多线程;获取与创建的多线程相匹配的多线程测试工具,并将所述多线程测试工具安装于用户空间中;通过执行所述用户空间中的所述多线程测试工具,以在所述用户空间中创建与所述并发的线程数相匹配的多个测试用例;通过所述多线程运行各自对应的测试用例,以进行并发的多线程性能测试容。本发明提供的技术方案,能够节省多线程性能测试的成本,提高测试效率。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于Java的多线程性能测试的方法及系统。
背景技术
目前在进行多线程性能测试时,通常需要针对不同的测试用例,编写不同的代码。这样会耗费测试人员较多的精力,也会导致多线程性能测试的效率较低。
现有技术中,为了解决上述的问题,通常会按照业务场景的不同,划分不同的测试环境。然后在各个测试环境内,可以通过脚本批量编写测试代码,从而节省了代码编辑的过程,提高了多线程性能测试的效率。
然而,现有技术的这种多线程性能测试方法,针对不同的业务场景就需要搭建不同的测试系统,这样其实从另一方面提高了测试成本。
发明内容
本发明提供一种基于Java的多线程性能测试的方法及系统,能够节省多线程性能测试的成本,提高测试效率。
鉴于此,本发明一方面提供一种基于Java的多线程性能测试的方法,所述方法包括:
接收启动指令后,根据并发的线程数循环创建待测试代码中的多线程;
获取与创建的多线程相匹配的多线程测试工具,并将所述多线程测试工具安装于用户空间中;
通过执行所述用户空间中的所述多线程测试工具,以在所述用户空间中创建与所述并发的线程数相匹配的多个测试用例;
通过所述多线程运行各自对应的测试用例,以进行并发的多线程性能测试。
在一个实施方式中,所述待测试代码用于表征对启动流程和提交工作项进行测试;
相应地,获取与创建的多线程相匹配的多线程测试工具包括:
从候选的多个多线程测试工具中,筛选出测试功能包含对启动流程和提交工作项进行测试的目标多线程测试工具;
在所述目标多线程测试工具中,将满足所述并发的线程数的多线程测试工具,作为与创建的多线程相匹配的多线程测试工具。
在一个实施方式中,进行并发的多线程性能测试包括:
判断测试用例的执行时长是否已经超过了指定测试时长,若已超过,获取测试结果,将测试结果保存至预先创建的Java类中,并返回表征性能测试完毕的通知。
在一个实施方式中,通过所述多线程运行各自对应的测试用例包括:
统计各个所述测试用例所依赖的执行环境,并按照执行环境对各个所述测试用例进行分组,得到一个或者多个测试分组;
为每个测试分组配置对应的执行环境,并在配置后的执行环境中通过多线程运行各自的测试用例。
本发明另一方面还提供一种基于Java的多线程性能测试的系统,所述系统包括:
线程创建单元,用于接收启动指令后,根据并发的线程数循环创建待测试代码中的多线程;
工具安装单元,用于获取与创建的多线程相匹配的多线程测试工具,并将所述多线程测试工具安装于用户空间中;
用例创建单元,用于通过执行所述用户空间中的所述多线程测试工具,以在所述用户空间中创建与所述并发的线程数相匹配的多个测试用例;
测试单元,用于通过所述多线程运行各自对应的测试用例,以进行并发的多线程性能测试。
在一个实施方式中,所述待测试代码用于表征对启动流程和提交工作项进行测试;所述工具安装单元具体用于,从候选的多个多线程测试工具中,筛选出测试功能包含对启动流程和提交工作项进行测试的目标多线程测试工具;在所述目标多线程测试工具中,将满足所述并发的线程数的多线程测试工具,作为与创建的多线程相匹配的多线程测试工具。
在一个实施方式中,所述测试单元具体用于,判断测试用例的执行时长是否已经超过了指定测试时长,若已超过,获取测试结果,将测试结果保存至预先创建的Java类中,并返回表征性能测试完毕的通知。
在一个实施方式中,所述测试单元具体还用于,统计各个所述测试用例所依赖的执行环境,并按照执行环境对各个所述测试用例进行分组,得到一个或者多个测试分组;为每个测试分组配置对应的执行环境,并在配置后的执行环境中通过多线程运行各自的测试用例。
由上可见,本公开提供的技术方案,根据并发的线程数可以创建对应的多线程,后续可以在用户空间安装多线程测试工具,该多线程测试工具可以在用户空间创建与多线程相匹配的多个测试用例,这些测试用例可以被上述的多线程执行,从而得到对应的测试结果。
本公开提供的技术方案,并不需要为不同的业务场景建立不同的测试系统,而是通过通用的测试系统,在用户空间进行多线程测试,不仅保证了用户空间数据的独立性,同时也可以针对不同的业务环境进行多线程测试。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种基于Java的多线程性能测试的方法的步骤示意图;
图2为本发明实施例中一种基于Java的多线程性能测试的系统的功能模块示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
请参阅图1,本发明提供一种基于Java的多线程性能测试的方法,所述方法包括以下多个步骤。
S1:接收启动指令后,根据并发的线程数循环创建待测试代码中的多线程。
S2:获取与创建的多线程相匹配的多线程测试工具,并将所述多线程测试工具安装于用户空间中。
S3:通过执行所述用户空间中的所述多线程测试工具,以在所述用户空间中创建与所述并发的线程数相匹配的多个测试用例。
S4:通过所述多线程运行各自对应的测试用例,以进行并发的多线程性能测试。
在本实施方式中,可以搭建通用的测试系统。测试系统接收到启动指令后,可以解析该启动指令中携带的待测试代码。通常而言,待测试代码中会包含执行代码所需的并发线程数。这样,通过对启动指令进行解析,便可以根据并发的线程数,创建对应的多线程。
在创建了多线程后,可以采用与多线程相匹配的多线程测试工具,来进行测试用例的创建。其中,多线程测试工具可以是现有的用于进行多线程测试的工具。通常而言,不同的多线程测试工具,支持的线程数量以及可用的测试功能可能会不同。在实际应用中,待测试代码可以用于表征对启动流程和提交工作项进行测试,相应地,在获取与创建的多线程相匹配的多线程测试工具时,可以先从候选的多个多线程测试工具中,筛选出测试功能包含对启动流程和提交工作项进行测试的目标多线程测试工具。然后,可以在所述目标多线程测试工具中,将满足所述并发的线程数的多线程测试工具,作为与创建的多线程相匹配的多线程测试工具。其中,满足并发的线程数,可以指多线程测试工具支持的最大线程数大于或者等于该并发的线程数。
在选取了适合的多线程测试工具后,该多线程测试工具可以在用户空间中安装。其中,用户空间可以区别于内核空间,可以指能够被用户创建和进行信息配置的空间,不同的用户空间之间,数据可以相互独立,以保证数据不会串扰。在用户空间中安装了多线程测试工具后,便可以通过执行所述用户空间中的所述多线程测试工具,从而在所述用户空间中创建与所述并发的线程数相匹配的多个测试用例。其中,测试用例的数量,可以与并发的线程数相同,从而可以通过多线程执行对应的测试用例。
在实际应用中,在进行并发的多线程性能测试时,可以判断测试用例的执行时长是否已经超过了指定测试时长,若已超过,则表明测试过程结束,此时可以获取测试结果,将测试结果保存至预先创建的Java类中,并返回表征性能测试完毕的通知。其中,预先创建的Java类可以是专用于存储测试结果的类,本发明对该类的具体实现方式并不做限定,只要能够存储并维护测试结果即可。
在本实施方式中,在通过所述多线程运行各自对应的测试用例时,可以统计各个所述测试用例所依赖的执行环境,并按照执行环境对各个所述测试用例进行分组,得到一个或者多个测试分组。其中,同一个测试分组内的测试用例,可以具备相同的执行环境。在完成分组后,可以为每个测试分组配置对应的执行环境,并在配置后的执行环境中通过多线程运行各自的测试用例。
请参阅图2,本发明还提供一种基于Java的多线程性能测试的系统,所述系统包括:
线程创建单元,用于接收启动指令后,根据并发的线程数循环创建待测试代码中的多线程;
工具安装单元,用于获取与创建的多线程相匹配的多线程测试工具,并将所述多线程测试工具安装于用户空间中;
用例创建单元,用于通过执行所述用户空间中的所述多线程测试工具,以在所述用户空间中创建与所述并发的线程数相匹配的多个测试用例;
测试单元,用于通过所述多线程运行各自对应的测试用例,以进行并发的多线程性能测试。
在一个实施方式中,所述待测试代码用于表征对启动流程和提交工作项进行测试;所述工具安装单元具体用于,从候选的多个多线程测试工具中,筛选出测试功能包含对启动流程和提交工作项进行测试的目标多线程测试工具;在所述目标多线程测试工具中,将满足所述并发的线程数的多线程测试工具,作为与创建的多线程相匹配的多线程测试工具。
在一个实施方式中,所述测试单元具体用于,判断测试用例的执行时长是否已经超过了指定测试时长,若已超过,获取测试结果,将测试结果保存至预先创建的Java类中,并返回表征性能测试完毕的通知。
在一个实施方式中,所述测试单元具体还用于,统计各个所述测试用例所依赖的执行环境,并按照执行环境对各个所述测试用例进行分组,得到一个或者多个测试分组;为每个测试分组配置对应的执行环境,并在配置后的执行环境中通过多线程运行各自的测试用例。
由上可见,本公开提供的技术方案,根据并发的线程数可以创建对应的多线程,后续可以在用户空间安装多线程测试工具,该多线程测试工具可以在用户空间创建与多线程相匹配的多个测试用例,这些测试用例可以被上述的多线程执行,从而得到对应的测试结果。
本公开提供的技术方案,并不需要为不同的业务场景建立不同的测试系统,而是通过通用的测试系统,在用户空间进行多线程测试,不仅保证了用户空间数据的独立性,同时也可以针对不同的业务环境进行多线程测试。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种基于Java的多线程性能测试的方法,其特征在于,所述方法包括:
接收启动指令后,根据并发的线程数循环创建待测试代码中的多线程;
获取与创建的多线程相匹配的多线程测试工具,并将所述多线程测试工具安装于用户空间中;
通过执行所述用户空间中的所述多线程测试工具,以在所述用户空间中创建与所述并发的线程数相匹配的多个测试用例;
通过所述多线程运行各自对应的测试用例,以进行并发的多线程性能测试。
2.根据权利要求1所述的方法,其特征在于,所述待测试代码用于表征对启动流程和提交工作项进行测试;
相应地,获取与创建的多线程相匹配的多线程测试工具包括:
从候选的多个多线程测试工具中,筛选出测试功能包含对启动流程和提交工作项进行测试的目标多线程测试工具;
在所述目标多线程测试工具中,将满足所述并发的线程数的多线程测试工具,作为与创建的多线程相匹配的多线程测试工具。
3.根据权利要求1所述的方法,其特征在于,进行并发的多线程性能测试包括:
判断测试用例的执行时长是否已经超过了指定测试时长,若已超过,获取测试结果,将测试结果保存至预先创建的Java类中,并返回表征性能测试完毕的通知。
4.根据权利要求1所述的方法,其特征在于,通过所述多线程运行各自对应的测试用例包括:
统计各个所述测试用例所依赖的执行环境,并按照执行环境对各个所述测试用例进行分组,得到一个或者多个测试分组;
为每个测试分组配置对应的执行环境,并在配置后的执行环境中通过多线程运行各自的测试用例。
5.一种基于Java的多线程性能测试的系统,其特征在于,所述系统包括:
线程创建单元,用于接收启动指令后,根据并发的线程数循环创建待测试代码中的多线程;
工具安装单元,用于获取与创建的多线程相匹配的多线程测试工具,并将所述多线程测试工具安装于用户空间中;
用例创建单元,用于通过执行所述用户空间中的所述多线程测试工具,以在所述用户空间中创建与所述并发的线程数相匹配的多个测试用例;
测试单元,用于通过所述多线程运行各自对应的测试用例,以进行并发的多线程性能测试。
6.根据权利要求5所述的系统,其特征在于,所述待测试代码用于表征对启动流程和提交工作项进行测试;所述工具安装单元具体用于,从候选的多个多线程测试工具中,筛选出测试功能包含对启动流程和提交工作项进行测试的目标多线程测试工具;在所述目标多线程测试工具中,将满足所述并发的线程数的多线程测试工具,作为与创建的多线程相匹配的多线程测试工具。
7.根据权利要求5所述的系统,其特征在于,所述测试单元具体用于,判断测试用例的执行时长是否已经超过了指定测试时长,若已超过,获取测试结果,将测试结果保存至预先创建的Java类中,并返回表征性能测试完毕的通知。
8.根据权利要求5所述的系统,其特征在于,所述测试单元具体还用于,统计各个所述测试用例所依赖的执行环境,并按照执行环境对各个所述测试用例进行分组,得到一个或者多个测试分组;为每个测试分组配置对应的执行环境,并在配置后的执行环境中通过多线程运行各自的测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211664425.3A CN116795625A (zh) | 2022-12-23 | 2022-12-23 | 一种基于Java的多线程性能测试的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211664425.3A CN116795625A (zh) | 2022-12-23 | 2022-12-23 | 一种基于Java的多线程性能测试的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116795625A true CN116795625A (zh) | 2023-09-22 |
Family
ID=88037439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211664425.3A Pending CN116795625A (zh) | 2022-12-23 | 2022-12-23 | 一种基于Java的多线程性能测试的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116795625A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991750A (zh) * | 2023-09-28 | 2023-11-03 | 北京索云科技股份有限公司 | 利用多线程和分布式代理实现大并发模拟的压力测试方法 |
CN117453553A (zh) * | 2023-10-30 | 2024-01-26 | 中科驭数(北京)科技有限公司 | 性能测试分析方法、装置、设备及介质 |
-
2022
- 2022-12-23 CN CN202211664425.3A patent/CN116795625A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991750A (zh) * | 2023-09-28 | 2023-11-03 | 北京索云科技股份有限公司 | 利用多线程和分布式代理实现大并发模拟的压力测试方法 |
CN116991750B (zh) * | 2023-09-28 | 2023-12-22 | 北京索云科技股份有限公司 | 利用多线程和分布式代理实现大并发模拟的压力测试方法 |
CN117453553A (zh) * | 2023-10-30 | 2024-01-26 | 中科驭数(北京)科技有限公司 | 性能测试分析方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116795625A (zh) | 一种基于Java的多线程性能测试的方法及系统 | |
US8056060B2 (en) | Software testing method and system | |
US10338956B2 (en) | Application profiling job management system, program, and method | |
Memon et al. | Skoll: Distributed continuous quality assurance | |
CN103034575B (zh) | 崩溃分析方法和装置 | |
CN103049373B (zh) | 一种崩溃的定位方法和装置 | |
CN105302717A (zh) | 一种大数据平台的检测方法及装置 | |
JP2008529119A (ja) | マルチスレッドプロセッサ | |
CN104978272A (zh) | 一种用于数据竞争检测的程序调度方法 | |
US7996658B2 (en) | Processor system and method for monitoring performance of a selected task among a plurality of tasks | |
US6983216B2 (en) | Test automation method and tool with dynamic attributes and value sets integration | |
GB2594498A (en) | Instruction scheduling | |
US11579680B2 (en) | Methods and devices for power management based on synthetic machine learning benchmarks | |
US9092558B2 (en) | Grouping frequently referenced data items to co-locate for cache utilization | |
CN110413849A (zh) | 一种数据排序方法及装置 | |
CN110674042B (zh) | 一种并发性能测试方法与装置 | |
CN110874319A (zh) | 自动化测试方法、平台、设备及计算机可读存储介质 | |
CN116257331A (zh) | 基于字节码的程序分配方法、系统、终端以及存储介质 | |
CN112559148A (zh) | 有序任务的执行方法、执行装置和执行系统 | |
CN111159006B (zh) | 一种自动化测试方法及装置 | |
CN112416589A (zh) | 一种用于运维平台定时作业错峰执行的方法 | |
CN111694728A (zh) | 脚本的自动化生成方法和装置 | |
CN113518974A (zh) | 用于找出并标识网络中的计算节点的系统和方法 | |
CN111581041A (zh) | 一种磁盘性能测试的方法和设备 | |
CN113190497B (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 |