CN109460367A - 基于Jmeter可持续集成自动化性能测试的方法 - Google Patents

基于Jmeter可持续集成自动化性能测试的方法 Download PDF

Info

Publication number
CN109460367A
CN109460367A CN201811367744.1A CN201811367744A CN109460367A CN 109460367 A CN109460367 A CN 109460367A CN 201811367744 A CN201811367744 A CN 201811367744A CN 109460367 A CN109460367 A CN 109460367A
Authority
CN
China
Prior art keywords
test
jmeter
design
data
report
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
Application number
CN201811367744.1A
Other languages
English (en)
Inventor
姚清秀
陈建平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201811367744.1A priority Critical patent/CN109460367A/zh
Publication of CN109460367A publication Critical patent/CN109460367A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

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)
  • Tests Of Electronic Circuits (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提出一种基于Jmeter可持续集成自动化性能测试的方法,属于软件测试技术领域。本发明解决了目前在接口性能测试时,使用非GUI模式测试存在的测试资源浪费和无法持续性测试的问题,其技术方案要点为:首先,定义测试场景类型以及相关参数配置;其次,设计Jmeter基础测试计划;然后,设计Python脚本生成测试数据、修改测试计划和完善测试报告;最后,通过Jenkins参数化构建创建可视化配置页面;输出测试报告。本发明的有益效果是:在测试前运行python脚本往数据库中插入测试数据在每次测试前保证测试数据完整,测试数据相同并可持续性测试,让多次的测试结果更具有可对比性;将资源监控图整合到HTML结果报告中,利于测试人员更加便捷,更加全面的分析测试结果。

Description

基于Jmeter可持续集成自动化性能测试的方法
技术领域
本发明涉及软件测试技术领域,特别涉及基于Jmeter可持续集成自动化性能测试的领域。
背景技术
随着对软件、系统的性能要求越来越高,为了避免因为突然的用户并发请求,造成系统崩溃等不希望发生的情况,对系统进行非常必要的接口性能测试。但通常是运用Jmeter GUI模式来模拟用户并发的场景但Jmeter可视化界面会消耗计算机很多资源,并且运行的结果是保存在Jmeter运行的内存中,一旦运行时间太长,内存增长到一定程度,就会报错,甚至假死。因此,需要使用非GUI的模式来进行测试。
但使用非GUI模式测试时会面临一些问题,当需要变更测试环境,就需要手动去修改测试计划,改变为对应的测试服务器;又当需要进行不同场景测试时需要设计不同测试策略,必须重新更改测试计划甚至重新设计新的测试计划;Jmeter非GUI模式下只能产生监控数据,但要将数据变成易于查看分析的图片还要借助于命令行生成监控图片,但监控图和测试报告未集成在一起,极度的不方便测试人员去分析。在测试数据方面,需要手动的增加测试数据来满足某些接口的测试前提。这些问题都会给测试人员带来大大小小的不可避免的麻烦和错误。
发明内容
本发明的目的是提供一种基于Jmeter可持续集成自动化性能测试的方法,解决目前在接口性能测试时,使用非GUI模式测试存在的测试资源浪费和无法持续性测试的问题。
本发明解决其技术问题,采用的技术方案是:基于Jmeter可持续集成自动化性能测试的方法,包括以下步骤:
步骤1、定义测试场景类型以及相关参数配置;
步骤2、设计Jmeter基础测试计划;
步骤3、设计Python脚本生成测试数据、修改测试计划和完善测试报告;
步骤4、通过Jenkins参数化构建创建可视化配置页面;
步骤5、输出测试报告。
进一步的是,步骤4中,所述设计Python脚本生成测试数据包括如下步骤:
步骤401、根据各个接口对应数据规则,分别为每个接口设计相应规则的测试数据生成方法;
步骤402、设计脚本根据传入场景参数值匹配对应的数据生成方法;
步骤403、设计连接数据库脚本,检查并清理数据库中脏数据,然后根据接口配置相应数据表并在对应表中生成数据。
进一步的是,步骤4中,所述设计Python脚本修改测试计划包括如下步骤:
步骤411、设计测试环境修改方法,使用Python正则或ElementTree匹配修改Jmeter测试计划jmx文件中接口的统一测试环境配置节点;
步骤412、根据不同测试场景定义不同测试场景修改方法;
步骤413、设计测试场景修改方法,使用Python正则或ElementTree匹配修改Jmeter测试计划jmx文件,根据传入测试场景参数值匹配相应修改方法,修改测试计划中并发用户数、测试持续时间等,以及将目标待测接口置于Enable状态,将不需要测试的接口置于Disable状态。
进一步的是,步骤4中,所述设计Python脚本完善测试报告包括如下步骤:
步骤421、分析Jmeter生成HTML测试报告构成方式及内容展示原理;
步骤422、创建监控数据展示HTML基础模板页面;
步骤423、设计Python脚本更新监控数据展示基础模板插入资源监控图,并修改已生成的HTML报告加入资源监控展示页面。
进一步的是,步骤5中具体为:在Jenkins上展示已完善后的HTML性能测试报告并邮件发送完整的测试报告。
本发明的有益效果是,通过上述基于Jmeter可持续集成自动化性能测试的方法,首先设计选择在Jenkins平台进行可视化的参数化构建,而不需要开发web界面来实现。其次,在测试前运行python脚本往数据库中插入测试数据在每次测试前保证测试数据完整,测试数据相同并可持续性测试,让多次的测试结果更具有可对比性。并且,测试前实现测试环境和测试策略(测试类型)的参数化构建配置,让多种测试策略更新操作更便捷,节省测试时间。同时,将资源监控图整合到HTML结果报告中,利于测试人员更加便捷,更加全面的分析测试结果。
具体实施方式
下面结合实施例,详细描述本发明的技术方案。
本发明所述基于Jmeter可持续集成自动化性能测试的方法,首先,定义测试场景类型以及相关参数配置;其次,设计Jmeter基础测试计划;然后,设计Python脚本生成测试数据、修改测试计划和完善测试报告;最后,通过Jenkins参数化构建创建可视化配置页面;输出测试报告。
实施例
本发明实施例基于Jmeter可持续集成自动化性能测试的方法,具体应用时,可包括如下步骤:
1.1定义测试场景(测试策略)
定义各个测试场景,如T1、T2、...、Tn,以及各个场景下需要修改的参数。
1.2Jmeter设计基础测试测试计划
为了后面测试进程的顺利运行,需要先在Jmeter中设计基础测试脚本,其中包括所有待测试接口及接口参数、断言的配置(断言是一种Jmeter元件,用来对响应结果设定某个条件,便于测试人员判断此次请求是否成功)以及服务器指标监控。
1.3设计生成测试数据的Python脚本
1)根据各个接口对应数据规则,分别为每个接口设计相应规则的测试数据生成方法;
2)设计脚本根据传入场景参数值匹配对应的数据生成方法;
3)设计连接数据库脚本,检查并清理数据库中脏数据,根据接口配置相应数据表。
1.4设计修改测试计划的Python脚本
1)设计测试环境修改方法,使用Python正则或ElementTree匹配修改Jmeter测试计划jmx文件中接口的统一测试环境配置节点;
2)根据不同测试场景定义不同测试场景修改方法;
3)设计测试场景修改方法,使用Python正则或ElementTree匹配修改Jmeter测试计划jmx文件,根据传入测试场景参数值匹配相应修改方法,修改测试计划中并发用户数、测试持续时间等,以及将目标待测接口置于Enable状态,将不需要测试的接口置于Disable状态。
1.5设计完善HTML报告的Python脚本
1)分析Jmeter生成HTML测试报告构成方式及内容展示;
2)创建HTML监控数据展示基础模板;
3)设计Python脚本更新监控数据展示基础模板插入资源监控图,并修改已生成的HTML报告加入资源监控展示页面。
1.6创建Jmeter测试计划生成测试报告的执行脚本(本例中,执行脚本为:shell)
1)编写Jmeter非GUI模式测试命令行,并将测试计划和生成报告地址参数化;
2)编写命令行调用Jmeter的CMDrunner.jar包,将监控数据CPU.jtl等生成监控展示图。
1.7Jenkins参数化构建配置
Jenkins平台下选择构建一个自由风格的项目,选择参数化构建过程中的Extended Choice Parameter,根据已定义的测试场景和各个场景下需要修改的参数类型以及测试环境进行可视化页面配置。
1.8构建测试生成测试数据和修改测试计划
Jenkins工程配置中在项目构建中调用1.3和1.4中Python脚本,并向脚本传入构建配置的参数值,实现测试数据和测试计划的修改。
1.9生成测试结果和HTML报告
Jenkins工程配置中在项目构建中调用1.6中脚本,执行测试并生成HTML测试报告。
1.10完善HTML性能测试报告
Jenkins工程配置中在项目构建中调用1.5中脚本,更新HTML性能测试报告并邮件通知。

Claims (5)

1.基于Jmeter可持续集成自动化性能测试的方法,其特征在于,包括以下步骤:
步骤1、定义测试场景类型以及相关参数配置;
步骤2、设计Jmeter基础测试计划;
步骤3、设计Python脚本生成测试数据、修改测试计划和完善测试报告;
步骤4、通过Jenkins参数化构建创建可视化配置页面;
步骤5、输出测试报告。
2.根据权利要求1所述的基于Jmeter可持续集成自动化性能测试的方法,其特征在于,步骤4中,所述设计Python脚本生成测试数据包括如下步骤:
步骤401、根据各个接口对应数据规则,分别为每个接口设计相应规则的测试数据生成方法;
步骤402、设计脚本根据传入场景参数值匹配对应的数据生成方法;
步骤403、设计连接数据库脚本,检查并清理数据库中脏数据,然后根据接口配置相应数据表并在对应表中生成数据。
3.根据权利要求1所述的基于Jmeter可持续集成自动化性能测试的方法,其特征在于,步骤4中,所述设计Python脚本修改测试计划包括如下步骤:
步骤411、设计测试环境修改方法,使用Python正则或ElementTree匹配修改Jmeter测试计划jmx文件中接口的统一测试环境配置节点;
步骤412、根据不同测试场景定义不同测试场景修改方法;
步骤413、设计测试场景修改方法,使用Python正则或ElementTree匹配修改Jmeter测试计划jmx文件,根据传入测试场景参数值匹配相应修改方法,修改测试计划中并发用户数、测试持续时间等,以及将目标待测接口置于Enable状态,将不需要测试的接口置于Disable状态。
4.根据权利要求1所述的基于Jmeter可持续集成自动化性能测试的方法,其特征在于,步骤4中,所述设计Python脚本完善测试报告包括如下步骤:
步骤421、分析Jmeter生成HTML测试报告构成方式及内容展示原理;
步骤422、创建监控数据展示HTML基础模板页面;
步骤423、设计Python脚本更新监控数据展示基础模板插入资源监控图,并修改已生成的HTML报告加入资源监控展示页面。
5.根据权利要求1所述的基于Jmeter可持续集成自动化性能测试的方法,其特征在于,步骤5中具体为:在Jenkins上展示已完善后的HTML性能测试报告并邮件发送完整的测试报告。
CN201811367744.1A 2018-11-16 2018-11-16 基于Jmeter可持续集成自动化性能测试的方法 Pending CN109460367A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811367744.1A CN109460367A (zh) 2018-11-16 2018-11-16 基于Jmeter可持续集成自动化性能测试的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811367744.1A CN109460367A (zh) 2018-11-16 2018-11-16 基于Jmeter可持续集成自动化性能测试的方法

Publications (1)

Publication Number Publication Date
CN109460367A true CN109460367A (zh) 2019-03-12

Family

ID=65610791

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811367744.1A Pending CN109460367A (zh) 2018-11-16 2018-11-16 基于Jmeter可持续集成自动化性能测试的方法

Country Status (1)

Country Link
CN (1) CN109460367A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147328A (zh) * 2019-05-24 2019-08-20 深圳市网心科技有限公司 一种数据库性能测试方法、系统、电子设备和存储介质
CN110287118A (zh) * 2019-06-28 2019-09-27 四川长虹电器股份有限公司 测试用例的测试数据生成方法及软件测试方法
CN110597721A (zh) * 2019-09-11 2019-12-20 四川长虹电器股份有限公司 一种基于压力测试脚本的自动化接口压力测试的方法
CN111558953A (zh) * 2020-04-30 2020-08-21 广东博智林机器人有限公司 自动化测试平台、方法和存储介质
CN112650678A (zh) * 2020-12-24 2021-04-13 北京睿芯高通量科技有限公司 一种基于Jenkins的音视频加速卡产品自动化测试系统及方法
CN112835803A (zh) * 2021-02-23 2021-05-25 北京联创信安科技股份有限公司 工具生成方法、测试数据构造方法、装置、设备及介质
CN116028377A (zh) * 2023-03-28 2023-04-28 之江实验室 基于jenkins的自动化测试方法、装置和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100211825A1 (en) * 2007-04-16 2010-08-19 Uri Haham Data generator apparatus for testing data dependent applications, verifying schemas and sizing systems
CN102567203A (zh) * 2011-12-28 2012-07-11 创新科软件技术(深圳)有限公司 一种测试分布式文件系统性能的方法及系统
CN103713992A (zh) * 2012-09-29 2014-04-09 深圳市赛格导航科技股份有限公司 一种基于gps系统警情判断的自动化测试方法和系统
CN104615667A (zh) * 2015-01-13 2015-05-13 联动优势电子商务有限公司 一种基础数据生成方法、测试用数据生成方法及其装置
CN105045710A (zh) * 2015-06-30 2015-11-11 吉林大学 一种云计算环境下的自动化测试数据生成方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100211825A1 (en) * 2007-04-16 2010-08-19 Uri Haham Data generator apparatus for testing data dependent applications, verifying schemas and sizing systems
CN102567203A (zh) * 2011-12-28 2012-07-11 创新科软件技术(深圳)有限公司 一种测试分布式文件系统性能的方法及系统
CN103713992A (zh) * 2012-09-29 2014-04-09 深圳市赛格导航科技股份有限公司 一种基于gps系统警情判断的自动化测试方法和系统
CN104615667A (zh) * 2015-01-13 2015-05-13 联动优势电子商务有限公司 一种基础数据生成方法、测试用数据生成方法及其装置
CN105045710A (zh) * 2015-06-30 2015-11-11 吉林大学 一种云计算环境下的自动化测试数据生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
XGH1951: ""利用python脚本批量生成测试数据并插入数据库"", 《HTTPS://BLOG.CSDN.NET/XGH1951/ARTICLE/DETAILS/80519782》 *
伊人风采_690D: ""Jmeter+Ant+Jenkins接口自动化测试框架搭建"", 《WWW.51TESTING.COM/HTML/67/N-3723567.HTML》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147328A (zh) * 2019-05-24 2019-08-20 深圳市网心科技有限公司 一种数据库性能测试方法、系统、电子设备和存储介质
CN110287118A (zh) * 2019-06-28 2019-09-27 四川长虹电器股份有限公司 测试用例的测试数据生成方法及软件测试方法
CN110597721A (zh) * 2019-09-11 2019-12-20 四川长虹电器股份有限公司 一种基于压力测试脚本的自动化接口压力测试的方法
CN111558953A (zh) * 2020-04-30 2020-08-21 广东博智林机器人有限公司 自动化测试平台、方法和存储介质
CN112650678A (zh) * 2020-12-24 2021-04-13 北京睿芯高通量科技有限公司 一种基于Jenkins的音视频加速卡产品自动化测试系统及方法
CN112650678B (zh) * 2020-12-24 2024-04-19 北京中科通量科技有限公司 一种基于Jenkins的音视频加速卡产品自动化测试系统及方法
CN112835803A (zh) * 2021-02-23 2021-05-25 北京联创信安科技股份有限公司 工具生成方法、测试数据构造方法、装置、设备及介质
CN112835803B (zh) * 2021-02-23 2024-02-23 北京联创信安科技股份有限公司 工具生成方法、测试数据构造方法、装置、设备及介质
CN116028377A (zh) * 2023-03-28 2023-04-28 之江实验室 基于jenkins的自动化测试方法、装置和介质
CN116028377B (zh) * 2023-03-28 2023-08-11 之江实验室 基于jenkins的自动化测试方法、装置和介质

Similar Documents

Publication Publication Date Title
CN109460367A (zh) 基于Jmeter可持续集成自动化性能测试的方法
CN102214139B (zh) 一种面向分布式系统的自动化测试的执行控制与调度方法
CN105426298B (zh) 一种基于adb的软件测试方法和系统
Heinrich et al. Integrating run-time observations and design component models for cloud system analysis
CN104424093A (zh) 一种兼容性测试方法及系统
CN108829584A (zh) 业务逻辑接口mock测试方法及系统
DE102005013239A1 (de) Drahtlosmodulsimulator
CN104679500B (zh) 实体类自动生成实现方法及装置
CN107678942A (zh) 一种api自动化测试方法
CN103746879A (zh) 一种IPv6协议一致性的测试系统及其方法
CN112597014A (zh) 基于数据驱动的自动化测试方法、装置、介质及电子设备
CN113190443A (zh) 测试方法、装置、计算机设备和存储介质
RU2678717C9 (ru) Комплекс автоматизации и визуализации тестирования встроенного программного обеспечения электронных устройств
Lei et al. Performance and scalability testing strategy based on kubemark
CN104391789A (zh) 一种Web应用程序压力测试的方法
CN106294172A (zh) 基于终端设备的app自测方法和装置
CA3149711A1 (en) Method of and device for tracing logical node in automation testing, program and medium
WO2016188077A1 (zh) 拷机测试方法及装置
Yoon et al. DBSeer: Pain-free database administration through workload intelligence
CN110232018A (zh) 接口测试方法、装置、计算机设备
KR102173137B1 (ko) 모바일 애플리케이션의 원격 테스트 서비스 제공 방법
CN109656817A (zh) 一种自动化接口测试装置和设备
CN111580409B (zh) 面向实时嵌入式系统的故障仿真测试方法
CN105204892B (zh) war包配置修改系统及方法
TWI688875B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190312

RJ01 Rejection of invention patent application after publication