什么是JMeter

JMeter是Apache组织开发的开源软件,由Java语言实现。

主要用于软件系统性能测试,他最初被设计用于web测试,后来被扩展到其他领域。

Jmeter特点

http://www.51testing.com/html/34/505934-861655.html

java运行环境安装

下载jdk:https://www.oracle.com/technetwork/java/javase/downloads/index.html

java环境变量配置

参考这篇文章:https://www.cnblogs.com/xch-yang/p/7629351.html

jmeter下载

下载地址:http://jmeter.apache.org/download_jmeter.cgi

下载完成以后,解压文件夹,进入目录:

点击jmeter.bat进入jmeter界面:

jmeter环境变量配置(可配可不配)

可自行百度,不配置不影响使用可以忽略此步骤。

测试计划:

在展开性能测试的之前,我们要书写一份性能测试计划,主要包括一下几个点。

测试计划:测试对象(你要测试的对象),测试人员(我们自己) , 测试目标(性能指标) 总结

jmeter使用:

线程属性:

线程属性:

调度器:

点击调速器,可以进行持续时间设置,这里设置为30S,意思是线程一共要跑30s,然后结束。持续时间为5S意思为,点击开始执行按钮后,先不执行,五秒以后再执行。

我们找到多少人去访问你的程序,进行压力测试,那么我们应该在哪儿去添加你的程序呢?这个时候我们引入取样器这个概念。

取样器(Sampler):动作性元素

代表一次请求-响应的过程,他们是测试用例中动作的发起者,是测试用例的主题元素。

JMeter根据不同的应用预制了很多种动作元素,如果用户觉得仍然不够用设置可以用BeanShell 写自己的动作。

比如HTTP Request Sampler , FTP Request Sampler , JDBC Request Sampler等。

每一种不同类型的 Sample可以根据设置的参数向服务器发出不同类型的请求。

红色部分就是我们可以进行测试的类型,一般我们测试都是HTTP协议,这是我们访问百度一个请求:

如果上图没有看懂,建议复习下HTTP协议:https://www.cnblogs.com/Chamberlain/p/11064680.html

添加监听器

如果查看上面请求的结果呢,这个时候我们只需要添加监听器就可以了。

这些就是jmeter的监听器,常用的有 查看结果树 , 聚合报告等。我们逐一添加如下:

查看结果树:

聚合报告:

聚合报告各项参数解读:

Samples:样本数,即运行次数

Average:平均响应时间

Median:中位数,50%响应时间小于此值

90%line:90%响应时间小于此值

Min:最短响应时间

Max:最大响应时间

Error:未命中数/比率,即错误比率

Throughput:吞吐量——每秒完成请求事务数(可以理解成TPS或者QPS)

Kb/sec:每秒接收数据量

添加断言

当有一个请求,服务端会有响应,我们要检查响应结果是否正确,可以用肉眼去看,但是当工作量大的时候,我们不可能一个个看,这个时候需要断言。

我们一般添加 “响应断言”:

我们在测试模式输入框,输入baidu就是验证响应的内容有没有baidu,这个时候在运行一次,然后点击查看结果树。

错误的断言

这个时候我们把添加的断言随便输入杂乱的数据:

这个时候再运行一次,然后查看结果树:

这个时候你会发现HTTP请求编程红色了,这就表示断言失败,响应结果不包含你刚才输入的断言。

 

300个并发(一点点加 慢慢调试)

如果超时有个超时1000ms时间限制

聚合报告解读

Samples:样本数,即运行次数

Average:平均响应时间

Median:中位数,50%响应时间小于此值

90%line:90%响应时间小于此值

Min:最短响应时间

Max:最大响应时间

Error:未命中数/比率,即错误比率

Throughput:吞吐量——每秒完成请求事务数(可以理解成TPS或者QPS)

Kb/sec:每秒接收数据量

10- JMeter5.1.1 工具快速入门的更多相关文章

  1. 版本控制工具Git工具快速入门-Linux篇

    版本控制工具Git工具快速入门-Linux篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.版本管理系统的介绍 1>.版本管理系统的特点 1.1>.自动生成备份: ...

  2. 版本控制工具Git工具快速入门-Windows篇

    版本控制工具Git工具快速入门-Windows篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近在学习Golang语言,之前的开发环境在linux上开发的,后来由于办公用的是w ...

  3. MyBatis-Plus工具快速入门

    MyBatis-Plus官方文档:http://mp.baomidou.com/#/quick-starthttp://mp.baomidou.com/guide/#%E7%89%B9%E6%80%A ...

  4. sqlDeveloper工具快速入门

    场景 我们在连接oracle数据库的时候 常用方式一般有以下三种: pl/sql deceloper navicat sqlDeveloper 其中, pl/sql developer是最经典的,也是 ...

  5. 优雅高效的MyBatis-Plus工具快速入门使用

    目前正在维护的公司的一个项目是一个ssm架构的java项目,dao层的接口有大量数据库查询的方法,一个条件变化就要对应一个方法,再加上一些通用的curd方法,对应一张表的dao层方法有时候多达近20个 ...

  6. MyBatis-Plus工具快速入门使用

    MyBatis-plus有什么特色 1.代码生成 2.条件构造器 对我而言,主要的目的是使用它强大的条件构建器. 快速使用步骤: 1.添加pom文件依赖 <dependency> < ...

  7. AngularJS快速入门指南01:导言

    AngularJS使用新的attributes扩展了HTML AngularJS对单页面应用的支持非常好(SPAs) AngularJS非常容易学习 现在就开始学习AngularJS吧! 关于本指南 ...

  8. 【荐】PHP采集工具curl快速入门教程

    为什么要用CURL? CURL(Client URL Library Functions)是一个利用URL语法在命令行方式下工作的文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTT ...

  9. JDBC基础:JDBC快速入门,JDBC工具类,SQL注入攻击,JDBC管理事务

    JDBC基础 重难点梳理 一.JDBC快速入门 1.jdbc的概念 JDBC(Java DataBase Connectivity:java数据库连接)是一种用于执行SQL语句的Java API,可以 ...

随机推荐

  1. Java 并发编程小册整理好了

    Java 有并发,并发知识之大,一口吃不下 这曾是我不愿意触碰的知识角 多次一头扎进并发,无功而返 为应对面试,临时苦苦记忆,不成体系 这一次我决定从基础开始,攻克它 12,0000 字 68Mb 高 ...

  2. PHP配置 4. 虚拟主机配置open_basedir

    将/usr/local/php/etc/php.ini中open_basedir注释掉,编辑虚拟主机配置open_basedir #vim /usr/local/apache2 .4/conf/ext ...

  3. 「UOJ 514」通用测评号(生成函数)

    首先,题目中的过程可以看作:每次选择任意一个燃料仓,给它装填 \(1\) 单位的燃料,如果此时恰好 "填满" 了它,就给答案 \(+1\). 考虑 \(n\) 号燃料仓填满的概率, ...

  4. springboot系列五:springboot整合mybatisplus jsp

    一.用IDEA创建项目 1.添加pom.xml <?xml version="1.0" encoding="UTF-8"?> <project ...

  5. springboot集成swagger实战(基础版)

    1. 前言说明 本文主要介绍springboot整合swagger的全过程,从开始的swagger到Knife4j的进阶之路:Knife4j是swagger-bootstarp-ui的升级版,包括一些 ...

  6. 全量同步Elasticsearch方案之Canal

    一.前言 Canal 是阿里的一款开源项目,纯 Java 开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了 MySQL(也支持 mariaDB). Canal 除了支持 b ...

  7. Java进阶专题(二十八) Service Mesh初体验

    前言 ​ ⽬前,微服务的架构⽅式在企业中得到了极⼤的发展,主要原因是其解决了传统的单体架构中存在的问题.当单体架构拆分成微服务架构就可以⾼枕⽆忧了吗? 显然不是的.微服务架构体系中同样也存在很多的挑战 ...

  8. vue中的.sync修饰符用法

    在项目中接触到父组件传值给子组件的时候,想在子组件改变父组件传的值.(比如用于弹窗关闭) 但是正常来说,vue2是不允许子组件直接改父组件传进去的值的. 所以我们需要在子组件内定义自定义事件,通知父组 ...

  9. Kubernetes中Deployment部署故障排除

    Kubernetes中Deployment部署故障排除 字符型思维导图 排查pod状态(带标签):kubectl get pods,是否有等待处理的pod? 是?kubectl describe po ...

  10. JavaCV 采集摄像头和麦克风数据推送到流媒体服务器

    越来越觉得放弃JavaCV FFmpeg native API,直接使用JavaCV二次封装的API开发是很明智的选择,使用JavaCV二次封装的API开发避免了各种内存操作不当引起的crash. 上 ...