这里是修真院后端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析后端知识/技能,本篇分享的是:

【 什么是压测,为什么要进行压力测试?JMETER工具的使用】

【修真院java小课堂】课题名称

什么是压测,为什么要进行压力测试?JMETER工具的使用

开场语:

大家好,我是IT修真院上海分院第10期的学员许东杰,一枚正直纯洁善良的java程序员,今天给大家分享一下,修真院官网java(职业)任务6,深度思考中的知识点——什么是压测,为什么要进行压力测试?JMETER工具的使用

(1)背景介绍:

压力测试:需要了解AUT(被测应用程序)一般能够承受的压力,同时能够承受的用户访问量(容量),最多支持有多少用户同时访问某个功能。

简单理解测试:

1、接口测试(功能测试):测试能否正确的发送请求并收到响应,测试功能,类似浏览器的开发者工具和postman。

2、压力测试(性能测试):在接口测试没有问题的前提下进行的测试,测的是同一时间最大能承受的访问量,通过多线程循环来进行模拟高并发访问。

jmeter:一款流行的开源压力测试工具, 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试

(2)知识剖析:

常用组件:

jmeter常用组件

1、用户线程组:场景的起始点,设置多少用户并发,什么时候开始跑,跑多久

一般用线程组

2、sampler(采样器):真正的请求的发出

一般使用http请求,选择跟随重定向

3、前置处理器:运行在sampler之前,多用于设置sampler,和更新从上一个响应获得的变量值

4、后置处理器运行在sampler之后,多用于对响应数据进行处理,可以设置统一解码的格式

5、配置元件:对samplers进行配置,避免重复内容

httpcookie管理(在功能测试中需要进行cookie清除)

http请求默认值(定义之后,在http请求中就可以不填了)

http消息头管理(配置作用域内的消息头信息)

用户变量:将常用的变量封装到里面,直接调用变量名

cvs Data Set Config文件数据导入的功能(参数化)

6、定时器:请求之间的暂停时间

7、控制器:进行请求之间的逻辑控制(常见的条件循环事物控制器)

8、断言:验证服务器返回的信息是否正确

9、监听器:收集到测试的信息,在组件中体现,用户可以对这些信息进行查看分析

常用的就2个

聚合报告:收集性能数据,列如平均的响应时间、每秒完成的请求的数量

查看结果树:主要查看请求数据和响应数据,判断请求报错原因

(3)常见问题:

内存溢出的问题,在linux系统上运行jmeter脚本时经常会提示内存不足

(4)解决方案:

在window下是在jmeter.bat文件中修改内存配置。linux是在jmeter.sh文件中。

-Xms512m -Xmx512m" in the JMeter batch file

(5)编码实战:

二、Jmeter报告

1、Aggregate Report 解析

Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”。今天再次有同行问到这个报
告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅。

如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report中,会显示一
行数据,共有10个字段,含义分别如下。

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性
的值

Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里
显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller
时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transact
ion Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

(6)拓展思考:

用jmeter代理服务进行脚本的录制

(7)参考文献:

百度、谷歌

(8)更多讨论:

Q1:jmeter的汉化问题
A1:在jmeter.properties中修改成中文,在配置文件45行左右加上language=zh_CN

Q2:jmeter测试的合格标准
A2:在linux系统上,200KB/Sec,每秒接收到的数据量

Q3:使用jmeter哪些会影响测试结果
A3:使用jmete先跑通接口测试,跑通之后吧一些不相关的控件组件进行关闭,例如查看结果树、不然是影响性能的

(9)鸣谢:

感谢朱明星师兄,此教程是在他们之前技术分享的基础上完善而成。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

什么是压测,为什么要进行压力测试?JMETER工具的使用相关推荐

  1. 压力测试Jmeter+badboy

    压力测试Jmeter+badboy 前言:很多人都想学习压力测试,但是一开始手动写脚本着实蛋疼,所以今天我教大家的是利用badboy来录制压测脚本,然后用Jmeter来做压力测试. 流程:badboy ...

  2. 压力测试+接口测试(工具jmeter)

      jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因 为jmeter是java开发的,所以运行的时候必须 ...

  3. 压力测试-Jmeter自动化测试教程

    目录 Jmeter目录 1.Jmeter的安装与部署 1.1 环境要求 1.2 安装Jmeter 1.3 配置Jmeter环境变量 1.4 Jmeter的使用 手写自动化测试脚本(不建议用) 通过录制 ...

  4. MySQL Cluster 4个数据节点压力测试--mysqlslap工具压400W写

    锅巴哥的个人建议:cluster叫电信运营商版本,所以基本上在很大的用户并发量的情况下才会用到,对连接数的线性增长要求高的场景,千兆就不用想了, 没万兆就不用玩了. 很不幸,我的就是千兆网络,我的数据 ...

  5. MySQL Cluster2个数据节点压力测试--mysqlslap工具压400W写

    锅巴哥的个人建议:cluster叫电信运营商版本,所以基本上在很大的用户并发量的情况下才会用到,对连接数的线性增长要求高的场景,千兆就不用想了, 没万兆就不用玩了. 很不幸,我的就是千兆网络,我的数据 ...

  6. 简单好用的服务器压力测试小工具 ab

    2019独角兽企业重金招聘Python工程师标准>>> 前段时间,创建了一个小接口,用来测试阿里云的一个表格存储的IO能力,就用到了一个压测小工具,叫ab(apachebeach), ...

  7. 处理器压力测试软件,处理器压力测试小工具——云汉烤机大师

    # 1 项目背景 最近,本人在Github上发布了一个开源软件,名字叫"云汉烤机大师",代码仓库地址: ![代码仓库](https://b01.ickimg.com/201907/ ...

  8. 【高性能】Web性能压力测试JMeter、测试秒杀Red

    高性能问题 内容管理 JMeter web性能测试 JMeter配置原件 取样器 Sampler 配置原件 config Element 逻辑控制器 Logic Controller 前置处理器 Pr ...

  9. android服务器压力测试,Android压力测试Monkey工具

    最近在Android程序测试过程中接触到了自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyrunner其它test t ...

  10. 压力测试-Jmeter脚本录制方案

    使用Jmeter时在特殊场景下需要用到脚本录制的功能,本文将分享如何使用Jmeter进行脚本的录制及相关的注意事项. 准备工作: 创建基础API框架:新建测试计划-创建线程组-创建HTTP请求-创建查 ...

最新文章

  1. 函数实现十进制转二进制
  2. python查询数据库,打印查询结果过程中出现'NoneType' object is unsubscriptable
  3. 这 56 个代码注释让我笑吐了
  4. Windows10彻底禁止更新
  5. uinty中对Xml文件的操作
  6. Gstreamer中一些gst-launch常用命令
  7. allocator_is_always_equal的实例
  8. java获取apk启动activity_兼容 Android 10 启动 APK 实现方案
  9. python编写简单赌博游戏赏析及注意事项
  10. iOS开发UI篇—Quartz2D简单使用(二)
  11. 弹性力学经典解法与有限元法的不同特点
  12. 有哪些需要不得不知的ASO的两种优化技巧
  13. Kotlin - 改良工厂模式
  14. 各纬度气候分布图_【地理】气候类型的分布规律及分布图的判读 [图片]
  15. 浏览器看视频,加速脚本
  16. 笔试中怎么答产品设计类题目
  17. python读取邮件发送日期和时间_Python获取邮件的日期时间Gmai
  18. Java中身份证、电话号码用星号(****)加以保护
  19. jeecms服务器响应失败,后台提示“服务请求发生了错误”,原因不明
  20. Unity延迟几秒执行一个方法小工具

热门文章

  1. java ntp服务器ip地址_国内常用ntp服务器ip地址
  2. java反射机制原理
  3. mysql中sum函数使用_MySQL中的SUM函数使用教程_MySQL
  4. 如何在shell脚本中定义数组及遍历
  5. 非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同
  6. MATLAB矩阵范数最小值
  7. 经验:一个秒杀系统的设计思考
  8. .Net 常用的ORM框架
  9. Android 11.0 蓝牙去掉传输文件的功能
  10. systemctl的常用命令和使用说明