作者 | XMeter性能测试云服务

来源 | www.jianshu.com/p/0e4daecc8122

1. 简介

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

JMeter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能。近来,JMeter因为其使用简单,现在也被社区作为接口测试工具...... 啥?什么是性能测试,怎么又来了个接口测试?好吧,xmeter君举个栗子,你开了一个网店,兴冲冲地准备双十一大干一把,没想当天活动的时候大量用户一访问你的网店,你的网店挂了,那怎么办?

如果您正在学习Spring Boot,推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/

办法就是在实际搞活动之前,先测试一下以确认系统能承受那么多的用户,当然测试的时候我们不需要请真正的这么多实际用户,否则得花多少钱啊,JMeter就是那个能帮助模拟大量用户访问你网站的一个软件。对,而且它是开源的,不花钱!那个接口测试呢,这里大概了解一下就可以了,就是验证你的网店应用逻辑有没有问题的,比如你做打折活动的时候,结算的时候金额别出错,要不客户找你麻烦不是?

2. 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未安装错误

3. 安装Java

安装之前先下载其安装包,这里是下载地址。打开页面后,按序点击下列所示的链接。

Java下载地址

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

下载Java的链接

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

JMeter 3.0运行界面

4. JMeter之初体验

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

如果您正在学习Spring Boot,推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/

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,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。如果选中“永远”,则意味着测试运行起来之后就根本停不下来了,除非你把它强制咔嚓。

线程组的设置

6. 添加被测页面

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

添加“HTTP请求”

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

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

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

设置HTTP请求的属性

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

保存与运行测试

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

测试日志视图

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

另外,如果您正在学习Spring Cloud,推荐一个连载多年还在继续更新的免费教程:https://blog.didispace.com/spring-cloud-learning/

7. 添加结果监听器

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

添加查看结果树

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

察看结果树截图

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

往期推荐

程序员的“鱿鱼游戏”,你能活到第几关?

大名鼎鼎的 OceanBase 居然在买Star !?

支付宝员工因绩效3.25B被辞退,员工告上法院,结果来了!

为什么 JSP 还没有被淘汰?

理工男有多香?一张桌子、一条视频,股价狂涨13.51%!网友:我看到了乔布斯!

技术交流群

最近有很多人问,有没有读者交流群,想知道怎么加入。加入方式很简单,有兴趣的同学,只需要点击下方卡片,回复“加群“,即可免费加入我们的高质量技术交流群!

点击阅读原文,送你免费Spring Boot教程!

一文带你入门 JMeter 性能测试!相关推荐

  1. 一文带你入门go语言

    一文带你入门go语言 go/golang是一门google开发的编程语言,其代码简洁易读,天生支持并发,完美契合当今互联网生态. 目前Go语言已经⼴泛应用于人工智能.云计算开发.容器虚拟化.⼤数据开发 ...

  2. 一文带你入门flink sql

    文章目录 一文带你入门flink sql 写在前面 环境准备 正文 遇到的一些问题 错误一 错误二 错误三 一文带你入门flink sql 写在前面 本次实战主要是通过Flink SQL Client ...

  3. java etl工具_一文带你入门ETL工具-datax的简单使用

    什么是ETL? ETL负责将分布的.异构数据源中的数据如关系数据.平面数据文件等抽取到临时中间层后进行清洗.转换.集成,最后加载到数据仓库或数据集市中,成为联机分析处理.数据挖掘的基础. ETL是数据 ...

  4. 一文带你入门Redis

    文章目录 1 课程安排 2 课程目标 3 redis介绍 3.1 什么是NoSQL 3.2 redis历史发展 3.3 什么是redis 3.4 redis的应用场景 4 测试环境 4.1 虚拟机 4 ...

  5. 【OpenCV教程】一文带你入门和精通OpenCV(C/C++)

    文章目录(OpenCV版本4.6.0) 1.数据类型 2.矩阵基本操作 2.1 全零矩阵 2.2 全一矩阵 2.3 单位矩阵 2.4 矩阵转置 2.5 求逆矩阵 2.6 逗号式分隔创建矩阵,常用于自定 ...

  6. 「修炼开始」一文带你入门深度学习

    来源 | Jack Cui 责编 | Carol 封图 | CSDN下载自视觉中国 前言 图解 AI 算法系列教程,不仅仅是涉及深度学习基础知识,还会有强化学习.迁移学习等,再往小了讲就比如拆解目标检 ...

  7. 一文带你入门图论和网络分析(附Python代码)

    作者:Srivatsa 翻译:和中华 校对:丁楠雅 本文约6300字,建议阅读20+分钟. 本文从图的概念以及历史讲起,并介绍了一些必备的术语,随后引入了networkx库,并以一个航班信息数据集为例 ...

  8. 转载:一文带你入门统计学(附资源)

    本文共3559字,建议阅读7分钟. 本文介绍了统计学两大学派:频率学派和贝叶斯学派的基本观点,一起来看看大咖是如何讲解统计学术语的. 假设检验,P值,显著性水平,置信区间,功效分析到底是什么呢?这里有 ...

  9. 一文带你入门目前大热的图神经网络

    点击我爱计算机视觉标星,更快获取CVML新技术 深度学习一直都是被几大经典模型给统治着,如CNN.RNN等等,它们无论再计算机视觉CV还是自然语言处理NLP领域都取得了优异的效果. 针对CV领域,图像 ...

最新文章

  1. 9.spark core之共享变量
  2. SQL SERVER特殊行转列案列一则
  3. Linux学习笔记 Day 4~5
  4. PHP验证码相关函数
  5. JVM内存区域(运行时数据区)划分
  6. 数字图像基础,分辨率
  7. 9.proc目录下的文件和目录详解
  8. 2-Second Scrum Meeting-20151202
  9. 二级计算机access押题,全国计算机等级考试标准教程:二级Access
  10. 新买电脑用户配置文件错误原因_电脑键盘与鼠标同时失灵怎么办
  11. [专栏精选]UnityWebRequest详解
  12. 【甘道夫】HBase基本数据操作的详细说明【完整版,精绝】
  13. 黑客是否可以攻击被拔掉网线的电脑?
  14. Veeam 数据备份解决方案修复多个严重漏洞
  15. ZStack 3.6.0发布:支持云主机从KVM云平台在线迁移至ZStack
  16. 2019年1月份整理的Unity3D游戏完整源码
  17. 提升C4D工作效率的30个快捷键
  18. 前端使用UtoVR Player全景视频播放器实现360°C全景VR视频
  19. mysql一条sql是一个事物么_mysql 事物浅析
  20. 【无标题】.Net Core 6.0 WebApi 远程部署到Server2016

热门文章

  1. 老婆最近陷入苦恼,连续几个晚上都没睡好
  2. 机器学习之Ensemble(Bagging、AdaBoost、GBDT、Stacking)
  3. 集成学习05-Bagging
  4. python开发跟淘宝有联系没_淘宝 python镜像
  5. 汇编中.word的具体用途
  6. 买入苹果公司股票的三个理由
  7. tensorflow——cifar10 样例解析
  8. 小程序调用打电话功能
  9. 前端基础建设与架构11 Tree Shaking:移除 JavaScript 上下文中的未引用代码
  10. 你还认为JS中万物皆对象?