Jmeter应用初步介绍
一.工具介绍
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
二.下载安装
JMeter对应官方网址:http://jmeter.apache.org/
a.安装环境要求:
Java版本
JMeter要求充分满足JVM1.3或更高。
操作系统
JMeter可以在当前任何一个已经部署了Java的操作系统上运行。
Unix(Solaris,Linux,etc)
Windows(98,NT,2000,XP)
Open VMS Alpha 7.3+
b.安装步骤
安装环境
Mac OS X Lion
安装包准备
JDK(Requires Java 6 or later) 具体可在官方网站下载
apache-jmeter-2.13 具体下载地址:
http://apache.fayea.com//jmeter/binaries/apache-jmeter-2.13.tgz
安装过程
1)JDK安装
点击下载的jdk,选择安装路径即可。
2)JDK环境配置
sudo chmod +xw /etc/profile
sudo vim /etc/profile #示例
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1..0_40.jdk/Contents/Home #添加如下内容
export JAVA_HOME=[Your Java Home]
export CLASS_PATH=$JAVA_HOME/lib:%JAVA_HOME/lib/tools.jar
export PTAH=$JAVA_HOME/bin:$PTAH source /etc/profile
3)检查JDK安装是否OK
java -version #查看java版本
4)JMeter安装
curl -O http://apache.fayea.com//jmeter/binaries/apache-jmeter-2.13.tgz
tar -xzf apache-jmeter-2.13.tgz
5) JMeter环境配置
sudo chmod +x /etc/profile
sudo vim /etc/profile #示例
export JMETER_HOME=/Users/snifferhu/SoftWare/apache-jmeter-2.13 #添加如下内容
export PATH=$JMETER_HOME/bin:$JMETER_HOME/lib:$PATH
6)检查JMeter安装是否OK
jmeter #如果能显示jmeter操作页面则安装成功
7)JMeter启动参数调整
sudo chmod +xw $JMETER_HOME/bin/jmeter
vim $JMETER_HOME/bin/jmeter #调整如下
HEAP="-Xms2g -Xmx2g"
初始内存太小,跑起来常常会报错OOM
三.Http接口测试介绍
本篇内容主要侧重实战,以我们公司主要应用的Http接口为核心讲解。
1、打开Jmeter

主界面介绍:
JMeter的主界面主要分为状态栏、菜单栏、工具栏、树形标签栏和内容栏
状态栏:主要显示JMeter的主版本和release版本。
菜单栏:全部的功能的都包含在菜单栏中。
工具栏:工具栏中的按钮在菜单栏都可以找到,工具栏就相当于菜单栏常用功能的快捷按钮。
树形标签栏:树形标签栏通常用来显示测试用例相关的标签。
内容栏:配合树形标签栏显示,树形标签中点击哪个标签,内容栏中就显示相应的内容和操作。
2、并发请求模拟 ----- 线程组
性能测试主要为了模拟大量并发请求。JMeter使用线程组模拟同时有多个用户并发访问的场景。
在“测试计划”上点击鼠标右键-->添加-->threads(Users)–>线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。

线程组界面介绍:

- 名称:可以给线程组设置一个个性化的命名
- 注释:可以对线程组添加备注以标记
- 在取样器错误后要执行的动作:就是在错误之后要如何执行,可选继续执行后续的、停止执行等。
- 线程数:就是需要设置多少线程执行测试。
- Ramp-up Period (in Seconds):用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程。假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。
- 循环次数:就是决定一个线程要跑多少次测试。
- Delay Thread creation until needed:直到需要时延迟线程的创建
- 调度器:选中之后可以配置启动时间,立即或者预定的时间
3、测试场景环境参数设置 ——— “Http请求默认值”组件
当被测系统有唯一的访问域名和端口时,这个组件很好用。
同时更改访问域名和端口时,统一配置数据

“HTTP 请求默认值”组件配置页面

4、 添加“HTTP信息头管理器”组件
请求头信息常常需要包含token、session、type等信息。

5、设置“HTTP信息头管理器”
设置默认请求头,可以添加Authorization绕过登录验证;
设置Content-Type指定请求内容类型;
设置charset指定请求字符集等;

6、在“线程组”里添加“HTTP 请求”的Sampler

7、设置“HTTP请求”
在HTTP请求设置页面,录入被测接口的详细信息,包括请求路径,对应的请求方法,以及随请求一起发送的参数列表

8、添加检查点:在被测接口对应的“HTTP 请求”上,添加“响应断言”

9、设置检查点
在设置页面上添加对相应结果的正则表达式存在性判断即可。

10、添加监听器
方便查看运行后的结果

11、查看“聚合报告”

- Label: 定义的HTTP请求名称
- Samples: 表示这次测试中一共发出了多少个请求
- Average: 访问页面的平均响应时间
- Median:访问页面的中位数响应时间
- 90% Line:访问页面的90%响应时间
- 95% Line:访问页面的95%响应时间
- 99% Line:访问页面的99%响应时间
- Min: 访问页面的最小响应时间
- Max: 访问页面的最大响应时间
- Error%: 错误的请求的数量/请求的总数
- Throughput:每秒完成的请求数
- KB/Sec: 每秒从服务器端接收到的数据量
关于90% Line:
一组数由小到大进行排列,找到他的第90%个数(假如是12),那么这个数组中有90%的数将小于等于12 。
用在性能测试的响应时间也将非常有意义,也就是90%请求响应时间不会超过12 秒。
上述步骤完成了一个简单测试案例的创建,复杂测试案例均在此基础上扩展完成。
使用Jmeter工具开发的接口测试案例,一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。
比较独立的接口,可以统一放在一个线程组内,顺序完成测试。
流程性接口的测试:如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP 请求”的Sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性。
Jmeter应用初步介绍的更多相关文章
- 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍
我们在前一篇文章微软新神器-Power BI,一个简单易用,还用得起的BI产品中,我们初步介绍了Power BI的基本知识.由于Power BI是去年开始微软新发布的一个产品,虽然已经可以企业级应用, ...
- 三、Android学习第三天——Activity的布局初步介绍(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 三.Android学习第三天——Activity的布局初步介绍 今天总结下 ...
- mxgraph进阶(二)mxgraph的初步介绍与开发入门
mxgraph的初步介绍与开发入门 前言 由于小论文实验需求,需要实现根据用户日志提取出行为序列,然后根据行为序列生成有向图的形式,并且连接相邻动作的弧上标有执行此次相邻动作的频次.为此,在大师兄徐凯 ...
- JMeter主要组件介绍
JMeter主要组件介绍 转自https://www.cnblogs.com/linbo3168/p/6023962.html 作者:linbo.yang 1.测试计划(Test Plan)是使用 ...
- 新浪微博API使用初步介绍——解决回调地址的问题
# -*- coding: utf-8 -*- #python 27 #xiaodeng #新浪微博API使用初步介绍——解决回调地址的问题 #http://blog.csdn.net/monsion ...
- Jmeter的简单介绍
Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测 试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件 ...
- Html/CSS 初步介绍html和css部分重要标签
&初步介绍html和css部分重要标签& 注:开头书写:<!DOCTYPE html>表明对应标准html代码 先行总结重点 下方给出具体 CSS: 1. position ...
- Jmeter系列(2)- Jmeter工具介绍、Jmeter安装目录介绍、Jmeter面板介绍
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Jmeter支持哪些测试场景? Jme ...
- Jmeter系列(3)- Jmeter安装目录介绍
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Jmeter安装目录说明 bin:包含 ...
随机推荐
- LeetCode "Russian Doll Envelopes"
An intuitive DP - should be 'medium'. class Solution { public: int maxEnvelopes(vector<pair<in ...
- gulp.js简单操作
一.安装gulp 1.深入设置任务之前,需先安装gulp: $ npm install gulp -g 2.这会将gulp安装到全域环境下,让你可以存取gulp的CLI.接著,需要在本地端的专案进行安 ...
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlw ...
- ios webview中关于宽高的总结
测试一 测试的物料: <html> <head> <meta charset="UTF-8"> <meta name="view ...
- 【学】CSS3基础实例1 - 用CSS3做网页中的小三角,以及transition的用法
自开了博客园已经有2周了吧,虽然转载了一些觉得比较有用的文章之外还没有开始写自己的一些学习记录,那就从今天开始. 目前看了妙味的不少视频,有css+html,js的基础和中级也都看完了,作业也都做了, ...
- [HTML5]a标签禁止嵌套使用
a标签内部不可再写a标签,否则会与父a标签解析到同一级.
- centos7下安装vsftpd与PAM虚拟用户
Vsftp与PAM虚拟用户 使用yum 安装vsftp yum install vsftpd pam pam-* db4 db4-* 设置开机启动 chkconfig vsftpd on 创建一个保存 ...
- 关于@Html.Action()的异常“控制器或该控制器未实现 IController。”
解决之前: @Html.Action("BottomHelp", "Articles", new { num = 5}) 解决之后: @Html.Action( ...
- css实现绝对定位元素居中
前端我们时常需要封装一些弹出框,这些弹出框大小都不能确定,多半是用js实现居中. 现在有了css3可以不用js了. .box{ background-color: blueviolet; width: ...
- CentOS 7 yum安装Zabbix
一.Zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统 ...