一.目录文件讲解

目录

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

mac/linux:使用jmeter启动

windows:使用jmeter.bat启动

jmeter-server:mac/linux分布式压测的使用的启动文件

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

jmeter.properties:核心配置文件

extras:插件拓展的包

lib:核心的依赖包

ext:核心包

junit:单元测试包

二、语言版本切换

1.控制台修改

menu - options - choose language

2.配置文件修改(永久)

bin目录 - jmeter.properties

默认 #language = en

改为 language = zh_CN

三、基本使用

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

线程数:虚拟用户数

准备时长(ramp-up): 全部线程启动时长

循环次数:每个线程发送的次数

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

名称:采样器名称

注释:对这个采样器的描述

web服务器 : 默认协议为http,默认端口80

路径:服务器URL

Use multipart/from-data for HTTP POST :当发送post请求时,使

用Use multipart/from-data方法发送,默认不选中

3.查看测试结果

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

四、断言使用

1、增加断言: 线程组 - 添加 - 断言 - 响应断言

apply to (应用范围)

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

sample(比较少用)

要测试的响应字段

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

响应代码:状态码,200等

响应信息:例如OK等

Response Header:响应头

模式匹配规则

包括:包含在里面就成功

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

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

2、断言结果监听器:

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

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

断言失败:查看结果树任务结果颜色标红

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

五、压测结果聚合报告分析

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

lable: sample名称

samples:总共发送多少请求,例如10个用户循环10次则为100

average:平均响应时间

median:中位数,百分之50用户都是这个响应时间

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

95%line:95%用户不会超过这个时间

99%line:99%用户不会超过这个时间  (存在极端值)

min:最小响应时间

max:最大响应时间

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

Throughput:吞吐量--默认情况下表示每秒完成的请求数,qps--(Request per Second)

KB/Sec:每秒接收数据量

六、保存结果

为.jmx文件,使用sublime或者xml编辑器都可以打开

七、用户自定义变量

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

(比如服务器地址)

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

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

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

八、CSV可变参数压测实战

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

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

九、JDBC request压测mysql讲解

1.thread Group - add - sampler - jdbc request

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

3.参数讲解(sql结尾不要加";")

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

2.Query type 查询类型

3.parameter values 参数值

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 :是否自动提交事务

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

JDBC Driver class :数据库驱动,选择对应的mysql

username:数据库用户名

password:数据库密码

十、分布式压测

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

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

十一、分布式压测原理

1.总控机器的节点master,其他产生压力的机器叫做“肉鸡” server (同个网段)

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

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

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

5.配置详情

十二、linux下安装jdk8

下载解压后重命名jdk8

vim /etc/profile

尾部写入

export JAVA_HOME = /usr/local/software/jdk8(对应配置)

export JAVA_BIN = /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 JAVA_BIN PATH CLASSPATH

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

十三、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/......

十四、查看非GUI界面生成的jtl文件

导出到图形界面

新建线程组 - summary report - 浏览文件 进行查看

十五、压测接口的性能优化

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

2.少使用listener,如果使用-l ,他们都可以被删除或禁用

3.在加载测试期间不要使用“查看结果树”或者“查看结果”表监听器

4.不要使用功能模式,使用csv输出而不是xml

5.只保存需要的数据。尽可能少的使用断言

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

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

十六、图形化html压测报告dashboard讲解

1.Test and report informations

source file :jtl文件名

start time :压测开始时间

end time :压测结束时间

filter for display:过滤器

lable:sampler:采样器名称

2.APDEX(application performance index)

addex:应用程序性能指标,在0-1之间,1表示达到所有用户均满意

T(toleration threshold):可接受阀值

F(frustration threshold):失败阈值

3.requests summary

ok:成功率

ko:失败率

4.统计数据

见上面聚合报告讲解

十七、图形化html压测报告charts讲解

1.over time(随着时间的变化)

response time over time:响应时间变化趋势

response time percentiles over time(successful responses):最大,最小,平均,用户响应时间分布

active threads over time :并发用户趋势

bytes throughput over time :每秒接受和请求字节数变化,蓝色表示发送,黄色表示接受

latencies over time :平均响应延时趋势

connect time over time :连接耗时趋势

2.Throughput

hits per Second:每秒点击次数

codes per Second:每秒状态码数量

transactions per sceond :TPS,每秒事务数

response time vs request:响应时间和请求数对比

latency vs request:延迟时间和请求数对比

3.response time

response time percentiles:响应时间百分比

response time overview:响应时间概述

time vs threads:活跃线程数和响应时间

response time distribution:响应时间分布图

jdk自带压测工具_jmeter压测工具相关推荐

  1. jdk自带压测工具_FULL GC分析过程分享

    http://www.taobaotest.com/blogs/2294 在性能测试过程中,FULL GC频繁是比较常见的问题,FULL GC 产生的原因有很多,这里主要针对meta压测过程中分析FU ...

  2. web版本 开源压测工具_Web压测工具之Webbench和http_load

    Webbench简介 是知名的网站压力测试工具,能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况. webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每 ...

  3. 不看我真的会很伤心【压测工具:提升系统性能的利器】,查看TPS,计算TPS,计算压测指标、压测名词解释、教大家如何压测

    目录 前言 一.压测是什么? 二.为什么要压测? 三. 压测名词解释 1.压测类型解释 2.压测名词解释 3.机器性能指标解释 4.访问指标解释 四.如何计算压测指标 五.常见的压测工具 1.JMet ...

  4. 【web压测】压测常用工具、压测指标到底是什么?

    压测常用工具.压测指标到底是什么? 一.压测指标-I 1.QPS,每秒查询 2.TPS,每秒事务 3.RT,响应时间 二.压测指标-II 三.压测工具 1.ab 2.go-wrk(在window上压测 ...

  5. python接口压测1000并发_测试工具:黑羽压测

    前言 很多朋友对性能测试有种深深的误解:认为 只要学会 使用一款 性能测试工具,点点界面,配配数据,就能做好性能测试了. 不是这样的!! 性能测试 通常 要真正做好 很不容易. 它需要测试人员: 有产 ...

  6. linux压测接口工具,jmeter压测工具

    一.目录文件讲解 目录 bin:核心可执行文件,包含配置 mac/linux:使用jmeter启动 windows:使用jmeter.bat启动 jmeter-server:mac/linux分布式压 ...

  7. java zip 解压 密码_Java解压和压缩带密码的zip文件过程详解

    前言 JDK自带的ZIP操作接口(java.util.zip包,请参看文章末尾的博客链接)并不支持密码,甚至也不支持中文文件名. 为了解决ZIP压缩文件的密码问题,在网上搜索良久,终于找到了winzi ...

  8. java 压缩解压密码zip_Java解压和压缩带密码的zip文件过程详解|chu

    前言 JDK自带的ZIP操作接口(java.util.zip包,请参看文章末尾的博客链接)并不支持密码,甚至也不支持中文文件名. 为了解决ZIP压缩文件的密码问题,在网上搜索良久,终于找到了winzi ...

  9. 如何做好性能压测(一)丨压测环境设计和搭建

    简介:如何做好性能压测(一)丨压测环境设计和搭建 一般来说,保证执行性能压测的环境和生产环境高度一致是执行一次有效性能压测的首要原则.有时候,即便是压测环境和生产环境有很细微的差别,都有可能导致整个压 ...

最新文章

  1. 零基础学python全彩版实战答案-零基础学Python(全彩版)
  2. 【清华集训2017】榕树之心
  3. html类型转换函数,如何在JavaScript中转换数据类型?
  4. jQuery easyUI--数据表格 datagrid 的使用
  5. split函数python 未定义_Python字符串方法split()中的一道坑
  6. 手写实现Spring(IOC、DI),SpringMVC基础功能
  7. [转]OpenGL库介绍
  8. gitbash如何修改可恶的蓝色字体
  9. Linux上监控tomcat down掉后自动重启tomcat
  10. PHP读取TXT中文乱码的解决方法
  11. KlayGE 4.4中渲染的改进(三):高质量无限地形
  12. ajax交互的两种方式:html与xml
  13. 大数据Hadoop之——数据仓库Hive
  14. pywin32+excel(一)——Python使用win32com/pywin32操作excel
  15. JAVA小项目-银行管理系统(图形化界面)2-开户与挂失
  16. 电信跨域跨系统业务实践
  17. ad中按钮开关的符号_收藏:电路图符号大全
  18. QQ截图出现闪退,无法截图(亲测有效)
  19. for的用法详解,for循环完全攻略
  20. 大数据相关资料论文小结

热门文章

  1. 次世代角色模型完整建模流程解析,这6款软件必不可少
  2. 苹果CMS对接公众号教程
  3. 毕业生自传----(威马逊之夜)
  4. A-Level数学例题解析及练习Natural logarithms
  5. Forbid consumer 10.100.8.14 access service com.alibaba.dubbo.monitor.MonitorService解决办法
  6. 带你看看GeoJSON是什么!
  7. 日本の有名私立大学のランキング(排名)
  8. Android中实现按钮自动点击
  9. 如何写好科研论文:Introduction(2)
  10. 孩子做作业用计算机,使用电脑批改作业渐流行 家长质疑老师越来越懒