CN116820908A - 基于Locust的性能测试方法、装置、设备及介质 - Google Patents
基于Locust的性能测试方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116820908A CN116820908A CN202310779460.8A CN202310779460A CN116820908A CN 116820908 A CN116820908 A CN 116820908A CN 202310779460 A CN202310779460 A CN 202310779460A CN 116820908 A CN116820908 A CN 116820908A
- Authority
- CN
- China
- Prior art keywords
- test
- performance
- tool
- jenkins
- locust
- 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 77
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012360 testing method Methods 0.000 claims abstract description 149
- 238000013515 script Methods 0.000 claims abstract description 53
- 241000238814 Orthoptera Species 0.000 claims description 42
- 230000006399 behavior Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000009434 installation Methods 0.000 claims description 5
- 238000012804 iterative process Methods 0.000 abstract description 2
- 238000013522 software testing Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 9
- 238000009530 blood pressure measurement Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000012827 research and development Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012796 concurrent verification Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 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/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
- G06F11/3414—Workload generation, e.g. scripts, playback
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及软件测试技术领域,公开了一种基于Locust的性能测试方法、装置、设备及介质。该方法包括:安装并配置Locust工具与Jenkins工具,基于Python语言编写Locust测试脚本;在Jenkins工具中创建Jenkins作业,根据Jenkins作业配置源代码管理,并通过源代码管理获取Locust测试脚本;Jenkins工具通过执行Python命令运行Locust测试脚本,并指定性能测试的测试参数;Locust工具根据测试参数执行性能测试,并生成性能测试对应的性能结果数据,通过Jenkins工具收集性能结果数据。本发明提升了性能测试效率,并在一定程度上可以规避迭代过程中的风险。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种基于Locust的性能测试方法、装置、设备及介质。
背景技术
在软件技术中,针对临时性计算资源需求,比如性能压测,往往不是固定的、长期的运行行为,一般情况下,往往需要单独申请服务器用于性能压测使用,或者直接在某些当前表面上看负载模式较低的服务器上进行部署,进行性能压测。
目前市面上传统的性能压测方案,是启用服务器线程来创建虚拟用户去做并发验证,不足之处是会消耗压测机大量资源,且需要提前准备,浪费了大量的时间成本与金钱成本。
发明内容
有鉴于此,本发明的目的是为了克服现有技术中的不足,提供一种基于Locust的性能测试方法、装置、设备及介质。
本发明提供如下技术方案:
第一方面,本公开实施例中提供了一种基于Locust的性能测试方法,所述方法包括:
安装并配置Locust工具与Jenkins工具,基于Python语言编写Locust测试脚本;
在所述Jenkins工具中创建Jenkins作业,根据所述Jenkins作业配置源代码管理,并通过所述源代码管理获取所述Locust测试脚本;
所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,并指定性能测试的测试参数;
所述Locust工具根据所述测试参数执行所述性能测试,并生成所述性能测试对应的性能结果数据,通过所述Jenkins工具收集所述性能结果数据。
进一步地,所述Jenkins工具通过执行Python命令运行所述Locust测试脚本之前,还包括:
指定所述Locust测试脚本的执行路径、测试场景、用户行为、负载模式与测试任务;
设置所述Locust测试脚本的性能指标,其中,所述性能指标包括每秒请求数与响应时间。
进一步地,所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,包括:
在所述Jenkins工具中创建执行项目;
所述Jenkins工具在所述执行项目中根据所述执行路径、所述测试场景、所述用户行为、所述负载模式、所述测试任务与所述性能指标,通过执行Python命令运行所述Locust测试脚本。
进一步地,所述测试参数包括并发用户数和测试持续时间,所述Locust工具根据所述测试参数执行所述性能测试,包括:
所述Locust工具根据所述并发用户数和所述测试持续时间,并基于事件驱动架构设置协程;
通过事件循环对所述协程进行调用,以执行所述性能测试。
进一步地,所述Locust工具根据所述测试参数执行所述性能测试,还包括:
所述Locust工具启动Master节点与Web界面;
通过所述Master节点协调和管理所述性能测试的过程;
通过所述Web界面监视和控制所述性能测试的执行。
进一步地,所述Locust工具根据所述测试参数执行所述性能测试,还包括:
所述Locust工具启动至少一个Slave节点;
通过所述Slave节点模拟并发用户,并定期向所述Master节点报告所述并发用户的状态和性能指标。
进一步地,所述通过所述Jenkins工具收集所述性能结果数据之后,还包括:
所述Jenkins工具根据所述性能结果数据,生成性能测试报告,其中,所述性能结果数据包括当前用户数、请求速率和错误率,所述性能测试报告包括所述性能指标、响应时间分布图和错误报告。
第二方面,本公开实施例中提供了一种基于Locust的性能测试装置,所述装置包括:
安装模块,用于安装并配置Locust工具与Jenkins工具,基于Python语言编写Locust测试脚本;
获取模块,用于在所述Jenkins工具中创建Jenkins作业,根据所述Jenkins作业配置源代码管理,并通过所述源代码管理获取所述Locust测试脚本;
执行模块,用于所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,并指定性能测试的测试参数;
收集模块,用于所述Locust工具根据所述测试参数执行所述性能测试,并生成所述性能测试对应的性能结果数据,通过所述Jenkins工具收集所述性能结果数据。
第三方面,本公开实施例中提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中所述的基于Locust的性能测试方法的步骤。
第四方面,本公开实施例中提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述的基于Locust的性能测试方法的步骤。
本发明的实施例具有如下优点:
本发明实施例提供的基于Locust的性能测试方法,方法包括:安装并配置Locust工具与Jenkins工具,基于Python语言编写Locust测试脚本;在所述Jenkins工具中创建Jenkins作业,根据所述Jenkins作业配置源代码管理,并通过所述源代码管理获取所述Locust测试脚本;所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,并指定性能测试的测试参数;所述Locust工具根据所述测试参数执行所述性能测试,并生成所述性能测试对应的性能结果数据,通过所述Jenkins工具收集所述性能结果数据。本发明提升了性能测试效率,并在一定程度上可以规避迭代过程中的风险,节约研发成本,无须购买有一定要求的硬件配置服务器。
为使本发明的上述目的、特征和优点能更明显和易懂,下文特举较佳实施例,并配合所附附图,做详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本发明实施例提供的一种基于Locust的性能测试方法的流程图;
图2示出了本发明实施例提供的另一种基于Locust的性能测试方法的流程图;
图3示出了本发明实施例提供的一种基于Locust的性能测试装置的结构示意图;
图4示出了本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。相反,当元件被称作“直接在”另一元件“上”时,不存在中间元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在模板的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例1
如图1所示,为本发明实施例中的一种基于Locust的性能测试方法的流程图,本发明实施例提供的性能测试方法包括以下步骤:
步骤S110,安装并配置Locust工具与Jenkins工具,基于Python语言编写Locust测试脚本。
在本实施例中,首先需要确保已安装Python工具,并将Python工具的可执行文件路径正确配置在系统环境变量中。Python工具提供了高效的高级数据结构,还能简单有效地面向对象编程。Python工具的语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。Python工具在各个编程语言中比较适合新手学习,Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python工具也可用于可定制化软件中的扩展程序语言。Python工具丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
具体地,使用pip或conda等包管理工具安装所述Locust工具和所需的Python依赖项。安装所述Jenkins工具并进行必要的配置,如安装所需插件、配置构建环境等。
使用Python语言编写所述Locust测试脚本,所述Locust测试脚本定义了性能测试的行为、执行路径、测试场景、用户行为、负载模式、测试任务、用户数量、请求和响应的处理逻辑等。
需要说明的是,Jenkins工具是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins工具用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
可以理解的是,Locust工具是一种易于使用、可编写脚本且可扩展的性能测试工具。并且有一个用户友好的Web界面,可以实时显示测试进度。甚至可以在测试运行时更改负载。它也可以在没有UI的情况下运行,使其易于用于性能测试。
pip是一个现代的、通用的Python包管理工具。提供了对Python包的查找、下载、安装、卸载的功能。
Conda是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换,conda是为python程序创建的,适用于Linux和Windows,也可以打包和分发其他软件。
通过所述Jenkins工具与所述Locust工具的结合,提供了便捷的方式来执行、监控和报告性能测试任务。
步骤S120,在所述Jenkins工具中创建Jenkins作业,根据所述Jenkins作业配置源代码管理,并通过所述源代码管理获取所述Locust测试脚本。
进一步地,在所述Jenkins工具中创建一个新的Jenkins作业,并根据Jenkins作业配置源代码管理以获取所述Locust测试脚本。
需要说明的是,在本实施例中,源代码管理可以为Git系统,Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。具体的源代码管理可根据实际应用确定,本申请实施例对此不作限定。
在一种可选的实施方式中,如图2所示,步骤S130之前还包括:
步骤S1201,指定所述Locust测试脚本的执行路径、测试场景、用户行为、负载模式与测试任务;
步骤S1202,设置所述Locust测试脚本的性能指标,其中,所述性能指标包括每秒请求数与响应时间。
具体地,指定所述Locust测试脚本的执行路径、测试场景、用户行为、负载模式与测试任务,并设置所述Locust测试脚本的性能指标,其中,所述性能指标包括每秒请求数(Requests per Second)与响应时间(Response Time)。
步骤S130,所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,并指定性能测试的测试参数。
具体地,在所述Jenkins工具中创建一个新的执行项目或选择现有的执行项目,所述Jenkins工具在执行项目中通过执行Python命令或运行Locust命令行,根据所述执行路径(Locustfile)、所述测试场景、所述用户行为、所述负载模式、所述测试任务与所述性能指标,运行所述Locust测试脚本。
设置所述Locust测试脚本的测试参数,如目标URL地址、并发用户数、测试持续时间等,上述测试参数将决定性能测试的行为和目标。
进一步地,启动所述Locust工具,所述Locust工具根据所述性能测试中的并发用户数、测试持续时间和URL地址等,并基于事件驱动架构设置多个协程(Coroutine),通过事件循环(Event Loop)对所述协程进行调用,以执行所述性能测试。
需要说明的是,由于协程是单线程的,一次只能调用一个协程,多个协程按照先进先出的规则,形成一条消息队列,事件循环就是一个执行消息队列的机制。
在一种实施方式中,所述Locust工具启动一个Master节点,所述Master节点负责协调和管理所述性能测试的过程。同时还启动一个Web界面,所述Web界面负责监视和控制所述性能测试的执行。
在另一种实施方式中,所述Locust工具还可以启动一个或多个Slave节点,每个Slave节点负责模拟一组并发用户,并定期向Master节点报告当前并发用户的状态和性能指标。
需要说明的是,Locust工具默认启动的为Master节点,当有大量的任务需要执行时,分布式的架构将会提高执行效率,Slave节点即为分布式的节点。分布式任务需要建立Master节点与Slave节点之间的连接,由Master节点发出指令让Slave节点执行即可。
步骤S140,所述Locust工具根据所述测试参数执行所述性能测试,并通过所述Jenkins工具收集所述性能结果数据。
在性能测试执行期间,Jenkins工具会收集性能结果数据并进行展示,其中,所述性能结果数据包括实时的执行日志、当前用户数、请求速率、错误率等信息。
性能测试完成后,Jenkins工具会根据性能结果数据生成性能测试报告。所述性能测试报告包括所述性能指标、响应时间分布图和错误报告。
通过生成性能测试报告,可以有效帮助监控性能测试的进度和结果,以便开发团队评估应用程序的性能情况。
通过Jenkins工具与Locust工具的集成,开发团队可以将性能测试纳入其持续集成和交付流程中,实现自动化的性能测试和监控。Jenkins工具提供了可视化和可扩展的平台,使得Locust工具性能测试任务的执行和管理更加方便和灵活。开发团队可以轻松地将Locust测试脚本与Jenkins项目结合,实现持续的性能测试,并通过Jenkins工具生成的报告功能进行结果分析和决策。
本发明实施例提供的基于Locust的性能测试方法,安装并配置Locust工具与Jenkins工具,基于Python语言编写Locust测试脚本;在所述Jenkins工具中创建Jenkins作业,根据所述Jenkins作业配置源代码管理,并通过所述源代码管理获取所述Locust测试脚本;所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,并指定性能测试的测试参数;所述Locust工具根据所述测试参数执行所述性能测试,并生成所述性能测试对应的性能结果数据,通过所述Jenkins工具收集所述性能结果数据。本发明提升了性能测试效率,并在一定程度上可以提升开发人员提前介入的优势,规避迭代过程中的风险,节约研发成本,无须购买有一定要求的硬件配置服务器。
实施例2
如图3所示,为本发明实施例中的一种基于Locust的性能测试装置300的结构示意图,性能测试装置包括:
安装模块310,用于安装并配置Locust工具与Jenkins工具,基于Python语言编写Locust测试脚本;
获取模块320,用于在所述Jenkins工具中创建Jenkins作业,根据所述Jenkins作业配置源代码管理,并通过所述源代码管理获取所述Locust测试脚本;
执行模块330,用于所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,并指定性能测试的测试参数;
收集模块340,用于所述Locust工具根据所述测试参数执行所述性能测试,并通过所述Jenkins工具收集所述性能结果数据。
可选地,上述基于Locust的性能测试装置300还包括:
指定模块,用于指定所述Locust测试脚本的执行路径、测试场景、用户行为、负载模式与测试任务;
第一设置模块,用于设置所述Locust测试脚本的性能指标,其中,所述性能指标包括每秒请求数与响应时间。
可选地,上述基于Locust的性能测试装置300还包括:
创建模块,用于在所述Jenkins工具中创建执行项目;
运行模块,用于所述Jenkins工具在所述执行项目中根据所述执行路径、所述测试场景、所述用户行为、所述负载模式、所述测试任务与所述性能指标,通过执行Python命令运行所述Locust测试脚本。
可选地,上述基于Locust的性能测试装置300还包括:
第二设置模块,用于所述Locust工具根据所述并发用户数和所述测试持续时间,并基于事件驱动架构设置协程;
执行子模块,用于通过事件循环对所述协程进行调用,以执行所述性能测试。
可选地,上述基于Locust的性能测试装置300还包括:
第一启动模块,用于所述Locust工具启动Master节点与Web界面;
协调模块,用于通过所述Master节点协调和管理所述性能测试的过程;
监视模块,用于通过所述Web界面监视和控制所述性能测试的执行。
可选地,上述基于Locust的性能测试装置300还包括:
第二启动模块,用于所述Locust工具启动至少一个Slave节点;
报告模块,用于通过所述Slave节点模拟并发用户,并定期向所述Master节点报告所述并发用户的状态和性能指标。
可选地,上述基于Locust的性能测试装置300还包括:
生成模块,用于所述Jenkins工具根据所述性能结果数据,生成性能测试报告,其中,所述性能结果数据包括当前用户数、请求速率和错误率,所述性能测试报告包括所述性能指标、响应时间分布图和错误报告。
本发明实施例提供的基于Locust的性能测试装置,包括安装模块,用于安装并配置Locust工具与Jenkins工具,基于Python语言编写Locust测试脚本;获取模块,用于在所述Jenkins工具中创建Jenkins作业,根据所述Jenkins作业配置源代码管理,并通过所述源代码管理获取所述Locust测试脚本;执行模块,用于所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,并指定性能测试的测试参数;收集模块,用于所述Locust工具根据所述测试参数执行所述性能测试,并生成所述性能测试对应的性能结果数据,通过所述Jenkins工具收集所述性能结果数据。本装置提升了性能测试效率,并在一定程度上可以提升开发人员提前介入的优势,规避迭代过程中的风险,节约研发成本,无须购买有一定要求的硬件配置服务器。
实施例3
本发明实施例还提供一种计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D插槽兼容性测试存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如插槽兼容性测试方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他性能测试芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述插槽兼容性测试方法的计算机可读指令。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本实施例中提供的计算机设备可以执行基于Locust的性能测试方法。此处性能测试方法可以是上述各个实施例的基于Locust的性能测试方法。本实施例中提供的计算机设备可以提升性能测试效率,并在一定程度上可以提升开发人员提前介入的优势,规避迭代过程中的风险,节约研发成本,无须购买有一定要求的硬件配置服务器。
实施例4
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中基于Locust的性能测试方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于Locust的性能测试方法,其特征在于,所述方法包括:
安装并配置Locust工具与Jenkins工具,基于Python语言编写Locust测试脚本;
在所述Jenkins工具中创建Jenkins作业,根据所述Jenkins作业配置源代码管理,并通过所述源代码管理获取所述Locust测试脚本;
所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,并指定性能测试的测试参数;
所述Locust工具根据所述测试参数执行所述性能测试,并生成所述性能测试对应的性能结果数据,通过所述Jenkins工具收集所述性能结果数据。
2.根据权利要求1所述的基于Locust的性能测试方法,其特征在于,所述Jenkins工具通过执行Python命令运行所述Locust测试脚本之前,还包括:
指定所述Locust测试脚本的执行路径、测试场景、用户行为、负载模式与测试任务;
设置所述Locust测试脚本的性能指标,其中,所述性能指标包括每秒请求数与响应时间。
3.根据权利要求2所述的基于Locust的性能测试方法,其特征在于,所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,包括:
在所述Jenkins工具中创建执行项目;
所述Jenkins工具在所述执行项目中根据所述执行路径、所述测试场景、所述用户行为、所述负载模式、所述测试任务与所述性能指标,通过执行Python命令运行所述Locust测试脚本。
4.根据权利要求1所述的基于Locust的性能测试方法,其特征在于,所述测试参数包括并发用户数和测试持续时间,所述Locust工具根据所述测试参数执行所述性能测试,包括:
所述Locust工具根据所述并发用户数和所述测试持续时间,并基于事件驱动架构设置协程;
通过事件循环对所述协程进行调用,以执行所述性能测试。
5.根据权利要求1所述的基于Locust的性能测试方法,其特征在于,所述Locust工具根据所述测试参数执行所述性能测试,还包括:
所述Locust工具启动Master节点与Web界面;
通过所述Master节点协调和管理所述性能测试的过程;
通过所述Web界面监视和控制所述性能测试的执行。
6.根据权利要求5所述的基于Locust的性能测试方法,其特征在于,所述Locust工具根据所述测试参数执行所述性能测试,还包括:
所述Locust工具启动至少一个Slave节点;
通过所述Slave节点模拟并发用户,并定期向所述Master节点报告所述并发用户的状态和性能指标。
7.根据权利要求6所述的基于Locust的性能测试方法,其特征在于,所述通过所述Jenkins工具收集所述性能结果数据之后,还包括:
所述Jenkins工具根据所述性能结果数据,生成性能测试报告,其中,所述性能结果数据包括当前用户数、请求速率和错误率,所述性能测试报告包括所述性能指标、响应时间分布图和错误报告。
8.一种基于Locust的性能测试装置,其特征在于,所述装置包括:
安装模块,用于安装并配置Locust工具与Jenkins工具,基于Python语言编写Locust测试脚本;
获取模块,用于在所述Jenkins工具中创建Jenkins作业,根据所述Jenkins作业配置源代码管理,并通过所述源代码管理获取所述Locust测试脚本;
执行模块,用于所述Jenkins工具通过执行Python命令运行所述Locust测试脚本,并指定性能测试的测试参数;
收集模块,用于所述Locust工具根据所述测试参数执行所述性能测试,并生成所述性能测试对应的性能结果数据,通过所述Jenkins工具收集所述性能结果数据。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述的基于Locust的性能测试方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的基于Locust的性能测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310779460.8A CN116820908A (zh) | 2023-06-28 | 2023-06-28 | 基于Locust的性能测试方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310779460.8A CN116820908A (zh) | 2023-06-28 | 2023-06-28 | 基于Locust的性能测试方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116820908A true CN116820908A (zh) | 2023-09-29 |
Family
ID=88140443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310779460.8A Pending CN116820908A (zh) | 2023-06-28 | 2023-06-28 | 基于Locust的性能测试方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116820908A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251382A (zh) * | 2023-11-17 | 2023-12-19 | 北京安锐卓越信息技术股份有限公司 | 一种自动化性能压测周期执行方法及装置 |
CN117290255A (zh) * | 2023-11-24 | 2023-12-26 | 天津华来科技股份有限公司 | 一种基于Python和Locust框架的批量接口性能测试方法 |
-
2023
- 2023-06-28 CN CN202310779460.8A patent/CN116820908A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251382A (zh) * | 2023-11-17 | 2023-12-19 | 北京安锐卓越信息技术股份有限公司 | 一种自动化性能压测周期执行方法及装置 |
CN117290255A (zh) * | 2023-11-24 | 2023-12-26 | 天津华来科技股份有限公司 | 一种基于Python和Locust框架的批量接口性能测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7209034B2 (ja) | エッジコンピューティングテスト方法、装置、機器及び読み取り可能な記憶媒体 | |
CN116820908A (zh) | 基于Locust的性能测试方法、装置、设备及介质 | |
EP3287901A1 (en) | Simulation including multiple simulators | |
US20150100832A1 (en) | Method and system for selecting and executing test scripts | |
US20150100829A1 (en) | Method and system for selecting and executing test scripts | |
US20170024303A1 (en) | System and method of runtime downloading of debug code and diagnostics tools in an already deployed baseboard management controller (bmc) devices | |
CN110457211B (zh) | 脚本性能测试方法、装置和设备及计算机存储介质 | |
US20150100830A1 (en) | Method and system for selecting and executing test scripts | |
CN102792270A (zh) | 经由bios配置概要文件的bios参数虚拟化 | |
US20150100831A1 (en) | Method and system for selecting and executing test scripts | |
CN104679500B (zh) | 实体类自动生成实现方法及装置 | |
CN112068852B (zh) | 基于国产服务器的开源软件安装方法、系统及设备和介质 | |
CN108197004B (zh) | Ios应用的方法耗时、加载视图耗时的监测方法及系统 | |
CN111190823A (zh) | Ui自动化测试方法、电子装置及计算机可读存储介质 | |
CN110543113B (zh) | 机器人硬件组装及管理方法、设备、介质、系统、前端组装客户端及机器人本体运行系统 | |
US8549473B2 (en) | Configuration management system for software product line development environment | |
CN109507991B (zh) | 一种双轴伺服控制平台调试系统及方法 | |
CN113703781B (zh) | 存储系统接口生成方法、装置、电子设备及可读存储介质 | |
EP2672388B1 (en) | Multi-processor parallel simulation method, system and scheduler | |
CN112416762B (zh) | Api测试方法及装置、设备、计算机可读存储介质 | |
CN114610597A (zh) | 一种压力测试方法、装置、设备及存储介质 | |
CN108536586B (zh) | Android移动终端的信息获取方法、设备以及系统 | |
CN116244186A (zh) | 一种操作系统测试管理方法、装置与计算设备 | |
US20220297731A1 (en) | Train signal system and linkage method therefor | |
CN112558982B (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 |