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

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

时间:2023-12-14 11:48:48浏览次数:26  
标签:Jmeter influxdb Grafana InfluxDB jmeter grafana 模板 软件测试

image

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

1.1 需求背景

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

image

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

  • 只能自己看,无法实时共享;

  • 报告信息的展示比较简陋单一,不直观;

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 配置

image

先看一下配置好的 Backend Listener

image

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

image

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

  • application:可根据需要自由定义,只是注意后面在 grafana 中选对即可

  • measurement:表名,默认是 jmeter ,也可以自定义

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

3)运行验证

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

image

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验证部署成功

image

4)选择添加数据源

image

5)找到并选择 influxdb :

image

6)配置数据源

image

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

image

7)导入模板

image

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

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

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

https://grafana.com/grafana/dashboards?dataSource=influxdb&search=jmeter

image

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

image

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

image

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

image

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

image

效果展示及推荐学习

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

image

image

Appium 官方说明文档:
http://appium.io/docs/en/writing-running-appium/finding-elements/
http://appium.io/docs/en/commands/element/find-elements/

Uiautomator2 源码路径:

https://github.com/appium/appium-uiautomator2-server/blob/master/app/src/main/java/io/appium/uiautomator2/handler/FindElement.java

标签:Jmeter,influxdb,Grafana,InfluxDB,jmeter,grafana,模板,软件测试
From: https://www.cnblogs.com/hogwarts/p/17900855.html

相关文章

  • 软件测试/人工智能|Java Edit Plus 安装与配置指南
    前言最近我这个一直使用Python的人,开始尝试学习了一下Java,我的朋友跟我说,别像Python那样,开始就使用一个功能强大的IDE,Java语法更为复杂,可以先使用一个轻量化的编辑器,我开始准备使用notepad++,我朋友跟我推荐了EditPlus,我使用之后,就真香了,本文就给大家介绍一下EditPlus的安装和配......
  • 软件测试/人工智能|教你掌握 Conda 的基本用法
    前言作为一名技术爱好者或者开发人员,我们可能经常需要管理不同版本的软件包或创建独立的开发环境。Conda是一个强大的工具,能够帮助我们轻松完成这些任务。接下来,我们将介绍Conda的基本概念和常用操作,帮助大家快速上手。什么是Conda?Conda是一个开源的软件包管理系统和环境管理......
  • [INFLUXDB] 查询数据时,INFLUXDB报“InfluxDBException: user is locked”
    1问题描述通过QueryAPI查询INFLUXDB数据库数据时,查询失败,日志中报INFLUXDB数据库错误:...org.influxdb.InfluxDBException:userislocked atorg.influxdb.InfluxDBException.buildExceptionFromErrorMessage(InfluxDBException.java:161)~[influxdb-java-2.22.jar!/:?]......
  • 搭建grafana,接入prometheus展示数据
    搭建grafana,接入prometheus展示数据一、搭建grafana1、下载grafana二进制包wgethttps://dl.grafana.com/enterprise/release/grafana-enterprise-10.2.0.linux-amd64.tar.gz 2、解压到/opt目录,配置软连接tarzxfgrafana-enterprise-10.2.0.linux-amd64.tar.gz......
  • 软件测试——09
    软件维护定义:软件经过测试,交付给用户后,在使用和运行阶段中可能在运行/维护阶段对软件产品进行的修改就是维护。软件可维护性:纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充和压缩的容易程度。衡量因素:可理解性、可测试性、可修改性。占整个软件生命周期的60%-80%。......
  • 软件测试探秘:从各类软件测试入门,领略测试的奥秘
    前言在软件开发的世界中,软件测试是不可或缺的一部分。它是确保软件质量、功能完整性和用户满意度的关键环节。本文小编将为大家介绍各类软件测试的奥秘,并提供入门级的指导和见解。本文内容概要:软件测试是什么?黑盒测试vs白盒测试自动化测试vs手工测试功能测试方法论非功能测试方法论......
  • 软件测试报告是什么?
    我最近看到有很多朋友问软件测试报告到底是干嘛的,是什么,今天给大家拆一下,其实很简单,测试报告是一份描述软件的测试过程、测试环境、测试范围、测试结果的文档,用来分析总结系统存在的风险以及测试结论。具体来说就是:(1)测试过程测试过程需要对测试人员、测试时间、测试地点、测试版本......
  • 软件测试/人工智能|Python数据可视化神器pyecharts教程(一)
    前言在很多时候,枯燥的数字并不能很直观的展示地域的差别,比如一个企业,想要分析产品在国内的销售情况,报表可能并不能最直接的展示差异,而一个结合地图的展示,就会直观得多,更便于大家去看到差距,更利于决策。当然,除了做商业决策,将数据与地图结合,也更便于我们展示诸如人口密度,经济总量等数......
  • 软件测试/人工智能|Java Edit Plus 安装与配置指南
    前言最近我这个一直使用Python的人,开始尝试学习了一下Java,我的朋友跟我说,别像Python那样,开始就使用一个功能强大的IDE,Java语法更为复杂,可以先使用一个轻量化的编辑器,我开始准备使用notepad++,我朋友跟我推荐了EditPlus,我使用之后,就真香了,本文就给大家介绍一下EditPlus的安装和配置。......
  • 软件测试/人工智能|Python数据可视化神器pyecharts教程(二)
    前言上一篇文章,我们介绍了如何使用pyecharts展示带地图的数据分析结果,并且实际绘制了省份图和全国城市图,用于展示数据。本文我们继续来使用pyecharts绘制以地图为基础的图像。绘制分段图但是我们在绘制全国的图形时,没有考虑考虑到将不同级别的数据进行分层,比如每一段的颜色不一......