`

JMeter测试入门教程

    博客分类:
  • Test
 
阅读更多

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.html

Windowns下安装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……)等
分享到:
评论

相关推荐

    JMeter测试教程文档PDF

    【JMeter测试教程文档PDF】概述 Apache JMeter是一款强大的开源测试工具,广泛应用于软件测试领域,特别是自动化测试。它支持多种协议,如HTTP、FTP、SMTP等,使得测试人员可以对Web应用进行性能和负载测试。JMeter...

    jmeter软件ApacheJMeter_V5.4+JMeter图文入门教程(绝对的适合新手,最佳入门系列)

    jmeter软件ApacheJMeter_V5.4+JMeter图文入门教程(绝对的适合新手,最佳入门系列) apache jmeter是一款Apache组织开发的基于Java的强大的web压力测试工具,能够对电脑系统的性能和负载进行快速测试,也可以对应用...

    JMeter测试入门指导

    ### JMeter测试入门指导 #### 一、安装JMeter与设定 JMeter是一款开源的压力测试工具,主要用于对静态和动态资源进行性能测试。它能够帮助我们进行Web应用的负载测试和功能测试。JMeter可以模拟多用户并发访问,...

    JMeter测试视频教程

    课时22:2.JMeter 掌握Web Service的测试方法 课时23:JMeter-IV.ppt 课时24:1.了解Extractor元素用法 课时25:2.了解JMeter Functions 课时26:3.分布式测试环境 课时27:JMeter-V.ppt 课时28:服务器监控 课时29:利用...

    jmeter图文入门教程.pdf

    本教程为jmeter入门教程,帮助初学者了解jmeter。 jmeter是Apache软件基⾦会开源的压⼒测试⼯具,⽀持windows、linux、mac等系统,主要⽀持以下协议: web:HTTP,HTTPS 站点的Web1.0的Web 2.0 (ajax, flex and ...

    jmeter4.0进行微信小程序测试报告(jmeter性能测试教程)

    测试内容主要针对武汉天然气蓝牙卡圈存小程序,模拟真实用户并发圈存操作,以892人的实际使用规模为基础,分50人和100人两种并发场景进行测试。测试目标是验证小程序在单机部署下的最大负荷量,以及在用户量增加时的...

    jmeter的详细使用教程

    本教程旨在为初学者提供一个全面了解和掌握JMeter的平台,帮助你从零开始,逐步成为性能测试的专业人士。 **一、JMeter简介** JMeter是由Apache Software Foundation开发的一款Java应用程序,主要用于测试Web应用...

    JMeter性能测试,完整入门篇

    本文来自于csdn,文为JMeter性能测试完整入门篇,从Jmeter下载安装到编写一个完整性能测试脚本、最终执行性能测试并分析性能测试结果。ApacheJMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比...

    一款适合小白的jmeter入门使用,性能测试工具-jmeter使用教程

    jmeter 入门使用教程 jmeter 是 Apache 组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此常被用做接口功能测试和性能测试。 jmeter 能够很好地支持各种常见...

    jmeter工具使用教程

    《Jmeter测试工具培训.pdf》可能是全面的JMeter教程,涵盖基础到高级的使用技巧,包括如何创建分布式测试,以实现更大规模的并发测试,以及如何通过插件扩展JMeter的功能。 5. **JMeter培训教程** 《JMeter培训...

    jmeter压力测试课程入门到实战视频.rar

    目录 网盘文永久连接 │ ApacheCN - Elastic Kibana 5.2 中文文档 .pdf │ Elk elasticsearch课件资料.rar │ jmeter课件资料.zip ...│ └ 8、创建Jmeter测试计划,快速压测一个接口.mp4 ├ 第3章 Jmeter核心组....

    jmeter性能测试视频教程

    这个教程可能包含了从基础到高级的各种主题,包括但不限于JMeter的安装与配置、测试计划的创建、线程组和采样器的使用、监听器的配置、断言的应用以及结果分析等。 在【描述】中提到的“jmeter使用说明”,意味着...

    Jmeter性能测试高级项目实践课程资源.rar

    熟练学习Jmeter工具独立完成常见的性能测试项目熟练使用Jmeter进行脚本开发熟练使用Jmeter进行性能测试熟练使用Jmeter进行接口测试 1) 第一阶段为JMETER 5.4.1 工具使用篇,通过Jmeter 介绍和安装、http 取样器、...

    JMETER 测试webservice 接口文档,内附JMETER3.0 安装包

    【JMeter测试Web服务接口】 Apache JMeter是一款强大的性能测试工具,主要被用来对Web应用程序进行负载和压力测试。在本资源中,你将获得关于如何使用JMeter 3.0来测试Web服务接口的详细文档,这将帮助你评估接口的...

    jmeter新手入门教程

    **JMeter新手入门教程** Apache JMeter是一款强大的性能测试工具,专为Web应用程序设计,用于模拟多种并发用户负载,以测试应用服务器的性能和稳定性。本教程将引导您逐步了解如何使用JMeter进行性能测试。 ### 一...

    jmeter图文入门教程

    1.5.创建第一个JMeter测试计划 用户可以通过添加不同的组件来创建测试计划,例如添加线程组(Thread Group),配置HTTP请求采样器(HTTPRequest)来模拟用户访问特定URL的行为。 1.5.1.启动JMeter 启动JMeter后,...

    《jmeter:菜鸟入门到进阶系列》

    jmeter 入门到进阶系列教程 jmeter 是一款优秀的开源性能测试工具,目前最新版本为 3.0 版本。它具有多种优点,如高可扩展性、精心简单的 GUI 设计、完全的可移植性和 100%纯 Java 等。jmeter 的安装非常简单,只...

    用jmeter工具测试GBase数据库(csdn)————程序.pdf

    在使用JMeter测试GBase数据库之前,首先需要确保已安装Java环境,因为JMeter是基于Java的。接着,下载并解压JMeter的二进制包,启动jmeter.bat文件。启动后会看到一个控制台窗口和GUI主界面。为了提高测试效率,应当...

    Jmeter性能测试从入门到精通

    Jmeter性能测试从入门到精通视频教程下载,本课程环境基于JDK1.8,最新版JmeterV4.0,课程从基础讲起,全程以实战为基础,每个知识点通过实际项目演练讲解理论实践结合,更容易理解,就算是小白也能接受。

    Jmeter入门使用教程

    ### JMeter入门使用教程 #### 一、JMeter简介 **Apache JMeter**是一款由Apache组织开发的开源软件,主要用于压力测试。它最初被设计用于Web应用的压力测试,但随着时间的发展,其应用范围逐渐扩展到了其他的测试...

Global site tag (gtag.js) - Google Analytics