转载:JMeter压力测试入门教程[图文]

JMeter压力测试入门教程[图文]

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链接,如下格式:

  1. /command
  2. /linuxrumen
  3. /program
  4. /jianzhan
  5. /command/cat.html
  6. /command/chmod.html
  7. /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-12-28 01:32:55

转载:JMeter压力测试入门教程[图文]的相关文章

JMeter压力测试入门教程[图文]

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

APP压力测试入门教程

? Daniel Knott 用过各种不同编程语言和软件质量保证工具.他在软件开发和测试方面干了七年,自2010年,他一直在德国汉堡的XING AG公司就职,几个项目里,比如XING调查和XING建议,他负责测试管理,测试自动化和测试执行.Daniel现在是XING移动和XING API团队的质量保证团队领导.在XING移动团队里,他还是负责XING安卓和iPhone Apps的测试管理和测试自动化.Daniel在包括像Robotium, KIF (Keep It Functional), Se

Jmeter压力测试简单教程(包括服务器状态监控)

前段时间公司需要对服务器进行压力测试,包括登录前的页面和登录后的页面,主要目的是测试负载均衡的实现效果.不知道是不是因为Jmeter不如loadRunner火爆还是什么,网上关于Jmeter的资料有很多但是大多千篇一律,要么简单弄个页面测试一下,要么全篇都是介绍很多和Jmeter无关的第三方工具,看起来很专业高深,但是作为测试小白来说,看到这样的东西确实头疼.我只是想好好了解一下Jmeter的使用啊,能不能完整的介绍一下啊?我不需要了解那么多其他的第三方工具啊?能不能截个图说的清楚一点啊?这个步

非GUI JMETER压力测试

修改E:\Program Files\jmeter\apache-jmeter-4.0\bin目录下的user.properties文件 jmeter.save.saveservice.output_format=csv 准备好压力测试的脚本,新建存放jtl报告和web报告的目录,确保每次执行脚本前result和webreport下为空 非GUIjmeter实现步骤: cmd切换目录 e: cd E:\Aresource\jmeter\pressure 在此目录下执行脚本,生成的jtl和网页版的

【转载】Lucene.Net入门教程及示例

本人看到这篇非常不错的Lucene.Net入门基础教程,就转载分享一下给大家来学习,希望大家在工作实践中可以用到. 一.简单的例子 //索引Private void Index(){    IndexWriter writer = new IndexWriter(@"E:\Index", new StandardAnalyzer());    Document doc = new Document();    doc.Add(new Field("Text",&qu

软件测试之Jmeter压力测试

1. 实验要求实验目的安装虚拟机,并安装一套LAMP(Linux+Apache+Mysql+PHP)待测系统,推荐ECShop(http://www.ecshop.com),基于此进行Jmeter压力测试,并在测试后得出Jmeter测试报告,并根据sysstat得出Linux服务器的CIMN(CPU.IO.Memory以及Network)的性能. 1.  实验内容 实验步骤 (1)  安装centos7 Linux系统 (2)  安装xampp(lampp)linux版本 (3)  安装ecsh

Android渗透测试Android渗透测试入门教程大学霸

Android渗透测试Android渗透测试入门教程大学霸 第1章  Android渗透测试 Android是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机.平板等.目前,大部分用户都使用的是Android系统的手机.所以,学习Android渗透测试是非常重要的.用户通过对自己的Android设备进行渗透测试,可以评估自己的系统是否安全,或者是否存在有漏洞等.本章将介绍Android渗透测试的基础知识本文选自Android渗透测试入门教程大学霸内部资料. 1.1  

软件测试第三次上机——jmeter压力测试

整体目标: 安装虚拟机,并安装一套LAMP(Linux+Apache+Mysql+PHP)待测系统,推荐ECShop(http://www.ecshop.com),基于此进行Jmeter压力测试,并在测试后得出Jmeter测试报告,并根据sysstat得出Linux服务器的CIMN(CPU.IO.Memory以及Network)的性能. 队员分工: 角色1:安装LAMP:Linux服务器(Centos).Apache及PHP 角色2:安装MySQL及ECShop(或类似B/S结构的系统) 角色3

JMeter压力测试,http请求压测,5分钟让你学会如何压测接口!

JMeter压力测试 官网:https://jmeter.apache.org 最新款的jmeter需要java8的支持,所以请自行安装jdk8.这里就不啰嗦了. 可以根据自己的系统下载zip或者是tgz格式的包.下载后就解压出来,找到bin目录,它的启动和配置文件都在这个目录 进入之后,只需要双击适合自己系统的启动文件,就可以运行jmeter,是不是很简单.(前提是你要装好jdk8,可以用命令 java -version 来看一下有没有安装好) 这个Test Plan就是你的测试计划,可以理解