Apache Jmeter(1)

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java 对象、数据库, FTP服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

1. 下载JMeter

官方网站下载最新版本: http://jmeter.apache.org/download_jmeter.cgi ,目前最新版是Apache JMeter 2.9
使用JMeter依赖jdk,建议安装jdk 1.6版本
Linux下安装jdk参考文章:http://www.linuxeye.com/Linux/Linux-install-JDK.htmlWindowns下安装jdk同Linux下安装类似,这里就不介绍了。

2. 启动JMeter

这里就在win下进行,图形界面较为方便
在目录apache-jmeter-2.9\bin 下可以见到一个jmeter.bat文件,双击此文件,即看到JMeter控制面板。

3. 运行预准备

现在来对LinuxEye进行压力测试,压力测试对象为随机的几个网页链接,这几个链接是写在一个文本文件中的,在压力测试的时候会随机读取。
1) 建立一个线程组,如下图

为什么要建立线程组?原因很简单,因为我们要模拟多个线程(用户)来访问LinuxEye
线程属性部分中,线程数是启动多少个线程,我这里填写的是10,Ramp-Up Period (in seconds)表示线程之间间隔多少时间允许,单位是秒,比如如果填写10,那么10/10=1表示10个线程间每隔1秒钟请求网站。
循环次数:60个线程运行完毕算是一次,循环次数就是这样的一个请求过程运行多少次,我这里测试就填写的是2.
每次修改一个设置后,别忘记了保存一下。

2) 设置请求服务器、压力链接等信息
接下来很自然的是,我们要测试的网站地址是什么?链接是什么?所以现在我们就来设置这些信息。
右键点击我们刚创建的线程组,在弹出的菜单中,选择添加->Sampler->Http请求,弹出如下图界面:

路径:
假如你只是对一个链接进行压力测试,直接填写一个链接就ok,比如 http://www.linuxeye.com,但是大多数情况下都不是这样的,我们这里需要多个链接,就如同刚开始讲到的那样,我们要将多个链接保存到一个文本文件中,然后随机读取进行压力测试。我们可以这么做,如图:

在选择一个功能下拉列表中选择_StringFromFile,然后在本机新建一个测试文件C:\Users\root\Desktop\apache-jmeter-2.9\test.txt,在第一行(你也可以不在第一行)的值中填写测试文件的路径,如下图:

然后点击“生成”按钮,在生成按钮的左边文本框中将生成一个字符串如:
${__StringFromFile(C:\Users\root\Desktop\apache-jmeter-2.9\test.txt,,,)}
在test.txt测试文件中,我们每行写一个URL链接,如下格式:

/command
/linuxrumen
/program
/jianzhan
/command/cat.html
/command/chmod.html
/command/lsattr.html

注意,每行前面并没有http://www.linuxeye.com这样的信息,因为我们在前面已经填写了服务器地址为www.linuxeye.com,这里就没必要再为每个url填写这个相同前缀了;另外,上面的url格式也只是个例子,表示域名后的部分。

这样一来,当我们并非请求的时候,就会从test.txt中随机选择url来进行压力测试。
另外值得注意的一个地方是,如果参数中有中文的情况,运行的时候可能会出现乱码,这个时候就需要注意你在Jmeter中的编码设置与你要请求的网页编码是一致的。

路径文本框下面的选项,可以按默认的就成,Use multipart/form-data for HTTP POST是当请求中有附件的情况,一般情况下都不用选中的。

3) 查看运行结果
鼠标右键点击线程组,在弹出的菜单中选择添加->监听器->用表格查询结果,如下图:

4. 运行

当然,在运行前,请把所有修改都保存好
运行后的结果表格如下:

各属性如下:
Sample:每个请求的序号
Start Time:每个请求开始时间
Thread Name:每个线程的名称
Label:Http请求名称
Sample Time:每个请求所花时间,单位毫秒
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:请求的字节数
如果Status为叉,那很显然请求是失败了,但如果是勾,也并不能认为请求就一定完全成功了,因为还得看Bytes的字节数是否是所请求网页的正常大小值,如果不是则说明发生了丢包现象,也不是完全成功。

在下面还有几个参数:
样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数。
平均:每个线程请求的平均时间
最新样本:表示服务器响应最后一个请求的时间
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布(这个我不是很理解)。

术语:
1、线程组:测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。可以在“Test Plan(鼠标右击) -> 添加  ->Threads(Users) -> 线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。
2、取样器(Sampler):可以认为所有的测试任务都由取样器承担,有很多种,如:HTTP请求。
3、断言:对取样器返回的请求结果给出判断是否正确。
4、monitor:它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等

时间: 2024-11-05 11:52:28

Apache Jmeter(1)的相关文章

Apache Jmeter(2)

上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测试目标网站是fnng.cnblogs.com  和 tt-topia.rhcloud.com 2)测试目的是该网站在负载达到20 QPS 时的响应时间. QPS 解释 QPS : Query Per Second 每秒查询率.是一台查询服务器每秒能够处理的查询次数.在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量. 为了达成

apache服务(二)

####apache服务(二)####1.网页重写与虚拟主机的https[[email protected] html]# cd /etc/httpd/conf.d/[[email protected] conf.d]# firewall-cmd --permanent --add-service=http      success[[email protected] conf.d]# firewall-cmd --permanent --add-service=httpssuccess[[em

11.6 MariaDB安装;11.7 Apache安装(上)11.8 Apache安装(中)11.9 Apache安装(下)

11.6 MariaDB安装 1. 进入下载安装包目录: [[email protected] ~]# cd /usr/local/src 2. 下载mariadb安装包: [[email protected] src]# wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz 3. 解包

搭建LMAP架构之 Apache配置(上篇)

搭建LMAP架构之 Apache配置(上篇) [TOC] 文章目录 一.LAMP的概述 1.1.什么是LAMP ? 1.2.LAMP 架构平台的构成组件 二.搭建LAMP的准备工作 2.1.安装包的下载 2.2.远程挂载 三.安装Apache 四.总结 一.LAMP的概述 1.1.什么是LAMP ? LAMP 架构是成熟的企业网站应用模式之一,能够协同工作的一套系统及相关软件,能够提供动态 Web 站点服务及其应用开发环境. LAMP 是一个缩写词,L:Linux操作系统,A:Apache网站服

jmeter(三)压力测试之传输json类型参数

下午有空,工作上的会员注册的并发暂时告一段落,就写写这次并发测试中遇到的一些问题以及解决方案吧...... 上一篇随便说了怎样使用jmeter向服务器传输xml格式的文件,这篇,就说说怎么传输json数据... 首先还是启动jmeter,建立一个测试计划 这里再次说说怎么安装和启动jmeter吧,昨天下午又被人问到怎样安装和使用,我也是醉了:在我看来,百度能解决百分之八十的问题,特别是基础的问题... 安装:去官网下载一个安装包,官网地址:jmeter.apache.org(Windows系统下

jmeter(七)函数

JMeter函数是一些能够转化在测试树中取样器或者其他配置元件的域的特殊值.一个函数的调用就像这样:${_functionName(var1,var2,var3)},-functionName匹配函数名,圆括号内设置函数的参数,例如${_time(YMD)}实际参数因函数而不同.不需要参数的函数使圆括号内为空,例如${_theadNum}. Jmeter函数有两种函数:自定义静态值(或者变量)和内置函数. 自定义静态值允许当一个测试树编译并且提交运行时自定义变量被它们的静态值代替.这个替代在测试

JMeter学习笔记——认识JMeter(1)

拿到一个自动化测试工具,我们第一步就应该了解它能提供我们哪方面的功能(最直接的方法就是从官网获取),接下来就是简单的对这个工具进行“功能测试”了,当然这里的功能测试不是让你找它存在的bug,而是让自己对它有一个直观的认识,后面的功能测试也是为前面的认识做铺垫的,那我们就依赖这个原则来认识下JMeter. JMeter是干嘛的(主要是官网翻译——> http://jmeter.apach.org) JMeter是一个纯粹的Java编写的应用程序,它主要是用来进行负载和性能测试.设计JMeter最初

jmeter(一)基础介绍

周末无事,就整理下关于性能测试工具——jmeter的一些介绍以及使用.学习的资料,是参考大神段念的<软件性能测试与案例剖析>,主要还是将知识点整理成一个类似于概论的东西,方便自己学习记录 关于jmeter分类里面的随笔,和性能测试分类里面的内容相辅相成,可以参考,如有错,希望看到的童鞋提出来,不胜感激 顺带推荐一本书<零成本实现web性能测试——基于Apache—jmeter>,作者是平安的某位测试经理,主要都是一些关于jmeter的实战使用,想学习的可以去看看... jmeter

【jmeter(1)】jmeter的安装和基本使用

本篇文章主要介绍一下JMeter的安装及基本使用方法. 1.安装 JMeter的官方网址为http://jmeter.apache.org/ 下载地址为http://jmeter.apache.org/download_jmeter.cgi 在安装jmeter之前应该先安装jdk 主界面如图所示 2.基础知识 程序运行以后,我们可以看到,JMeter是以测试计划的形式组织测试的.在测试计划上点击右键,选择"添加",我们可以看到,JMeter主要包含了以下内容的组件: 线程组(Threa