一.工具介绍

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应用初步介绍的更多相关文章

  1. 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍

    我们在前一篇文章微软新神器-Power BI,一个简单易用,还用得起的BI产品中,我们初步介绍了Power BI的基本知识.由于Power BI是去年开始微软新发布的一个产品,虽然已经可以企业级应用, ...

  2. 三、Android学习第三天——Activity的布局初步介绍(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 三.Android学习第三天——Activity的布局初步介绍 今天总结下 ...

  3. mxgraph进阶(二)mxgraph的初步介绍与开发入门

    mxgraph的初步介绍与开发入门 前言 由于小论文实验需求,需要实现根据用户日志提取出行为序列,然后根据行为序列生成有向图的形式,并且连接相邻动作的弧上标有执行此次相邻动作的频次.为此,在大师兄徐凯 ...

  4. JMeter主要组件介绍

    JMeter主要组件介绍   转自https://www.cnblogs.com/linbo3168/p/6023962.html 作者:linbo.yang 1.测试计划(Test Plan)是使用 ...

  5. 新浪微博API使用初步介绍——解决回调地址的问题

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #新浪微博API使用初步介绍——解决回调地址的问题 #http://blog.csdn.net/monsion ...

  6. Jmeter的简单介绍

    Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测 试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件 ...

  7. Html/CSS 初步介绍html和css部分重要标签

    &初步介绍html和css部分重要标签& 注:开头书写:<!DOCTYPE html>表明对应标准html代码 先行总结重点 下方给出具体 CSS: 1. position ...

  8. Jmeter系列(2)- Jmeter工具介绍、Jmeter安装目录介绍、Jmeter面板介绍

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Jmeter支持哪些测试场景? Jme ...

  9. Jmeter系列(3)- Jmeter安装目录介绍

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Jmeter安装目录说明 bin:包含 ...

随机推荐

  1. server application error应用错误

    本地使用IIS测试ASP脚本网页,结果发现提示[Server Application Error The server has encountered an error while loading a ...

  2. RestTemplate

    RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率.调用RestTemplate的 ...

  3. ADF_Data Binding系列2_使用URL Service Data Control

    2015-02-16 Created By BaoXinjian

  4. JavaScript基本语法

    本节和CSS语法类似,理解这些语法以后,就可以按照Bootstrap的开发规范去开发自己的各种插件了. ||和&&运算符 ||表示,如果第一个元素可以转换为true,则返回第一个元素的 ...

  5. 异步数据库查询 Z

    Introduction Microsoft .NET 4.5 introduced new "async and await" methods to provide an eas ...

  6. 含大量行的订单创建时候creditlimit校验最耗时间

    含大量行的订单创建时候creditlimit校验最耗时间

  7. Visual Studio 中可执行文件中嵌入的清单文件

    概要 本分步指南介绍如何在 Microsoft Visual Studio 2005年中的可执行文件 (.exe) 文件中嵌入的清单文件.如果您要开发"认证 Windows Vista&qu ...

  8. web form 控件

    webform的简单控件1.Label:文本显示,编译后是span属性:颜色,样式,边线宽度2.Literal:纯文本显示,编译后是text 3.TextBox:文本框TextMode-密码框.文本域 ...

  9. 开发常用小demo 整理

    pc懒加载   https://github.com/ningmengxs/Lazy_loading 元素滑动 js 效果     https://github.com/ningmengxs/elem ...

  10. VC++ 用setsockopt()来控制recv()与send()的超时

    在send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,而设置收发超时控制: 以下是来自于网上一篇文章中的摘录,它是这样写的: ;//1秒, //设置发送超时 setsockopt ...