JMeter入门教程

作者: XMeter性能测试云服务 | 来源:发表于2016-11-01 21:56 被阅读36556次

本文版权归xmeter.net所有。欢迎转载,转载请注明出处。

简介

本文由xmeter君写给想了解性能测试和JMeter的小白,适合对这两者了解很少的同学们,如果已经有使用经验的请绕道,别浪费时间:-)  我们将介绍JMeter的使用场景,如何安装、运行JMeter,以及开始一个最最简单的测试。你还徘徊在JMeter的门口吗?别犹豫了,跟着本文做完,你就可以开启你的JMeter之旅了。

JMeter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能。近来,JMeter因为其使用简单,现在也被社区作为接口测试工具...... 啥?什么是性能测试,怎么又来了个接口测试?好吧,xmeter君举个栗子,你开了一个网店,兴冲冲地准备双十一大干一把,没想当天活动的时候大量用户一访问你的网店,你的网店挂了,那怎么办?办法就是在实际搞活动之前,先测试一下以确认系统能承受那么多的用户,当然测试的时候我们不需要请真正的这么多实际用户,否则得花多少钱啊,JMeter就是那个能帮助模拟大量用户访问你网站的一个软件。对,而且它是开源的,不花钱!那个接口测试呢,这里大概了解一下就可以了,就是验证你的网店应用逻辑有没有问题的,比如你做打折活动的时候,结算的时候金额别出错,要不客户找你麻烦不是?

JMeter下载和安装

JMeter可以在JMeter的官方网站下载,下载链接如下图所示,xmeter君写本文的时候(2016/11)可以下载到的最新的版本是3.0,

JMeter下载

下载后解压到你系统下的任意目录,我们称该目录为%JMETER_HOME%,然后运行%JMETER_HOME%\bin\jmeter.bat文件,怎么样,JMeter出来了吗?嗯!?等等,好像报错了。仔细看一下报错原因,原来是Java没安装,因为JMeter是用Java写的,运行的时候需要Java ......不对啊,xmeter君,我这里好像已经看到JMeter的界面了 -- 当然咯,恭喜你,这是因为你之前已经安装了Java了,就跳过下一步吧。

Java未安装错误

安装Java

安装之前先下载其安装包,这里是下载地址。打开页面后,按序点击下列所示的链接,xmeter君写本文的时候,Java的最新版本是8。

Java下载地址

进入下一个页面后,按序点击如下所示开始下载,当然,下载的文件需要跟你的系统对应,如果是Linux请下载相关的Linux版本,xmeter君用的是Windows 64位版的Java。

下载Java的链接

下载完毕之后运行exe文件,按照向导提示安装完Java。再次运行%JMETER_HOME%\bin\jmeter.bat,如果都安装对了的话就应该能出现JMeter的运行界面了。

JMeter 3.0运行界面

JMeter之初体验

JMeter安装完了,那我们来一个简单的实验。性能测试当然得有个测试目标,就是被测系统是什么,xmeter君这里就以测度娘为例来描述构造一个简单的性能测试过程:xmeter君保证你在5分钟之内完成一次测试体验。

添加虚拟用户组

如下图所示,右击“测试计划”>添加>Threads(Users)>线程组。这里xmeter君需要解释一下“线程组”的意思:JMeter是由Java实现的,并且使用一个Java线程来模拟一个用户,因此线程组(Thread Group)就是指一组用户的意思,换句话说一个线程组就是一组虚拟用户(virtual users),这些虚拟用户用来模拟访问被测系统。

新建线程组

接下来xmeter君给大家介绍下“线程组”中常用到的一些设置。

1)线程数:这里就是指虚拟用户数,默认的输入是“1”,则表明模拟一个虚拟用户访问被测系统,如果想模拟100个用户,则此处输入100。

2)Ramp-Up Period (in seconds): 虚拟用户增长时长。不明白别着急,xmeter君给你举个栗子:比如你测试的是一个考勤系统,那么实际用户登录使用考勤系统的时候并不是大家喊1、2、3 - 走起,然后一起登录。实际使用场景可能是9点钟上班,那么从8:30开始,考勤系统会陆陆续续有人开始登录,直到9:10左右,那么如果完全按照用户的使用场景,设计该测试的时候此处应输入40(分钟)* 60(秒)= 2400。但是实际测试一般不会设置如此长的Ramp-Up时间,原因嘛,难道你做一次测试要先等上40分钟做登录操作?一般情况下,可以估计出登录频率最高的时间长度,比如此处可能从8:55到9:00登录的人最多,那这里设置成300秒,如果“线程数”输入为100,则意味着在5分钟内100用户登录完毕。

3)循环次数:该处设置一个虚拟用户做多少次的测试。默认为1,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。如果选中“永远”,则意味着测试运行起来之后就根本停不下来了,除非你把它强制咔嚓。

线程组的设置

添加被测页面

接下来的一步就是要加入实际被测页面,右击“线程组” > “添加” > “Sampler” > “HTTP请求”。

添加“HTTP请求”

接下来需要设置一下“HTTP请求” Sampler的属性,如下所示:

1)名称:输入“百度”,就是被测试网页的描述性文字

2)服务器名称或IP:被测服务器的网站名字,也可以是IP地址。剩下的属性可以按照被测系统的属性按需配置,现在都可以为空。

设置HTTP请求的属性

现在的测试脚本已经可以运行了,先点击下面如图所示的第一步:点击保存脚本按钮;然后点击如图所示的第二步:点击运行测试按钮。

保存与运行测试

等等,xmeter君,为什么我的测试跑完了没啥反应?嗯,其实测试已经跑完了,你可以去“选项” > “Log Viewer”看看运行的日志。如果你还是看不到日志,你可以点击下面所示的三角箭头展开或者收起日志视图。日志视图中可以看到“线程组 1-1”的启动和结束时间,表明测试已经跑完。

测试日志视图

这JMeter运行看着也太不直观了吧?那如果我的测试有问题了,怎么发现啊?别着急,JMeter提供了“监听器”让用户来观察测试结果。

添加结果监听器

如下图所示,右击“线程组” > “监听器” > “察看结果树”来查看性能测试过程中请求和响应信息。添加完毕后,保存测试脚本,再次运行。

添加查看结果树

运行测试完毕之后,点击“察看结果树” > “百度”,点击下图中3所示位置,你可以看到一些测试期间一些有用的信息,比如发送的请求的信息和响应数据等。接下来可以试着改一下“线程组”里的“线程数”为10,就是模拟10个用户访问。别改太大哦,否则小心度娘把你的IP地址给封了 :-)

察看结果树截图

好啦,至此为止,你已经学会了写一个最简单的JMeter的性能测试用例。怎么样,够简单吧!

更多JMeter在线知识(视频、文章等)

当然咯,xmeter君在这篇文章里只是介绍了最简单的JMeter知识,如果要完成一个比较专业的性能测试用例还需要对性能测试过程用到的技术有系统的了解才可以。xmeter君近期将在网站上推出比较系统的性能测试培训课程,包括性能测试的基本理论、JMeter基础、JMeter高级扩展,以及云上性能测试服务 - XMeter等,敬请期待。

相关文章

网友评论

  • 乐童卡列尼娜:小白看了都说赞赞赞赞赞赞赞赞赞赞
  • d9bbdb8c7111:楼主应该是资深讲师了吧,然后性格也也活泼,通俗易懂,小白看了都说赞赞赞赞赞赞赞赞赞赞
    XMeter性能测试云服务:@骚耶 XMeter君是资深测试🐶
  • 336ad0c5ecff:写的很好,无意中看到,点赞
  • a8022c277a08:Jmeter性能测试从入门到精通(2018年最新)
    课程观看地址:http://www.xuetuwuyou.com/course/251
    课程出自学途无忧网:http://www.xuetuwuyou.com

    课程介绍
    全程实战,每个知识点通过实际项目演练讲解
    理论实践结合,既会做,又知道为什么这样做
    讲解时同其他工具做对比,加深理解,了解区别
    分享技巧,用起来事半功倍
    从基础讲起,小白也能接受

    课程目标
    熟练掌握 jmeter 工具
    熟练使用 jmeter进行脚本开发
    熟练使用 jmeter进行接口测试
    熟练使用 jmeter 进行性能测试
    熟练使用抓包工具 fiddler

    适合人群
    初级测试工程师
    零基础、初学者、想步入性能测试领域的测试人
    对jmeter性能测试感兴趣的人员
    功能测试转性能测试
    功能测试转接口测试

    课程目录:
    1:Jmeter 安装及环境配置
    2:Jmeter 目录及配置文件说明
    3:Jmeter 各大组件介绍说明
    4:实战项目环境搭建
    5:脚本录制之 badboy
    6:脚本录制之 jmeter 代理
    7:脚本录制之移动端APP录制
    8:Fiddler抓包实战
    9:移动端抓包实战
    10:脚本增强之参数化(多方式实现)
    11:脚本增强之高级参数化
    12:脚本增强之关联
    13:脚本增强之关联的高级应用
    14:脚本增强之集合点、思考时间
    15:脚本增强之断言
    16:脚本增强之逻辑控制
    17:Jmeter之IP欺骗
    18:命令行压测及生成报告
    19:Jmeter之分布式压测
    20:jmeter扩展插件
    21:自己动手开发jmeter插件
    22:FTP协议实战
    23:WebService协议实战
    24:JDBC协议实战
    25:JDBC协议实战增删改查
    26:JDBC协议实战高级操作
    27:Jmeter4.0的一些更新
  • acc626f9e420:为什么jmeter运行不起来,已经配置过环境变量了
    XMeter性能测试云服务:@夏末夜微凉_eeec 在命令行里运行这个bat,能告诉你更详细的信息
    acc626f9e420:@XMeter性能测试云服务 点击bat文件运行就闪了,什么提示都没有:sob:
    XMeter性能测试云服务:@夏末夜微凉_eeec 报什么错误?
  • b04c9af22c41:如果我们访问的http页面需要用户名密码登录,如果模拟大量用户登录此http页面呢?希望老师指点一下.
    XMeter性能测试云服务:可以使用JMeter脚本参数化的功能:就是在脚本中配置CSV Dataset Config,从文件中挨行读出用户名和密码填入请求地址就可以了。
  • b04c9af22c41:666
    简单易懂,下载地址也很清晰.赞
  • 2e4d6413bc57:按照你写的可以运行,可是测试我们自己的APP怎么测试啊?IP地址那块填写我们的服务器吗?最后的结果看不懂啊?
  • 5fbe09a59d28:不错,期待后续的性能测试分享
  • 回忆若可下酒:学习视频有地址分享吗?
  • ab5a5651f5e4:像我这么不喜欢评论的人都忍不住赞一个 666
  • b74392866e0e:楼主,写得很不错,谢谢。
  • 86732600f06a:我通过jmeter.bat运行会报jdk版本过低,我通过.jar文件可以进入节目,好像也可以正常使用,有什么区别吗,盼复
    XMeter性能测试云服务:如果能启动了问题就不大,但是使用不方便。最好你还是设置好JAVA_HOME到Java8,并把%JAVA_HOME%/bin加到系统PATH环境中
  • leilifengxingmw:通俗易懂,好文
  • walker_liu_fei:写的不错,赞一个!
  • 一苇渡江002:这篇和『XMeter性能测试简明教程』都可以算入门教程的范本。

本文标题:JMeter入门教程

本文链接:https://www.haomeiwen.com/subject/hckjuttx.html