以前公众号推文一上手就分享如何测接口, 其实忽略了一些概念性的东西, 今天来给你们拾遗补缺, 作个回顾吧.html
一. JMeter介绍java
jmeter能作什么,来自官网的解释:web
Ability to load and performance test many different applications/server/protocol types:正则表达式
Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET …)shell
SOAP / REST Webservices数据库
FTPapache
Database via JDBCjson
LDAPwindows
Message-oriented middleware (MOM) via JMScentos
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
今日精选推荐
咨询工做加微信
扫描二维码
欢迎自荐和推荐, 须要的微信推送简历!
请猛戳下面二维码了解更多