jmeter

一.jmeter目录文件

    bin:核心可执行文件,包含配置

          jmeter.bat  : windows下启动文件

          jmeter  :  mac或者linux启动文件

          jmeter.sh :  使用这个文件也可以在linux下启动

          jmeter-server  :  Mac或Linux分布式压测使用的启动文件

          jmeter-server.bat  :  windows下分布式压测使用的启动文件

          jmeter.properties : 核心配置文件

   extras : 插件拓展的包

   lib : 核心的依赖包

        ext : 核心包

        junit : 单元测试包

 

二.jmeter语言版本切换(初学者可以使用中文版本,以后深入了还是建议使用英文版本)

   1.在控制台修改

        options  -  choose language

   2.配置文件修改

        bin目录   -  jmeter.properties

              默认  #language=en

              改为  language=zh_CN

 

Jmeter里面GUI菜单栏主要组件

     1.添加-threads -线程组(控制总体并发)

          线程数: 虚拟用户数,一个虚拟用户占用一个进程或线程

          准备时长(ramp-up period(in seconds)) : 全部线程启动的时长,比如100个线程,20秒,则表示20秒内100个线程都要启动完成,每秒启动5个线程

          循环次数 : 每个线程发送的次数,加入值为5,100个线程,则会发送500次请求,可以勾选永远循环

 

     2.线程组-添加-sampler(采样器) - http(一个线程组下面可以增加几个sampler)

    web服务器: 默认协议是http     默认端口是80    服务器名称或IP:请求的目标服务器名称或IP地址

    路径:服务器URL

    use multipart/from-data for http post : 当发送post请求时,使用use multipart/from-data方法发送,默认不选中

 

   3.查看测试结果

     线程组-添加-监听器-查看结果树

  4.断言

apply to(应用范围)

     main sample only : 仅当前父取样器,进行断言,一般一个请求,如果发一个请求会触发多个,则就有sub-sample (比较少用)

    要测试的响应字段:

           响应文本:即响应的数据,比如json等文本

           响应代码: http的响应状态码

           响应信息:http响应代码对应的响应信息,例如:OK,found

           response header :响应头

      模式匹配规则:

           包括:包含在里面就成功

           匹配:响应内容完全匹配,不区分大小写

           equals:完全匹配,区分大小写

 

断言结果监听器:线程组-添加-监听器-断言结果

         里面的内容是sampler采样器的名称

         断言失败,查看结果树任务结果颜色标红(通过结果树里面双击不通过的记录,可以看到错误信息)

 

每个sampler下面可以加单独的结果树,然后同时加多个断言,最外层可以加个结果树进行汇总

     

5.聚合报告

  新增聚合报告:线程组-添加-监听器-聚合报告(aggregate report)

    label:sample名称,可以一个接口

    samples : 总共发送多少请求

    average : 平均响应时间

    median : 中位数,50%的用户都是这个响应时间

    90%: 90%的用户响应时间不会超过这个值

    min:最小响应时间

    max:最大响应时间

    error%:错误的请求 总数/请求总数

    throughput:吞吐量,也叫做qps

 

6.jmeter用户自定义变量

  为什么使用:很多变量在全局中都有使用,或者测试数据更改,可以在一处定义,四处使用,比如服务器地址

    1. 线程组-add-config element(配置元件)-user definde variable(用户定义的变量)

    2.引用方式${xxx},在接口中变量中使用

    3.原始查看结果树和非原生查看(基础按钮)

 

7.jmeter的csv可变参数压测实战

    jmeter读取csv和TXT文本文件里面的参数进行压测

    添加  线程组-add-config element(配置元件)-csv data set config(csv数据文件设置)

   

8.jmeter压测实战之JDBC request 压测mysql

    jdbc压测mysql相关准备工作,jar包添加,配置

    1.thread group - add - sampler - jdbc request

    2.jar包添加  mysql-connector-java-5.1.30.jar

    3.参数讲解:(sql结尾不要加“;”)

         1.variable name of pool declared in JDBC connection configuration(和配置文件同名)

         2.query type  查询类型

         3.parameter types 参数类型

         4.parameter types 参数类型

         5.variable names  sql执行结果变量名

         6.result  variable names 所有结果当做一个对象存储

         7.query timeouts  查询超时时间

         8.handle results  处理结果集

  4.JDBC  connection configuration配置

       1. JDBC request - add config element - JDBC connection configuration

         核心配置

                max number of connections:最大连接数

                max wait:最大等待时间

                auto commit:是否自动提交事务

                datebase url:数据库连接地址 jdbc:mysql://127.0.0.1:3306/blog

                JDBC driver class : 数据库驱动,选择对于的mysql

                username : 数据库用户名

                password : 数据库密码

 

9.jmeter压测jdbc request 压测mysql,select语句

       1.debug sampler使用(结果树中查看)

                thread group - add - sampler - debug sampler

    2.参数讲解(sql结尾不要加“;”)     

        1.variable name of pool declared in JDBC connection configuration(和配置文件同名)

         2.query type  查询类型

         3.parameter types 参数类型

         4.parameter types 参数类型

         5.variable names  sql执行结果变量名

         6.result  variable names 所有结果当做一个对象存储

         7.query timeouts  查询超时时间

         8.handle results  处理结果集

 

10.分布式压测介绍

     普通压测:单台机可以对目标机器产生的压力比较小,受限因素包括cpu,网络,IO等

     分布式压测:利用多台机器向目标机器产生压力,模拟几万用户并发访问

 

jmeter分布式压测原理

   1.总控制机器的节点master,其他产生压力的机器叫“肉鸡” server

   2.master会把压测脚本发送到 server上面

   3.执行的时候,server上只需要把jmeter-server打开就可以了,不用启动jmeter

   4.结束后,server会把压测数据回传给master,然后master汇总输出报告

   5.配置详情

 

几台肉鸡启动这个文件

master 打开修改配置

 

11.阿里云linux服务器,JDK8下载和安装

      在阿里云服务器上安装JDK和配置环境变量

      linux下使用wget下载jdk8:

               进到目录/usr/local/software

  

vim /etc/profile

加入

export JAVA_HOME=/usr/local/software/jdk8

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME PATH CLASSPATH

 

使用 source /etc/profile  让配置立刻生效

 

12.将项目打包到阿里云

Windows端用工具secureCRT

部署项目到阿里云,并启动,公网可以访问

1.注意点

        关闭防火墙

        阿里云控制台安全策略,开放端口

linux上运行 java -jar xxx

ssh root@120.79.160.143

守护进程:nohup java -jar xxx  &

  什么是守护进程:就是Linux单独开一个进程一直不关闭

 

13.阿里云Linux服务器安装jmeter 4.0

经济足够:购买两台阿里云机器

不够的话:本地虚拟机,在同个局域网就可以,安装同个版本的jdk,jmeter,同个路径,不要带有空格或者中文

 

14.jmeter非GUI界面,参数讲解

-h  帮助

-n  非GUI模式

-t  指定要运行的JMeter测试脚本文件

-l  记录结果的文件,每次运行之前,(要确保之前没有运行过,即xxx.jtl不存在,不然报错)

-r  jmeter.properties文件中指定的所有远程服务器

-e  在脚本运行结束后生成的html报告

-o  用于存放html报告的目录(目录要为空,不然会报错)

 

例子: ./jmeter -n -t xxx.jmx -l result.jtl -e -o /usr/local/soft....

 

 

15.jmeter压测接口的性能优化

注意点

1.使用非GUI模式 : jmeter -n -t test.jmx -l result.jtl

2.少使用listener(监听器),如果使用 -l 参数,它们都可以被删除或禁用

3.在加载测试期间不要使用查看结构树,或查看结果表 监听器,只能在脚本截断使用它们来调试脚本

4.包含控制器在这里没有帮助,因为它将文件中的所有测试元素添加到测试计划中

5.不要使用功能模式,使用CSV输出而不是XML

6.只保存你需要的数据,尽可能少的使用断言

7.如果测试需要大量数据,可以提前准备好测试数据放到数据文件中,以CSV read方式读取。

8.用内网压测,减少其他带宽影响压测结果

9.如果压测大流量,尽量用多几个节点以非GUI模式向服务器施压 

 

html报告参数讲解

 

 

 

16.分布式压测准备工作

1.压测注意事项

1.the firewalls on the systems are turned off or correct ports are opened

系统上的防火墙被关闭或正确的端口被打开

linux上: 输入这个指令就可以关闭防火墙 service iptables stop

2.all the clients are on the same subnet

所有的客户端都在同一个子网上

3.the server is in the same subnet, if 192.x.x.x or 10.x.x.x IP addresses are used. if the server doesn't use 192.xx or 10.xx IP address, there shouldn't be any problems

如果使用192.x.x.x或10.x.x.x IP地址,则服务器位于同一子网中,如果服务器不使用192.xx或10.xx IP地址,则不应该有任何问题

4.make sure jmeter can access the server

确保jmeter可以访问服务器

5.make sure you use the same version of jmeter and java on all the systems.mixing versions will not work correctly

确保在所有系统上使用相同版本的jmeter和Java。混合版本将无法正常工作

6.you have setup ssl for RMI or disabled it

您已为RMI设置SSL或将其禁用

 

压测注意事项:一定要用内网IP,不要用公网IP,用ping去检查

 

专业名称

       master :司令       slave : 奴隶      target : 目标

 

远程拷贝(内网地址):

scp -r /usr/local/software/jdk-8u141-linux-x64.tar.gz  root@172.18.230.233:/usr/local/software

scp -r /usr/local/software/jmeter/apache-jmeter-4.0.tgz  root@172.18.230.233:/usr/local/software/jmeter

 

启动  ./jmeter-server (建议使用这种) 或者  nohup ./jmeter-server &

检查启动是否成功

       ps -ef | grep jmeter-server

       ps aux | gerp jmeter-server

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值