首页 > 其他分享 >软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台

时间:2023-12-24 18:35:49浏览次数:30  
标签:jmeter Jmeter InfluxDB grafana influxdb Grafana 模板 软件测试

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_数据

为什么要搭建性能监控平台?

1.1 需求背景

在用 Jmeter 获取性能测试结果的时候, Jmeter 本身带有聚合报告如下图所示:

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_JMeter_02

这个报告有几个很明显的缺点:

  • 只能自己看,无法实时共享;
  • 报告信息的展示比较简陋单一,不直观;

1.2 需求方案

为了解决上述问题,必须要请出了 InfluxDB + Grafana

  • InfluxDB :持续型数据库,有时间戳组件,以时间的形式去存储数据
  • Grafana :一款采用 Go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具

简单总结起来就是:Jmeter 的数据导入 InfluxDB ,再用 Grafana InfluxDB 中获取数据并以特定的模板进行展示

本次实践是用目前较为流行的 Docker 的方式进行部署,也推荐使用,作为一名普通的测试,会了点 Docker 的皮毛就已经爱不释手了,对于头疼的环境问题真的太好用了,强烈推荐。

性能监控平台部署实践

2.1 Docker环境

本文的重点并不是介绍 Docker,所以不了解的小伙伴需要自己去学习一下基本的安装和操作,可参考之前发送的 Docker 文章

2.2 InfluxDB部署

1)首先去下载InfluxDB的镜像,下载很简单,直接pull就好,默认为下载最新的镜像:

$ docker pull influxdb

目前最新的influxdb不支持网页端的查看,仅可用命令行的形式,不过没有什么影响,如果真的想要有网页端的显示的话可以尝试下载较前的镜像:tutum/influxdb

2)启动一个容器,并将端口 80838086 映射出来,如果用的是 tutum/influxdb 镜像,在访问8083端口时就可以看到网页端的展示,我这里用的是最新的,所以就没有啦:

$ docker run -d --name jmeter-influx -p 8083:8083 -p 8086:8086 influxdb

3)进入容器内部,创建名为jmeter的数据库:

进入 jmeter-influx 容器

$ docker exec -it jmeter-influx bash
root@517f57017d99:/#

进入 influxcreate database jmeter 创建名为 jmeter 的数据库, show databases 命令查看数据库创建成功

root@517f57017d99:/# influx
Connected to http://localhost:8086 version 1.7.10
InfluxDB shell version: 1.7.10
> create database jmeter
> show databases
name: databases
name
----
_internal
jmeter

4)使用 J meter 库, select 查看数据,这个时候应该是没有数据的:

$ > use jmeter
Using database jmeter
> select * from jmeter
>

2.3 Jmeter脚本设置

这里需要创建一个登录注册场景的 Jmeter 脚本,往期文章有发布,本次就以此来进行测试结果演示。具体可参考之前发送的公众号文章。文章末尾的「往期回顾」第二篇文章即可阅读。

1)想要将 jmeter 的测试数据导入 influxDB ,就需要在 Jmeter 中使用 Backend Listener 配置

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_Docker_03

先看一下配置好的 Backend Listener

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_数据_04

2)主要配置说明: implementation 选择 influxdb 所对应的:

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_数据_05

influxdbUrl:需要改为自己 influxdb 的部署 ip 和映射端口,我这里是部署在本地,所以就是 localhost ,端口是容器启动时映射的 8086 端口, db 后面跟的是刚才创建的数据库名称

  • application:可根据需要自由定义,只是注意后面在 grafana 中选对即可
  • measurement:表名,默认是 jmeter ,也可以自定义

summaryOnly:选择 true 的话就只有总体的数据, false 会将每个 transaction 都分别记录

3)运行验证

运行 Jmeter 脚本,然后再次在 influxdb 中查看数据,发现类似下面的数据说明输入导入成功:

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_JMeter_06

2.4、Grafana部署

1)首先我们需要下载grafana的镜像:

$ docker pull grafana/grafana

2)启动一个grafana容器,将3000端口映射出来:

$ docker run -d --name grafana -p 3000:3000 grafana/grafana

3)网页端访问locahost:3000验证部署成功

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_Docker_07

4)选择添加数据源

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_Docker_08

5)找到并选择 influxdb :

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_JMeter_09

6)配置数据源

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_性能优化_10

数据源创建成功时会有绿色的提示:

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_性能优化_11

7)导入模板

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_性能优化_12

模板导入分别有以下3种方式:

  • 直接输入模板id号
  • 直接上传模板json文件
  • 直接输入模板json内容

8)下载模板,在grafana的官网下载我们需要的展示模板

grafana.com/grafana/das…

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_性能优化_13

下面这两个是我尝试过的模板:

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_性能优化_14

9)导入模板,我这里选择的是导入json文件的方式,导入后如下,配置好模板名称和对应的数据源,然后 import 即可

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_性能优化_15

10)展示设置,首先选择我们创建的application

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_Docker_16

注意: 如果我们修改过表名,也就是在jmeter的Backend Listener的measurement配置(默认为jmeter),这个时候就需要去设置中进行修改(我这里使用的就是默认的,所以无需修改):

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_Docker_17

效果展示及推荐学习

经过一系列的奋斗之后,该到了我们检验成果的时候了。使用 Docker + JMeter + InfluxDB + Grafana 到底可以搭建怎样的性能监控平台呢?相比较 JMeter 自带的监控平台,我们搭建的性能监控平台究竟有什么优势呢?接下来就是展示成果的时候啦!

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_JMeter_18

软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台_docker_19

Appium 官方说明文档: appium.io/docs/en/wri… appium.io/docs/en/com…

Uiautomator2 源码路径:

github.com/appium/appi…


标签:jmeter,Jmeter,InfluxDB,grafana,influxdb,Grafana,模板,软件测试
From: https://blog.51cto.com/u_15649298/8956385

相关文章

  • 软件测试/测试开发|Linux sed命令详解
    sed命令介绍sed是streameditor(流编辑器)的简写,sed可依照脚本的指令来处理、编辑文本文件。Sed主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。sed命令语法基本语法:sed[选项]'动作'文件名常用参数-n,--quiet,--silent取消自动打印模式空间-e......
  • 软件测试/测试开发|npm常见报错解析
    简介使用npm(NodePackageManager)进行包管理时,常常会遇到各种报错信息。这些报错可能源自于网络问题、包依赖、配置错误或系统环境等多种因素。解决这些问题需要一定的经验和技巧。在这篇文章中,我们会介绍一些常见的npm报错及其解决方法。npmERR!codeECONNRESET这个错误通常......
  • 软件测试|新一届<火焰杯>测试开发职业竞赛开始报名啦
    <火焰杯>测试开发职业竞赛开始报名啦,以赛促学。在技术学习中融入更多的趣味性,让大家不仅能体会到学习的快乐,还能技术变现。此次竞赛由<火焰杯>测试开发职业竞赛组委会主办,PerfDog与测吧(北京)科技有限公司协办,与往年相比,今年的竞赛进行了全面升级,特别设立了测试创新奖,涵盖人工智能......
  • Windows电脑多开器在软件测试中的优势
    Windows电脑多开器在软件测试中的优势文章在现代软件开发领域,软件测试是确保产品质量和稳定性的重要环节。而在软件测试过程中,Windows电脑多开器(也称为虚拟机或模拟器)发挥着重要作用。本文将探讨Windows电脑多开器在软件测试中的优势,以及它们如何提高测试效率和降低成本。环境......
  • jmeter +prometheus+grafana做性能测试监控
    1,环境搭建--->mac系统打开终端terminal,复制并粘贴以下命令:/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install.sh)然后按回车brew-version查看版本 2,安装prometheus方法一:brewinstallprometheus 安装完毕后,通过pwd查看......
  • 软件测试/测试开发|如何解决pip下载速度慢的问题
    前言我们在使用pip安装Python第三方库时,默认是使用pip的官方镜像源https://pypi.org/下载的,但是有时候,我们下载的库比较大时,就会出现下载比较缓慢的问题,速度有时只有几十KB/s,非常耽误我们的时间,影响我们的工作效率,本文就来介绍一下如何解决这个问题。问题原因因为我们下载默认是从......
  • 软件测试/测试开发|如何使用场景法设计测试用例?
    简介我们之前介绍过了等价类和边界值来设计我们的测试用例,等价类和边界值是我们最常用的测试用例设计方法之一,本文我们将向大家介绍场景法。场景法定义场景法是一种通过用户使用“场景”对软件系统的功能点或业务流程进行描述,即针对需求模拟出不同的场景进行所有功能点及业务流程的......
  • 软件测试/测试开发|如何使用因果图法设计测试用例?
    前言我们之前介绍了等价类边界值场景法来设计测试用例,本篇文章我们来介绍一下使用因果图来设计测试用例。因果图法因果图(Cuase-effectGraph)是一种描述输入条件的组合以及每种组合对应的输出的图形化工具。为什么使用因果图法?我们之前介绍的等价类和边界值都是着重考虑输入条件,如果......
  • prometheus告警记录——grafana模板
    grafana面板{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"datasource","uid":"grafana"},......
  • 软件测试/测试开发|Ubuntu系统入门教程
    前言上文我们介绍了Ubuntu系统的安装,还没有介绍Ubuntu系统的使用,对于习惯了使用Windows系统的我们来说,Ubuntu和Windows还是有着比较大的区别的,本文就来介绍一下Ubuntu系统的入门使用。Windows和Linux文件系统区别我们都知道,Windows操作系统的文件管理是分盘的,我们有C盘,D盘......