jmeter介绍

jmeter是什么?

jmeter是apache组织开发的,开源的,纯java的压力测试工具

jmeter可以用来测什么?

——|__静态资源(发送给客户端的文件)

|__动态资源(根据不同用户得到不同回答)

|__服务器、网络


下载&安装&启动

step1: 先确认已安装java

如已经安装java,可以进行step2。否则先下载安装java(java的下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html

step2: 来jemeter官网下载吧

http://jmeter.apache.org/

具体下载过程参考(https://www.jianshu.com/p/0e4daecc8122

step3: 在下载路径下启动jmeter

          ➜  bin pwd

/Users/liurong07/Downloads/软件_下载/apache-jmeter-3.3/bin

         ➜  bin sh jmeter.sh

启动后:


使用

概念科普

线程组:jmeter是用java实现的,使用java的一个线程来模拟一个用户。所以线程组就是一组虚拟用户。

使用举例1(GUI模式/http网页压力测试)

(对ark.baidu.com网页做压力测试)

配置虚拟用户

  • 添加一个线程组

  • 填写线程组参数

线程数100:说明这个小组ark_community_group0里面有100个虚拟用户。

Ramp-Up Period(in seconds): 设定了一个时间值。100个用户在1s时间内陆续开始访问网页。

循环次数:每个虚拟用户访问完网址的循环次数。如果设定1次表示虚拟用户访问后就退出了。如果是永远,则每次访问完都持续访问直到强制停止。

所以这一组参数表示:ark_community_group0这个小组里面有100个虚拟用户,它们在1s内陆续访问ark社区,访问完后会退出。

配置访问网页

查看结果

添加监听器(查看结果树、聚合报告、用表格察看结果、生成概要结果)之后:

聚合报告分析(时间单位ms)

聚合报告是累加的,每次运行结果都在原来基础上累计统计。

字段详情

Average:单次请求的平均响应时间

Median:中位数,50%的响应时间<=9s

90%Line: 九分位数,90%的响应时间<=19s。   95%Line,99%Line同理。

Min,Max:最小响应时间、最大响应时间。

Error%:请求错误的样本占比。

Throughput:接收并转发的最大数据速率。

Recived、Sent:接受、传输速率。

使用举例2(命令行模式/http网页压力测试)

测试配置文件ark_community_group2.jmx保存下来

用命令行跑配置文件,测试结果记录在ark_community_group2_log.jtl

也可以用GUI察看jtl报告

使用举例3(分布式发压测试)

原理

为什么做分布式压测?

如果在一台机器上做压测,并发数很大(千、万以上),会超过单台机器的CPU、内存承受限度。解决办法:一台机器做控制机控制多台子执行机,多个子执行机一起来分担压测任务。

分布式压测怎么做?

1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。

  2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,是通过命令行模式执行的。

  3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

分布式压测步骤

举例说明:master机器上执行分布式测试,执行过程中把**.jmx测试配置文件分配给slave机器执行,并收集slave执行后的结果**.jtl。

(step1)准备

master和slave上都要安装jmeter,且都关闭防火墙

(step2)配置

(1)master机器配置

bin/jmeter.properties里面的remote_hosts字段配置上slave机器的ip(172.24.181.253)

(2)   slave机器配置

slave机器的bin/jmeter-server文件的 RMI_HOST_DEF字段配置上自己本机ip(172.24.181.253)

(step3)GUI方式启动

(1)在slave机器上启动server即可(注意slave上的server先启动哦)

sh jmeter-server

(2) 在master机器上启动jmeter客户段(一定要在slave的server启动后启动啊)

查看结果:

(step4)命令行方式启动

在master上执行命令:

如果需要指定某一台slave(172.24.181.253)执行测试脚本:

sh jmeter.sh -n -t ark_community_group2.jmx -R 172.24.181.253 -l w.jtl

例如下面的例子:(sh jmeter.sh -n -t ark_community_group2.jmx -R 10.99.197.118,10.99.195.114,10.94.221.96,10.94.63.53 -l ark03_04_05_junheng184.jtl)

查看w.jtl执行结果,看到运行成功:

如果需要指定全部的slave都跑脚本,就用这个命令:

sh jmeter.sh -n -t ark_community_group2.jmx -r -l result1.jtl

和GUI模式的效果等价:

注意事项

常遇到远程启动时链接失败问题,需要确保以下关键点

1. master和slave的防火墙要关闭,master和slave可以ping通

2. master和slave的jmeter尽量保持版本一致

3. jmx配置文件没有必要拷贝到slave上,因为master的远程启动开始后,它自动会分配给slave去执行。

4. jmx配置的线程数目是100的话,每个slave按照jmx的配置数目执行,所以每个slave执行线程数目也是100,并不是分担100的一部分。

5. slave能够承受多大的线程数呢,万一slave被打爆了?

slave机器能够处理线程数和自身的硬件参数有关,举例如果slave的CPU是1.4G-3GHZ,内存是1G内存,可以处理线程数100-300,建议配置不超过100(考虑到承担的任务有可能是xml计算密集型或者网卡交换机影响)

参考:

分布式压测遇到的坑

http://www.mamicode.com/info-detail-1729730.html

https://www.cnblogs.com/Fine-Chan/p/6233823.html

http://www.cnblogs.com/saryli/p/6596015.html

http://blog.163.com/lucas_nina/blog/static/185960149201492945117318/(硬件参数与建议线程数)


其他场景补充

场景1. 同一个机器上同时启动2个(多个)jmeter-server

可以启动多个,比如在一台机器上启动2个jmeter-server

配置过程:

(step-1)slave端配置

jmeter-slave所在的bin目录下复制出一份jmeter-server2文件,并修改其中端口号为1199:

${DIRNAME}/jmeter ${RMI_HOST_DEF} -Dserver_port=${SERVER_PORT:-1199} -s -j jmeter-server.log "$@"

启动jmeter-server、jmeter-server2,查看端口已经启动ok:

[work@cp01-ark03 ~]$ netstat -tunpl|grep 1099
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 :::1099 :::* LISTEN 13156/java
[work@cp01-ark03 ~]$ netstat -tunpl|grep 1199
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 :::1199 :::* LISTEN 14616/java

(step-2) master端配置

jmeter-master的jmeter.properties文件配置:

remote_hosts=10.99.197.118:1099,
244 10.99.197.118:1199,

(step-3)调度方法

sh jmeter.sh -n -t ark_community_group2.jmx -R 10.99.197.118:1199,10.99.197.118:1099 -l 118.jtl

⚠️如果不指定端口号,这样直接调用的话就使用1099端口号跑脚本,1199端口没有跑(sh jmeter.sh -n -t ark_community_group2.jmx -R 10.99.197.118 -l 118.jtl)或者(sh jmeter.sh -n -t ark_community_group2.jmx -R 10.99.197.118,10.99.197.118 -l 118.jtl)

遗留问题

同一个线程组下面,能不能拆分成比例去访问http?

path的参数可变化设置

slave的守候进程是什么时候起来的,每个slave分担任务量是怎样?(slave-master怎么交互)(master-slave的部署是不是需要在一个网段下)

断言



相关参考

静态资源、动态资源

http://blog.csdn.net/u012110719/article/details/44239429

jmeter百科

https://baike.baidu.com/item/Jmeter/3104456?fr=aladdin

jmeter下载安装

https://www.cnblogs.com/ceshisanren/p/5639895.html

https://www.jianshu.com/p/0e4daecc8122

jmeter聚合报告分析

https://www.cnblogs.com/Uther/p/5292123.html

自定义脚本方式:
https://www.cnblogs.com/linglingyuese/articles/linglingyuese-two.html

jtl格式解析
https://www.cnblogs.com/miaomiaokaixin/p/6118081.html

分布式介绍

https://www.cnblogs.com/puresoul/p/4844539.html

http://blog.csdn.net/wuhenyan/article/details/53117556

jmeter压测thrift的例子

http://blog.csdn.net/mn960mn/article/details/50684877

http://blog.csdn.net/cmrsautomation/article/details/53357976

自定义header

http://blog.csdn.net/difffate/article/details/73442130


jmeter-下载安装使用的更多相关文章

  1. Jmeter下载安装配置及使用(windows)

    1 前言 仅作为记录使用. 2 步骤 2.1 下载地址:http://jmeter.apache.org/download_jmeter.cgi 2.2 选择binary版本即可:apache-jme ...

  2. jmeter下载安装---已有jmeter脚本使用方法

    一.jmeter下载安装 1.下载地址:http://jmeter.apache.org/download_jmeter.cgi 下载下来为一个压缩包,解压即可 解压后目录结构如下: 2.jmeter ...

  3. jmeter下载安装

    jmeter运行依靠java环境 一.根据jmeter版本不同要求java环境则不同 jmeter官网下载地址:http://jmeter.apache.org/download_jmeter.cgi ...

  4. Jmeter下载安装(一)

    一.JMeter介绍       JMeter使用了不同技术和协议,是一款可以进行配置和执行负载测试.性能测试和压力测试的工具.负载测试.性能测试和压力测试概念: 负载测试: 这类测试使系统或者应用程 ...

  5. win10 Jmeter下载安装与使用教程

    1.下载 2.安装 下载完成后解压文件(不需要安装) 之后需要配置jmeter环境变量 1)新增新增JMETER_HOME系统变量 2)编辑CLASSPATH变量,加上%JMETER_HOME%\li ...

  6. Jmeter下载安装配置

    一,进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可. 3.我下载的是jmeter4.0版本,对应jdk1.8. ...

  7. Jmeter 01 Jmeter下载安装及入门

    jmeter简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域.--百度百科 下载 下载 ...

  8. Windows下载安装jmeter

    一.下载 jmeter下载地址: http://jmeter.apache.org/download_jmeter.cgi Binaries-apache-jmeter-3.0.zip 二.安装 1. ...

  9. jmeter下载及安装配置

    本文是在win7环境下安装使用jmeter,jmeter可以运行在多平台上Windows和Linux. 前提:使用jmeter工具之前需要安装java.并配置好java的环境变量.(备注:java下载 ...

  10. JMeter的下载安装以及运行教程

    一.安装JMeter的必要准备 1.安装JDK JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html ...

随机推荐

  1. ubuntu set up 7 - power

    https://askubuntu.com/questions/1078939/ubuntu-18-04-battery-life http://tipsonubuntu.com/2018/11/18 ...

  2. set类型的应用场景 —— Redis实战经验

    set类型是string类型的集合,其特点是集合元素无序且不重复,每个集合最多可以存储 232 - 1 个元素(40多亿),set类型主要有以下应用场景. 1. 好友/关注/粉丝/感兴趣的人集合 se ...

  3. C# LINQ学习笔记三:LINQ to OBJECT之操作字符串

    本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5814204.html,记录一下学习过程以备后续查用. 一.统计单词在字符串中出现的次数 请注意,若要执行计数, ...

  4. linux--nginx学习

    nginx 1.nginx安装编译 1.yum install nginx(自动解决依赖) 2.源代码编译安装(优秀,自由选择软件版本,自定义第三方功能比如开启https) 3.rpm手动安装(垃圾) ...

  5. 假期学习【六】Python网络爬虫2020.2.4

    今天通过Python网络爬虫视频复习了一下以前初学的网络爬虫,了解了网络爬虫的相关规范. 案例:京东的Robots协议 https://www.jd.com/robots.txt 说明可以爬虫的范围 ...

  6. mysql批量插入数据uuid去重

    update base_problem set uuid=replace(uuid(),'-',''); update base_problem set uuid = UUID() where uui ...

  7. PHP实现导出CSV文件

    在做导出一个信息表为excel文件这个功能完成之后,自己用得好好的,但是到HR那边就告诉我导出的文件无法用她电脑上的office打开,心想,兼容没做好,想问下她的版本号,结果半天没回复消息.我老大来了 ...

  8. 18家大厂Java面试题整理了350道(分布式+微服务+高并发)

    一.性能调优系列 1.Tomcat性能调优 JVM参数调优: -Xms 表示JVM初始化堆的大小, -Xmx表示JVM堆的最大值.这两个值的大小一般根据需要进行设置. 当应用程序需要的内存超出堆的最大 ...

  9. 并查集-D - 畅通工程

    D - 畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通 ...

  10. Mysql备份参数

    --all-databases , -A 导出全部数据库. mysqldump -uroot -p --all-databases --all-tablespaces , -Y 导出全部表空间. my ...