首页 > 其他分享 >性能测试|搭建性能监控平台

性能测试|搭建性能监控平台

时间:2023-01-12 17:36:21浏览次数:55  
标签:Jmeter 性能 influxdb grafana InfluxDB 监控 jmeter 模板 搭建

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

1.1 需求背景

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

性能测试|搭建性能监控平台_docker

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

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

1.2 需求方案

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

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

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

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

2、性能监控平台部署实践

2.1 Docker环境

本文的重点并不是介绍 Docker,所以不了解的小伙伴需要自己去学习一下基本的安装和操作。
2.2 InfluxDB部署

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

$ docker pull influxdb

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

2)启动一个容器,并将端口 ​​8083​​ 和 ​​8086​​ 映射出来,如果用的是 ​​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:/#

进入 ​​influx​​ , ​​create 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​​ 配置

性能测试|搭建性能监控平台_数据_02

先看一下配置好的 ​​Backend Listener​​ :

性能测试|搭建性能监控平台_Docker_03

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

性能测试|搭建性能监控平台_数据_04

influxdbUrl:需要改为自己 ​​influxdb​​ 的部署 ​​ip​​ 和映射端口,我这里是部署在本地,所以就是 ​​localhost​​ ,端口是容器启动时映射的 ​​8086​​ 端口, ​​db​​ 后面跟的是刚才创建的数据库名称
  • application:可根据需要自由定义,只是注意后面在 grafana 中选对即可
  • measurement:表名,默认是 jmeter ,也可以自定义
summaryOnly:选择 ​​true​​ 的话就只有总体的数据, ​​false​​ 会将每个 ​​transaction​​ 都分别记录

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

性能测试|搭建性能监控平台_Docker_05

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

性能测试|搭建性能监控平台_数据_06

4)选择添加数据源

性能测试|搭建性能监控平台_数据_07

5)找到并选择 ​​influxdb​​ :

性能测试|搭建性能监控平台_docker_08

6)配置数据源

性能测试|搭建性能监控平台_Docker_09

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

性能测试|搭建性能监控平台_Docker_10

7)导入模板

性能测试|搭建性能监控平台_数据_11

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

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

性能测试|搭建性能监控平台_Docker_12

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

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

性能测试|搭建性能监控平台_Docker_13

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

性能测试|搭建性能监控平台_Docker_14

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

性能测试|搭建性能监控平台_Docker_15

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

性能测试|搭建性能监控平台_Docker_16

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

性能测试|搭建性能监控平台_数据_17

3. 效果展示及推荐学习

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

性能测试|搭建性能监控平台_Docker_18

性能测试|搭建性能监控平台_Docker_19

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,模板,搭建
From: https://blog.51cto.com/u_15640304/6004528

相关文章

  • 性能测试|Jmeter压测脚本录制与编写
    **前提条件:**运行JMeter图形界面,找到安装目录下bin目录,找到ApacheJMeter.jar双击打开就行第一步:添加线程组在左侧栏中-测试计划右键---》添加》Threads(Users)-》线程组......
  • Panorama系列--(1)EVE-NG搭建Panorama测试环境
    Panorama系列--(1)EVE-NG搭建Panorama测试环境B站视频链接:​​https://www.bilibili.com/video/BV1r8411P7Dg​​微信公众号:自刘地这里介绍一下如何利用EVE-NG搭建Panorama......
  • linux搭建web服务
    ​​​​1、检查环境getenforce                         #查看seLinux运行状态Enforcing                         ......
  • 性能测试|JMeter压测结果分析
    查看结果树对​​https://ceshiren.com/t/topic/1369.json​​发起请求1、增加线程组、HTTPRequest、添加结果树,配置协议、域名、请求地址,如下图所示:请求结果如下图所示:......
  • Centos 7 搭建DNS服务器
    1.DNS原理看这篇文章https://www.cnblogs.com/kubixuesheng/p/6260195.html2.服务器准备192.168.1.100 DNS服务器192.168.1.101 DNS客户端192.168.1.102 DNS客......
  • 开发流程环境搭建
    1测试环境 就本地访问线上域名--》通过frp转发到本地服务端[common]bind_port=7000vhost_http_port=8080#暴露对外端口(这个是)token=957481541#(自己定......
  • MegCC 新版本来啦!新增 Benchmark 等工具,性能大幅提升!有奖征文活动同步启动
    最新版MegCC新鲜出炉,新工具,新体验,本次版本针对用户使用体验以及模型推理性能进行全面提升,主要的提升包括:新增Benchmark工具,用于用于快速Benchmark常用模型的推理......
  • 搭建RTMP server
    installnginxwgethttps://nginx.org/download/nginx-1.20.1.tar.gztar-zxvfnginx-1.20.1.tar.gzwgethttps://github.com/arut/nginx-rtmp-module/archive/refs/ta......
  • 直播平台搭建,uni-app 实现搜索关键词高亮效果
    直播平台搭建,uni-app实现搜索关键词高亮效果1.封装搜索关键词方法  //搜索关键词exportfunctionsearchKeyword(keyword,city){ returnnewPromise((resove......
  • 一款ARPG游戏是如何搭建云真机系统的
    随着业内对“工业化”认知的不断提升,越来越多的UWA用户通过UWAPipeline的各项功能,为项目研发提供了极大的助力。其中的自动化测试与GOTOnline性能测评的结合,帮助项目组在......