美文网首页
记一次性能测试过程

记一次性能测试过程

作者: 取名好费劲 | 来源:发表于2021-03-18 16:56 被阅读0次

由于公司项目做了巨大改动,需要重新测试性能,下面记录本次测试的过程:

1.准备环境

测试需要公司开阿里云机器测试花钱的,所以先在本地把数据准备好

  1. 测试数据
    • 生成账户数据,使用jar包生成
    • 再使用jar 生成payment 和insert 的签名数据
  2. jmeter工具
    打包Jmeter 镜像,先在本地创建一个目录jmeter_docker ,里面放jmeter文件夹,如下图:


    jmeter_docker.png

    创建一个Dockerfile文件,Dockerfile脚本如下:

FROM java:8
# 基础java版本
MAINTAINER cctester
# 作者
ENV http_proxy ""
ENV https_proxy ""
RUN mkdir /test && \
  chmod -R 777 /test
# 创建/test目录,用于存放jmx脚本、jtl结果文件、html测试报告文件
ENV JMETER_VERSION=5.2.1
ENV JMETER_HOME=/usr/local/apache-jmeter-${JMETER_VERSION}
ENV JMETER_PATH=${JMETER_HOME}/bin:${PATH}
ENV PATH=${JMETER_HOME}/bin:${PATH}
# 设置JMeter环境变量
ADD apache-jmeter-${JMETER_VERSION}.tgz /usr/local
# 添加JMeter
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
  echo "Asia/Shanghai" > /etc/timezone

再制作Jmeter镜像

执行命令  docker build -t jmeter .    
注意不要忽略最后点

打完查看镜像,执行 docker images 

再将JMeter 镜像保存本地
docker save -o  jmeter.tar  jmeter:latest

把 Jmeter.tar 复制到压测机器上,执行导入镜像
docker load  -i jmeter.tar 即可

  1. 监控工具

本次性能测试采用node_exporter+promethus+granfan监控节点机器
使用jmeter+influxdb+granfan显示jmeter数据,都采用docker-compose方式来安装

docker_compose文件如下:

version: '2'
  
services:
    prometheus:
        image: prom/prometheus
        container_name: prometheus
        hostname: prometheus
        restart: always
        volumes:
            - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
            # - ./node_down.yml:/etc/prometheus/node_down.yml
        ports:
            - "9090:9090"
        networks:
            - kong_net
   grafana:
        image: grafana/grafana
        container_name: grafana
        hostname: grafana
        restart: always
        ports:
            - "3000:3000"
        networks:
            - kong_net
  influxdb:
        image: influxdb:1.8.4-alpine
        container_name: influxdb
        ports:
            - "8083:8083"
            - "8086:8086"
            - "8090:8090"

 networks:
    kong_net:

2.测试过程

  1. 先安装测试机上的Docker环境
进入机器上,先执行如下命令:

apt-get update
apt-get upgrade
apt install docker.io
安装docker后,执行docker -v可查看版本号

再安装docker-compose 一般执行
https://get.daocloud.io  
这个网址里面的命令就可以,但是测试的机器报443 不得已解决,直接将docker-compose 拷贝到节点机器的/usr/local/bin 目录下 

进入docker_compose 目录下,执行 docker_compose up -d 命令启动promethus+grafana+influxdb容器

  • 由于jmeter需要将数据写入influxdb中,需要先创建好数据库,如下步骤:
    进入influxdb 容器中,创建数据库myDB 以便于jmeter写入数据
influxdb容器.png
  • 再需要先下载一个jmeter influxdb的插件,放到jmeter目录下的lib/ext目录下


    influxdb lib.png
  • jmeter 需要添加一个后置监听器


    image.png
  • 节点所在机器上需要启动node_exporter容器,监控节点资源,docker_compose文件内容如下:
version: '2'
  
services:
    node-exporter:
        image: prom/node-exporter
        container_name: node-exporter
        hostname: node-exporter
        restart: always
        ports:
            - "9100:9100"
    mysql:
        image: mysql:5.7
        container_name: mysql
        environment:
            MYSQL_ROOT_PASSWORD: "root"
            MYSQL_USER: 'test'
            MYSQL_PASS: 'root'
        restart: always
        volumes:
            - "./db:/var/lib/mysql"
            - "./conf/my.cnf:/etc/my.cnf"
            - "./init:/docker-entrypoint-initdb.d/"
        ports:
            - "3306:3306"
       

配置promethus.yaml 文件

global:
  scrape_interval: 15s  
scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['8.130.12.208:9100']
      - targets: ['8.130.8.46:9100'] 
     

grafana 容器启动起来后,使用浏览器打开 http://127.0.0.1:3000 会显示grafana界面,默认用户名和密码是admin/admin 。

进入grafana 界面后,先配置promethus数据源


image.png

再配置influxdb的数据源


image.png

infulxdb 需要配置事先创建好的数据库


image.png

再添加显示的模块,进入https://grafana.com/grafana/dashboards 查找需要的模板
有2种方式可以导入模板

image.png

1是直接上传下载好的json文件,2是再模板详情页面有一个id复制这个id 进行导入

image.png
  • 如何在外部使用root连接这个mysql? 为了安全,首先需要设置root帐号的密码,先将当前库切到mysql
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

10. 设置root账户的密码为root


mysql> update user set authentication_string = password('root') where user = 'root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

11. 给所有root用户赋权,外部的电脑也能够通过root访问Docker中的mysql数据库
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

相关文章

  • 性能测试过程及模型构建

    在性能测试过程中,建模实际上可分为两个过程,性能测试过程和模型构建过程,性能测试过程主要完成对系统进行性能...

  • 一次服务端性能问题排查过程

    陆续聊了性能测试指标和性能测试排查过程也有四五篇文章了,今天分享一个真实的性能测试真案例。 在一次某银行项目性能测...

  • 记一次性能测试过程

    由于公司项目做了巨大改动,需要重新测试性能,下面记录本次测试的过程: 1.准备环境 测试需要公司开阿里云机器测试花...

  • 性能测试--3、性能测试过程

    概念验证(Proof of Concept:POC) 维基百科 概念验证(Proof of concept,简称P...

  • 20天jmeter性能测试

    性能测试 *系统性能测试是为了保证产品发布后其性能能够满足用户的需求,下文结合具体案例介绍应用系统性能测试过程的六...

  • 做好性能测试,应该需掌握些什么

    1、精通性能测试的一些基本:概念、过程、方法论、性能工程等.. 2、精通性能测试工具:商业性测试工具也好,开源性能...

  • 使用Jmeter测试java请求

    1、性能测试过程中,有时候开发想对JAVA代码进行性能测试,Jmeter是支持对Java请求进行性能测试,但是需要...

  • 性能测试分类之我见

    经常听说性能测试、压力测试、负载测试等,面试过程中也会被问及是否有相关测试经验,但对于什么是性能测试、压力测试、负...

  • 做好性能测试,你要掌握这些东西

    1.精通性能测试的基本概念,过程,方法论,了解性能工程; 2.精通1个商业性能测试工具+1个开源性能测试工具,知道...

  • 性能瓶颈分析案例

    性能分析案例一 在性能测试过程中,瓶颈犹如功能测试的bug,瓶颈的分析犹如bug的定位。性能测试工程师好比医生,...

网友评论

      本文标题:记一次性能测试过程

      本文链接:https://www.haomeiwen.com/subject/wkhecltx.html