Jmeter使用实践- 基础介绍
Jmeter使用实践- 基础介绍
随着市场上推出越来越多的测试工具,大家使用起来也比较盲目,就我个人而言,使用过LoadRunner和Jmeter
很多人倾向于LoadRunner,因为LR的功能更强大,其实工具的选择,不在于工具本身有多强大,取决于我们的实际需求
我接触的项目基本都是web应用,从性能测试需求的角度来说,性能测试工具需要具有以下一些特点
1、支持HTTP/HTTPS协议,能够发送HTTP/HTTPS请求
2、可以实现不同的用户场景,能够根据实际业务模拟场景,对用户的比例进行合理分配
3、支持事务;
4、支持参数化和关联;
5、可以生成报告;
既然Jmeter满足以上特性,使用特别灵活,又是免费的,所以我很明显的偏向了JMeter
以下是整理的相关jmeter的基础介绍和一些术语
1.基本介绍
Jmeter是Apache组织的开放源代码项目,是功能和性能测试的工具,它是100%的Java应用。Jmeter提供的操作界面支持多种配置和结果显示。Jmeter能够模拟对服务器或者网络系统逐步加负载(压测包括HTTP/FTP/JDBC/JAVA等)。Jmeter支持多线程并发取样和单线程组对不同的功能同时取样。Jmeter也可以作为Web服务器与浏览器之间的代理网关,以便捕获浏览器的请求和Web服务器的响应。
Jmeter包含4部分:
负载发生器:用于产生负载,通常以多线程或多进程的方式模拟用户行为。
用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。
资源生成器:用于生成测试过程中服务器、负载机的资源数据。
报表生成器:根据测试分析结果生成报表,提供可视化的数据展现方式
2.基础元件介绍
测试计划是测试计划是性能测试的起点,其它元件都需要依赖测试计划,是所有元件的容器
2.1 线程Threads(Users)
2.1.1线程组
(1) 取样错误后要执行的动作
a.继续:默认选项,出错后后续的线程继续运行
b.Start Next Thread Loop:出错后启动下一组线程运行
c.停止线程:后续的线程停止运行,但是会返回出错前的结果
d.停止测试:与停止线程的差异在于不返回出错前的结果
(2)线程数:虚拟用户数,代表发送请求的用户数,一个线程数占用一个进程或线程。
(3)Ramp-Up Period(in seconds)-准备时长
-所有线程在多少时间内启动,单位是秒,为0时代表一次请求即并发。如果线程数为5,Ramp-Up Period为10
(4)循环次数
-每个线程发送请求的次数。如果线程数为20,循环次数为100,那么每个线程发送100次请求,总 请求数是2000
(5)Delay Thread Creation until needed:直到需要时延迟线程的创建
(6)调度器:设定测试运行时间
2.2配置元件
2.2.1 CSV Data Set Config
参数化配置,一般用在数据驱动,通过文件来存储测试数据。调用时也支持参数化一部分数据。Jmeter参数化方式是一次读入一行,分割后存入若干变量中交给一个线程处理。
2.2.2 HTTP信息头管理器
2.2.3 HTTP Cookie管理器
2.2.4 HTTP COOKIE Manager管理cookie
每个Jmeter线程都有自己的session
2.3前置处理器
全局的参数设置,设置后每次请求前读取的值,比如地址、端口、token
2.4后置处理器(Post Processors)
正则表达式提取器可以从请求的响应结果中提取需要的内容,从而实现关联
(1)引用名称:外部引用时使用
(2)正则表达式:提取的内容需要用()括起来。
(3)模板:使用$$引用起来 ,值从1开始
(4)匹配数据(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中匹配第 几个内容
(5)缺省值:正则匹配失败时,取的值。
2.5Sampler(取样器)
sampler是与服务器进行交互的单元
(1)HTTP请求
(2)Web服务器
(3)Http请求
(4)Parameters参数
2.6监听器
2.6.1 聚合报告
聚合报告的相关指标:
(1)Label:每个 Jmeter 的 element (例如 HTTP Request )都有一个 Name 属性,这里显示的就是 Name 属性的值。
(2) #Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户,每个用户迭代10次,这里就会显示100。
(3) Average:平均响应时间,默认情况下是单个 Request 的平均响应时间,使用了事务控制器后表示为整个事务的平均响应时间。
(4) Median: 50 %用户的响应时间。
(5) 90% Line: 90 %用户的响应时间。
6) Min:最小响应时间。
(7) Max:最大响应时间。
(8) Error%:错误率,本次测试中出现错误的请求的数量 / 请求的总数。
(9) Throughput:吞吐量,默认情况下表示每秒完成的请求数( Request per Second )。当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec。
(10) KB/Sec:每秒从服务器端接收到的数据量。
2.6.2 查看结果树
(1)Thread Name: 线程组名称
(2)Sample Start: 启动开始时间
(3)Load time: 加载时长
(4)Latency: 等待时长
(5)Size in bytes: 发送的数据总大小
(6)Headers size in bytes: 发送头大小
(7)Body size in bytes: 发送数据的其余部分大小
(8)Sample Count: 发送统计
(9)Error Count: 交互错误统计
(10)Response code: 返回码
(11)Response message: 返回信息
(12)Response headers: 返回的头部信息
2.7断言
确定Jmeter有没有按照预期工作,应当考虑使Jmeter提供的断言,加到Sampler 里面可以对返回的结果进行判断,例如判断HTTP返回结果里面是否含有某个字符串
附上一张jmeter的界面截图
Jmeter使用实践- 基础介绍的更多相关文章
- 一、jmeter基础介绍及http请求取样器
jmeter的下载安装这里不再赘述,百度都有, 1.jmeter是以线程的方式来运行的:2.通过非GUI运行对负载机的资源消耗更小:3.控制机.负载机 安装JDK时jdk路径与jmeter路径避免有中 ...
- JMeter性能测试的基础知识和个人理解
JMeter性能测试的基础知识和个人理解 1. JMeter的简介 JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常 ...
- jmeter实现Http接口测试介绍
构建一个测试页面 页面功能测试说到底就是模拟用户浏览点击页面的全过程,很多的测试工具都可以对该过程进行录制后模拟用户操作,而压力测试就是将这个过程在单位时间内重复成千上万次,看检测应用的高可用,接下来 ...
- ABP框架实践基础篇之开发UI层
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 说明 其实最开始写的,就是这个ABP框架实践基础篇.在写这篇博客之前,又回头复习了一下ABP框架的理论,如果你还没学习,请查看AB ...
- Jmeter使用实践-接口diff测试
Jmeter使用实践-接口diff测试 大多数人都使用 Jmeter 做过性能测试,但是在使用的过程中你会发现,它不仅可以做性能测试和功能测试,还能够满足基本的接口测试需求. 相比其他工具,Jmete ...
- JMeter性能监测插件介绍(三)
JMeter 性能监测插件介绍 压力测试过程中,能够随时对负载服务器的健康状况的把控是相当重要的,有了这些数据,我们才能准确分析出服务器负载瓶颈.JMeter 插件包现在能够支持服务器监控,可以在所有 ...
- Web3D编程入门总结——WebGL与Three.js基础介绍
/*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...
- C++ 迭代器 基础介绍
C++ 迭代器 基础介绍 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...
- Node.js学习笔记(一)基础介绍
什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...
随机推荐
- 客户端升级为select网路模型
服务器端: #include<WinSock2.h> #include<Windows.h> #include<vector> #include<stdio. ...
- 说说lock到底锁谁(I)?
写在前面 最近一个月一直在弄文件传输组件,其中用到多线程的技术,但有的地方确实需要只能有一个线程来操作,如何才能保证只有一个线程呢?首先想到的就是锁的概念,最近在我们项目组中听的最多的也是锁谁,如何锁 ...
- TestNG-Annotations
@BeforeSuite The annotated method will be run before all tests in this suite have run. @AfterSuite ...
- RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案
可用容量:(n-1)/n的总磁盘容量(n为磁盘数) 原因:RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块 ...
- hive优化实战
2019年1月8日,付哥给了我一份公司以前的一份SQL优化方案文档.十分感谢.记录了许多在公司以前优化的案例. -------------------------------------------- ...
- spring-boot-configuration-processor 是干啥用的
spring默认使用yml中的配置,但有时候要用传统的xml或properties配置,就需要使用spring-boot-configuration-processor了 引入pom依赖 <de ...
- 【Wince-USB通讯】Wince在没有Wifi的情况下使用USB数据线与PC进行Socket通讯
具体操作 1.确保Wince连接PC成功 2.服务端的IP输入:127.0.0.1 ,然后启动侦听. 3.在客户端输入的服务器IP是:192.168.55.100 (客户端的IP是192.168.55 ...
- [Python自学] day-21 (2) (Cookie、FBV|CBV装饰器)
一.什么是Cookie 1.什么是Cookie? Cookie是保存在客户端浏览器中的文件,其中记录了服务器让浏览器记录的一些键值对(类似字典). 当Cookie中存在数据时,浏览器在访问网站时会读取 ...
- .NET大文件分片上传
需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...
- TTTTTTTTTTTTTTTTT Gym 100851J Jump 构造
题意:首先你输入一个数字n(偶数)(n<=1000),电脑则自动生成一个长度为n的01字符串,你每次可以构造出一个长度为n的01字符串,输入给电脑后电脑进行判定,如果你的字符串与电脑的字符串完全 ...