Jmeter简单回顾
之前公众号推文一上手就分享如何测接口, 其实忽略了一些概念性的东西, 今天来给大家拾遗补缺, 做个回顾吧.
一. JMeter介绍
jmeter能做什么,来自官网的解释:
Ability to load and performance test many different applications/server/protocol types:
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET …)
- SOAP / REST Webservices
- FTP
- Database via JDBC
- LDAP
- Message-oriented middleware (MOM) via JMS
- Mail - SMTP(S), POP3(S) and IMAP(S)
- Native commands or shell scripts
- TCP
- Java Objects
Jmeter可以模拟大量负载测试网络或者对象, JMeter是用java语言开发的application,比较消耗memory和CPU, 当模拟大并发用户时候, 单台模拟就有些力不从心. 同时jmeter可以帮助我们进行回归测试, 通过测试脚本和断言来验证程序返回的预期值.
JMeter与 LR 比较:
Jmeter是apache 组织下的开源测试工具(长得不太英俊), 与LR比较有很多不足, 但是它具备很多优点, 让无数测试工程师对它欲罢不能, 而放弃了LR的华而不实(虽然很帅, 但功能太多,上手困难).
- 开源, 就意味着免费
- 小巧, 相比LR的庞大(好几个G的安装包),jmeter非常小巧, 无需安装, 仅java环境
- 功能强大, 一个简单的web性能测试工具, 不断更新扩展, 可以完成DB, FTP, LDAP, webservice, TCP 等测试, 还可以自由扩展丰富插件.
- 跨平台, 可以在任意系统上运行, Linux, Unix, Mac os, Ubuntu, centos, windows等.
LR运行环境无法脱离windows, 且是商业收费软件.
缺点:
Jmeter不支持IP欺骗, LR支持.
结果分析能力相对LR不够详细.
二 .Jmeter 下载安装
1)安装
官网提供jmeter 版本下载: http://jmeter.apache.org/
jmeter 3.2以后版本都需要jdk1.8 环境
2)插件安装
下载插件后到%jmeter_home%/lib/ext目录下, 重启jmeter即可生效
3)运行jmeter
1. 进入bin目录运行jmeter
windows环境, 进入jmeter/bin 目录, jmeter.bat即可运行jmeter
Mac os, Ubuntu等环境, 进入jmeter/bin 目录, 点击jmeter 即可运行jmeter
2.语言选择
菜单: 选项->选择语言->选择个人喜好的语言
3. classPath
如果是自己开发的jar包在jmeter中使用, 那方法和插件是一样的, 放在lib/ext目录下
三.Jmeter测试计划
1)test plan
打开jmeter默认已经创建了测试计划
来自官网的说明, 可以创建多种test plan

2) Threads

- setup Thread Group
是所有真正开始线程并发之前的准备工作,必须是在线程组开始之前完成并且拥有自己独立的线程设置;setUp Thread Group类似于lr的init.可用于执行预测试操作。
- teardown thread group
是所有线程执行测试结束后执行定期的线程组. 拥有自己独立的线程设置;
tearDown Thread Group类似于lr的end.可用于执行测试后动作。
- thread group
我们通常添加运行的线程。可以看做是一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生变化的.

Ramp-Up Period(in seconds)表示在这个时间内创建完所有的线程。如有3个线程,Ramp-Up=10秒,那么线程的启动时间间隔为10/3=3.33秒. 这样的好处是:一开始不会对服务器有太大的负载,线程组是为模拟并发负载而设计。
循环次数:表示每个线程执行多少次请求
3)模板
模板是一个非常好用功能

点击模板, jmeter GUI已经为你预定好了各种test plan,选择一个自己需要的类型, 所见即所得的创建线程组里的内容, 你只要做的就是修修改改


这种方式为我们节省了很多时间
4)Sampler
这个我们非常熟悉了, HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、 JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求,其中还有两种比较特殊的sampler, java sampler和Beanshell sampler

5)Timer
定时器用于设置等待时间. 等待时间是性能测试中常用的控制客户端QPS/TPS的手段。类似于LoadRunner里面的“thinktime”。 JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。
6) Pre-Processor Elements
意为前置处理器,用于对于取样器进行处理,且是在sampler启动之前执行,此处和后置处理器是有所区别的, 如用户参数 beanshell PreProcess 等

7) Post-Processor Elements
在测试过程中,经常需要从响应数据中找到某些参数,作为下一个请求的参数,这时候需要用到后置处理器 如正则表达式, json取样器, beanshell PostProcess,就属于这一类

8) Assertions
断言就不用多介绍了, 我们经常在使用, 同时jmeter提供丰富的断言, 还可以组合着一起用.
9) Listeners
监听器提供了很多丰富的结果信息, 包含图形的和数字的, 是用来对测试结果数据进行处理和可视化展示的一系列元件, 图形结果、查看结果树、聚合报告、用表格察看结果都是我们经常用到的元件
10) Configuration Elements
配置元件, 类似的有csv 数据元件, http信息管理头, http cookie管理器, 用户定义变量, 计数器, 随机变量等 都属于配置元件.

配置元件在我们的线程组里经常出现, 比如接收到的cookie可以存储为JMeter线程变量。要将cookie保存为变量,需定义属性“cookiemanager .save.cookie =true”
11) Execution order
执行顺序, 来自官网的解释
- Configuration elements
- Pre-Processors
- Timers
- Sampler
- Post-Processors (unless SampleResult is null)
- Assertions (unless SampleResult is null)
- Listeners (unless SampleResult is null)
12) Properties and Variables
属性和变量, jmeter的属性都定义在jmeter.properties,这个属性作用域是global的, 用户也可以自定义变量
13) jmeter命令行
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
今日精选推荐
咨询工作加微信

扫描二维码
欢迎自荐和推荐, 需要的微信推送简历!
请猛戳下面二维码了解更多

Jmeter简单回顾的更多相关文章
- Android混淆、反编译以及反破解的简单回顾
=========================================================================虽然反编译很简单,也没下面说的那么复杂,不过还是转了过 ...
- jmeter简单的使用
jmeter简单的使用 一般步骤是:在测试计划下面新建一个线程组,线程组下面添加请求,请求中添加结果和断言 1.打开页面: 2.添加线程组: 3.线程组中设置参数: 很重要的几个参数:线程数.ramp ...
- 中国2017 Google 开发者大会第二天简单回顾
昨天早晨发布了第一天的开发者大会回顾文章后,就匆匆忙忙赶去会场继续享受高科技的盛宴,接下来简单回顾一下第二天的大会参与情况. 昨天早晨下着小雨,并带着微风,在外面还是挺冷的,这里不得不给工作人员点个赞 ...
- 中国2017 Google 开发者大会第一天简单回顾
昨天有幸参加了中国2017 Google 开发者大会,在这第一天就收获满满,昨天太忙了,今天早晨来一起简单回顾一下,可以让没有参加的童鞋们感受一下现场的温度. 早早就来到了会议现场,外面看不出什么特别 ...
- Jmeter 简单用法
学习jmeter的部分用法,整理笔记: 老规矩上图: 一.录制脚本:Badboy或HTTP代理服务器: Badboy第三方软件,录制脚本后,可以直接导出为jmeter格式:再通过加载实现脚本: HTT ...
- Jmeter简单测试elasticsearch服务器
入门知识: Jmeter是一个非常好用的压力测试工具. Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 顾名思义:压力测试,就是 被测试的系统,在一定 ...
- JMeter简单性能测试(适合初学者)
利用JMeter进行Web测试 JMeter介绍 脚本录制 运行JMeter进行测试 JMeter主要组件介绍 参数化设置 动态数据关联 使用命令行运行JM ...
- JMeter简单的性能测试实例
JMeter基础之——一个简单的性能测试 我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测试目标网站 ...
- Jmeter简单介绍与搭配Jenkins实现自动化
Jmeter简介 Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具.用于对软件做压力测试,它最初被设计用于 Web应用测试,但后来扩展到其他测试领域. 它可以用于 ...
随机推荐
- 我们为什么要搞长沙.NET技术社区(二)
我们为什么要搞长沙.NET技术社区(二) 某种意义上讲,长沙和中国大部分内地城市一样,都是互联网时代的灯下黑.没有真正意义上的互联网公司,例如最近发布的中国互联网企业一百强中没有一家湖南或者长沙的公司 ...
- Unity 捏脸整理及基于骨骼的捏脸功能实现
目前实现捏脸功能的方式主要有两种.一个是Blendshape(融合变形),一个是基于骨骼驱动的方式,通过修改骨骼矩阵(bindpose)来影响SkinMesh.这两种方式的最终原理都是在shader ...
- 系统的讲解 - PHP 缓存技术
目录 概述 浏览器缓存 文件缓存 NoSQL缓存 WEB服务器缓存 Opcode缓存 小结 关于缓存的常见问题 概述 缓存已经成了项目中是必不可少的一部分,它是提高性能最好的方式,例如减少网络I/O. ...
- 包装类及 LeetCode 每日一题
1.包装类与创建对象 Java 为8大数据类型都提供了相应的包装类,并提供属性和方法,更方便的操作基本数据类型.包装类位于java.lang包中. 对于这几种类型的基本数据,都有相似的方法实现基本数据 ...
- FontAwesome 图标字体库的使用
在前端开发中,许多新手常会遇见一个问题,参考的网页上有类似下图的图标,但在资源里却找不到对应的文件,这是因为这些网页使用了图标库.这里介绍一种常见的图标库——FontAwesome的使用. 1.登录F ...
- 驰骋工作流引擎-流程数据md5加密
关键字:工作流程数据加密 md5 数据保密流程数据防篡改软加密设置方式: 对工作流引擎的数据加密研究, 流程数据的加密方案与实现过程.输入图片说明需求背景1, 流程数据加密是为了防止流程数据被篡改 ...
- Abnormal build process termination--解决IDEA启动web项目报错
iDEA启动后报Error:Abnormal build process terminatio 报错的原因如下: Error:Abnormal build process termination: & ...
- linux常用命令小结
其他类 clear 清屏 文件管理 chmod 修改文件权限. 常用列表: chmod +x 使文件变为可执行文件. 常用于sh脚本. touch 创建文件 tar 压缩文件操作. -zxvf, 解压 ...
- Java核心技术第五章——1.类、超类、子类(1)
1.定义子类: 关键字extends表明正在构造的新类派生与一个已存在的类.已存在的类称为超类.基类或父类:新类称为子类.派生类或孩子类.超类和子类是Java程序员最常用的两个术语(emmm~~我觉得 ...
- Android GL deadlock timeout error
Android GL deadlock timeout error CRASH 在 PBR&IBL 的开发过程中,在 Linux 验证程序运行正常后,移植到 Android 平台,发现程序 c ...