【CN109753438A】基于jmeter的性能测试平台及方法【专利】
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(74)专利代理机构 上海市汇业律师事务所 31325
代理人 王函
(51)Int .Cl . G06F 11/36(2006 .01)
(10)申请公布号 CN 109753438 A (43)申请公布日 2019.05.14
( 54 )发明 名称 基于jmeter的性能测试平台及方法
( 57 )摘要 本发明公开了一种基于jmeter的性能测试
平台及其实现方法,该系统包括:平台前端,控制 模块,监控模块,调度模块和jmeter发压模块;所 述平台前端连接控制模块、用于对控制模块发送 请求;所述控制模块分别连接监控模块和调度模 块,用于根据请求调用监控模块和调度模块协同 工作、并自 动生成报告 ;所述监控模块连接被 测 应用服务器,用于收集并处理被测服务器资源信 息 并 存 储 至 R E D I S ;所 述 调 度 模 块 用于 启动 jmeter进程,通过jmeter发压模块对被测应用服 务器进行发压;前端通过请求控制模块从redis 中获取监控结果并通过前端echart插件做图展 示。本发明大幅 减轻了 测试人 员工作量 ,提高 测 试效率。
2
CN 109753438 A
说 明 书
1/3 页
基于jmeter的性能测试平台及方法
[0001]
技术领域 [0002] 本发明属于软件技术领域,具体来说涉及一种基于python语言的软件性能实现方 法,以及基于jmeter的性能测试平台。
[0003]
背景技术 [0004] 现有的对软件的性能测试领域,其开源压测工具jmeter具有操作简单易上手,扩 展性强的 优点 ,但也存在需 要多次 重写脚本 、脚本维 护工作量大 ,性能 测试效率较 低的问 题。申请号为201810350848 .5的发明申请,公开了一种基于Jmeter的自动化性能测试方法 及系统,通过将测试结果拷贝到安装了jmeter GUI的电脑中,无需多次重写脚本,提高了工 作效率 。而申请号为201710253469 .X的发明申请中,通过设置测试平台中间件,实现了一 套多任务多用户的系统,从而减少了脚本的维护工作。但是,上述技术方案尚无法在同一个 脚本中 对不同 梯度压 力情况下的 结果进行分析的问 题 ;其服务监控功能 只能 通过插件实 现、GUI模式下对执行机资源消耗较高而非GUI模式下生成的监控结果无法实时查看。此外, jmeter自带 测试报告内容过于简单无法满足 作为正式 测试报告使 用。因此 ,如何开发出一 种新型的软件性能压测系统,以克服上述问题,是本领域技术人员需要研究的方向。
[0005]
发明内容 [0006] 本发明提供了一种基于jmeter的性能测试方法,其采用的技术方案如下:
一种基于jmeter的性能测试方法,其包括如下步骤: S1:打开jmeter编写测试脚本、设置线程数、持续时间、并配置backendlistener; S2:将S1所得测试脚本保存至服务器本地文件夹并将脚本信息存入mysql数据库; S3:配置监控信息和场景信息并通过HTTP请求将信息提交至控制模块并存入mysql数 据库; S4 :启动测试场景、将启动命令传递给控制模块 ,控制模块在收到该 启动命令后从 mysql数据库读取脚本信息; S5:根据步骤S4读取的脚本信息启动jmeter进程,通过backendlistener将服务监控结 果存入InfluxDB。 [0007] 优选的是,上述基于jmeter的性能测试方法中,还包括步骤S6: 根据步骤S5读取的 服务监控信息生成监控任务并放入celery队 列中 ,监控任务通过 ssh连接从被测应用服务器获取服务器资源使用情况,通过sql查询从InfluxDB获取服务最 新监控结果,并处理成Echart可读数据格式存入redis,并在监控结果超出场景配置监控阈 值时生成报警信息发送至钉钉。 [0008] 更优选的是,上述基于jmeter的性能测试方法中,还包括步骤S7:通过定时任务从
( 19 )中华人民 共和国国家知识产权局
( 12 )发明专利申请
(21)申请号 201910031028 .4
(22)申请日 2019 .01 .14
(71)申请人 上海挚极信息科技有限公司 地址 201805 上海市嘉定区安亭镇墨玉南 路888号2201J19室
(72)发明人 施强 涂洪志 王文革
权利要求书1页 说明书3页 附图2页
CN 109753438 A
CN 109753438 A
权 利 要 求 书
1/1 页
1 .一种基于jmeter的性能测试方法,其特征在于包括如下步骤: S1:打开jmeter编写测试脚本、设置线程数、持续时间、并配置backendlistener; S2:将S1所得测试脚本保存至服务器本地文件夹并将脚本信息存入mysql数据库; S3 :配置监控信息 和场景 信息并通过HTTP请求将信息提交至控 制模块并 存入mysql数 据库; S4 :启动测试场景、将 启动命令传递给控制模块 ,控制模块在收到该 启动命令后从 mysql数据库读取脚本信息; S5:根据步骤S4读取的脚本信息启动jmeter进程,通过backendlistener将服务监控结 果存入InfluxDB。 2 .如权利要求1所述基于jmeter的性能测试方法,其特征在于,还包括步骤S6:根据步 骤S5读取的服务监控信息生成监控任务并放入celery队 列中 ,监控任务通过ssh连接从被 测应用服务器获取服务器资源使用情况,通过sql查询从InfluxDB获取服务最新监控结果, 并处理成Echart可读数据格式存入redis ,并 在监控结果超出场景配置监控阈值时生成报 警信息发送至钉钉。 3 .如权利要求1所述基于jmeter的性能测试方法,其特征在于,还包括步骤S7:通过定 时任务从redis获取处理后监控结果并通过EChart插件实时生成监控结果展示图。 4 .如权利要求1所述基于jmeter的性能测试方法,其特征在于,还包括步骤S8:按照梯 度压力配置情况分段分析测试结果生成聚合报告并将测试结果存入mysql数据库。 5 .如权利要求1所述基于jmeter的性能测试方法,其特征在于,还包括步骤S9:自动生 成word版报告并通过邮件发送至项目相关人员。 6 .一种基于jmeter的性能测试平台,其特征在于包括:平台前端(1),控制模块(2),监 控模块(3),调度模块(4)和发压模块(5); 所述平台前端(1)连接控 制模块(2)、用于对控 制模块(2)发送请求 ;所述控 制模块(2) 分别连接监控模块(3)和调度模块(4),用于根据请求调用监控模块(3)和调度模块(4)协同 工作、并自动生成报告;所述监控百度文库块(3)连接应用服务器、用于存储应用服务器的资源信 息并存储至REDIS;所述调度模块(4)连接发压模块(5)、用于启动jmeter进程,对应用服务 器进行发压。
代理人 王函
(51)Int .Cl . G06F 11/36(2006 .01)
(10)申请公布号 CN 109753438 A (43)申请公布日 2019.05.14
( 54 )发明 名称 基于jmeter的性能测试平台及方法
( 57 )摘要 本发明公开了一种基于jmeter的性能测试
平台及其实现方法,该系统包括:平台前端,控制 模块,监控模块,调度模块和jmeter发压模块;所 述平台前端连接控制模块、用于对控制模块发送 请求;所述控制模块分别连接监控模块和调度模 块,用于根据请求调用监控模块和调度模块协同 工作、并自 动生成报告 ;所述监控模块连接被 测 应用服务器,用于收集并处理被测服务器资源信 息 并 存 储 至 R E D I S ;所 述 调 度 模 块 用于 启动 jmeter进程,通过jmeter发压模块对被测应用服 务器进行发压;前端通过请求控制模块从redis 中获取监控结果并通过前端echart插件做图展 示。本发明大幅 减轻了 测试人 员工作量 ,提高 测 试效率。
2
CN 109753438 A
说 明 书
1/3 页
基于jmeter的性能测试平台及方法
[0001]
技术领域 [0002] 本发明属于软件技术领域,具体来说涉及一种基于python语言的软件性能实现方 法,以及基于jmeter的性能测试平台。
[0003]
背景技术 [0004] 现有的对软件的性能测试领域,其开源压测工具jmeter具有操作简单易上手,扩 展性强的 优点 ,但也存在需 要多次 重写脚本 、脚本维 护工作量大 ,性能 测试效率较 低的问 题。申请号为201810350848 .5的发明申请,公开了一种基于Jmeter的自动化性能测试方法 及系统,通过将测试结果拷贝到安装了jmeter GUI的电脑中,无需多次重写脚本,提高了工 作效率 。而申请号为201710253469 .X的发明申请中,通过设置测试平台中间件,实现了一 套多任务多用户的系统,从而减少了脚本的维护工作。但是,上述技术方案尚无法在同一个 脚本中 对不同 梯度压 力情况下的 结果进行分析的问 题 ;其服务监控功能 只能 通过插件实 现、GUI模式下对执行机资源消耗较高而非GUI模式下生成的监控结果无法实时查看。此外, jmeter自带 测试报告内容过于简单无法满足 作为正式 测试报告使 用。因此 ,如何开发出一 种新型的软件性能压测系统,以克服上述问题,是本领域技术人员需要研究的方向。
[0005]
发明内容 [0006] 本发明提供了一种基于jmeter的性能测试方法,其采用的技术方案如下:
一种基于jmeter的性能测试方法,其包括如下步骤: S1:打开jmeter编写测试脚本、设置线程数、持续时间、并配置backendlistener; S2:将S1所得测试脚本保存至服务器本地文件夹并将脚本信息存入mysql数据库; S3:配置监控信息和场景信息并通过HTTP请求将信息提交至控制模块并存入mysql数 据库; S4 :启动测试场景、将启动命令传递给控制模块 ,控制模块在收到该 启动命令后从 mysql数据库读取脚本信息; S5:根据步骤S4读取的脚本信息启动jmeter进程,通过backendlistener将服务监控结 果存入InfluxDB。 [0007] 优选的是,上述基于jmeter的性能测试方法中,还包括步骤S6: 根据步骤S5读取的 服务监控信息生成监控任务并放入celery队 列中 ,监控任务通过 ssh连接从被测应用服务器获取服务器资源使用情况,通过sql查询从InfluxDB获取服务最 新监控结果,并处理成Echart可读数据格式存入redis,并在监控结果超出场景配置监控阈 值时生成报警信息发送至钉钉。 [0008] 更优选的是,上述基于jmeter的性能测试方法中,还包括步骤S7:通过定时任务从
( 19 )中华人民 共和国国家知识产权局
( 12 )发明专利申请
(21)申请号 201910031028 .4
(22)申请日 2019 .01 .14
(71)申请人 上海挚极信息科技有限公司 地址 201805 上海市嘉定区安亭镇墨玉南 路888号2201J19室
(72)发明人 施强 涂洪志 王文革
权利要求书1页 说明书3页 附图2页
CN 109753438 A
CN 109753438 A
权 利 要 求 书
1/1 页
1 .一种基于jmeter的性能测试方法,其特征在于包括如下步骤: S1:打开jmeter编写测试脚本、设置线程数、持续时间、并配置backendlistener; S2:将S1所得测试脚本保存至服务器本地文件夹并将脚本信息存入mysql数据库; S3 :配置监控信息 和场景 信息并通过HTTP请求将信息提交至控 制模块并 存入mysql数 据库; S4 :启动测试场景、将 启动命令传递给控制模块 ,控制模块在收到该 启动命令后从 mysql数据库读取脚本信息; S5:根据步骤S4读取的脚本信息启动jmeter进程,通过backendlistener将服务监控结 果存入InfluxDB。 2 .如权利要求1所述基于jmeter的性能测试方法,其特征在于,还包括步骤S6:根据步 骤S5读取的服务监控信息生成监控任务并放入celery队 列中 ,监控任务通过ssh连接从被 测应用服务器获取服务器资源使用情况,通过sql查询从InfluxDB获取服务最新监控结果, 并处理成Echart可读数据格式存入redis ,并 在监控结果超出场景配置监控阈值时生成报 警信息发送至钉钉。 3 .如权利要求1所述基于jmeter的性能测试方法,其特征在于,还包括步骤S7:通过定 时任务从redis获取处理后监控结果并通过EChart插件实时生成监控结果展示图。 4 .如权利要求1所述基于jmeter的性能测试方法,其特征在于,还包括步骤S8:按照梯 度压力配置情况分段分析测试结果生成聚合报告并将测试结果存入mysql数据库。 5 .如权利要求1所述基于jmeter的性能测试方法,其特征在于,还包括步骤S9:自动生 成word版报告并通过邮件发送至项目相关人员。 6 .一种基于jmeter的性能测试平台,其特征在于包括:平台前端(1),控制模块(2),监 控模块(3),调度模块(4)和发压模块(5); 所述平台前端(1)连接控 制模块(2)、用于对控 制模块(2)发送请求 ;所述控 制模块(2) 分别连接监控模块(3)和调度模块(4),用于根据请求调用监控模块(3)和调度模块(4)协同 工作、并自动生成报告;所述监控百度文库块(3)连接应用服务器、用于存储应用服务器的资源信 息并存储至REDIS;所述调度模块(4)连接发压模块(5)、用于启动jmeter进程,对应用服务 器进行发压。