一.目录文件讲解

目录

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:响应时间分布图

linux压测接口工具,jmeter压测工具相关推荐

  1. java 多线程压测_java多线程Jmeter压测实现

    笔者最近在看jmeter源码,对多线程处理部分的了解记录如下. Part1 线程与多线程概念 提到线程先来看一下进程(线程的容器)的概念,进程是一个具有独立功能的程序关于某个数据集合的一次运行活动.它 ...

  2. 压测工具 Jmeter 压测工具 apache bench

    Jmeter下载地址 Jmeter参考地址 一.Jmeter下载安装 下载地址:http://jmeter.apache.org/download_jmeter.cgi windows选择zip,li ...

  3. jmeter constant timer 如何添加_阿里巴巴在开源压测工具 JMeter 上的实践和优化

    Apache JMeter 是 Apache 旗下的开源压测工具,创建于 1999 年初,迄今已有超过 20 年历史.JMeter 功能丰富,社区(用户群体)庞大,是主流开源压测工具之一. 性能测试通 ...

  4. Jmeter 压测 http(s)

      上一篇文章关于Jmeter介绍了Jmeter入门相关的知识.本文是实战篇,讲讲如何使用Jmeter对Http(s)进行压力测试. Http测试 测试一   首先,添加 "线程组" ...

  5. jmeter压测使用实践

    环境搭建篇见https://blog.csdn.net/weixin_42498050/article/details/12847945 参考Jmter压测使用实践 jmeter压测实战总结 搭建 A ...

  6. 压测工具Jmeter入门使用

    一.创建一个基础的Web测试 1. 测试内容 模拟五个用户请求2次指定的http接口,并且重复2次. 也就是总共请求有5 * 2 * 2 = 20 次 要构建本次内容需要用到Jmeter的元素:线程组 ...

  7. 利用 JMeter 压测上传和下载接口实战

    目录 前言 正文 方案调研 工具下载 启动工具 组织压测脚本 压测结果 结论 前言 突然来一个任务,让压测对象存储服务的上传和下载接口,之前也没有干过呀,也不属于自己的工作范畴.但是,事情着急,自己也 ...

  8. Jmeter压测工具的使用

    一.MAC GUI模式使用jmeter 1.1 下载工具安装包 官网地址:https://jmeter.apache.org/download_jmeter.cgi 1.2 解压安装包 unzip a ...

  9. MeterSphere在开源压测工具JMeter上的分布式优化和实践

    Apache JMeter是一款100%纯Java的开源软件,旨在加载测试功能行为和测量性能.它可以用来测试静态和动态资源的性能,例如静态文件.Java Servlet.CGI Scripts.Jav ...

最新文章

  1. SpringBoot开发最佳实践
  2. python支持什么循环_Python的循环
  3. linux程序网络验证,【redhat5.5】linux的LDAP认证服务器的配置及客户端pam网络验证实例...
  4. 阿里巴巴与小毛驴的故事——贪心算法
  5. Mac的游戏开发配置环境笔记
  6. 感想篇:7)知其然与知其所以然,KnowHow与KnowWhy
  7. 雅睿生物在创业板IPO终止:安信证券为保荐人,曾计划募资7.5亿元
  8. php 跳转邮箱,JS简单实现点击跳转登陆邮箱功能的方法
  9. web前端开发工程师是做什么工作的?
  10. 推荐系统-排序算法:GBDT+LR
  11. 电路板上的插头怎么拔下来_如何在电路板上完美的取下多针脚电子元件?求高手指教方法技巧?...
  12. C++金拱门点餐结算系统_餐厅点单结算系统
  13. Ipad购买和使用教程(1)
  14. ubuntu下安装UltraEdit
  15. 并发编程之线程池的使用及扩展和优化
  16. Linux C : lseek函数
  17. php教师评语,佛山这所中学爆红!教师用古文写评语,学子用文言文写反思
  18. 掌握 Spring Boot 运行内存及内存参数设置:助力高效应用部署与优化
  19. bugku 一段新闻
  20. 使用Pandas对数据进行筛选和排序

热门文章

  1. 计算机一级理论课及答案,2012年(秋)江苏省计算机一级B理论部分(IT01)附答案
  2. 服务端给手机APP写支付接口(微信)
  3. 老鸟必修代码精简技能:Lambda表达式
  4. python求直角三角形斜边长程序_编写一个程序,输入直角三角形两条直角边a和b的长度,利用勾股定理计算斜边c的长度。要求结果保留2位...
  5. CKEditor添加表情
  6. nmi watchdog
  7. 今日世界的战国时代格局:千年的轮回,惊人的相似?
  8. 上海爱可生发布基于OceanBase开源内核的商业发行版ActionDB
  9. 音乐的版权算不算是属于著作权
  10. Speech模块管理语音输入功能,提供语音识别功能,可支持用户通过麦克风设备进行语音输入内容。通过plus.speech可获取语音输入管理对象