JMeter入门教程详解
简介
这边文章是一菲专门写给想了解性能测试和JMeter的小白,适合对这两者了解很少的朋友们,如果已经有使用经验的请绕道,别浪费时间。
下面我们将介绍JMeter的使用场景,如何安装、运行JMeter,以及开始一个最最简单的测试。你还徘徊在JMeter的门口吗?相信我,跟着本文做完,你就可以开启你的JMeter之旅了。
JMeter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能。近来,JMeter因为其使用简单,现在也被社区作为接口测试工具… 啥?什么是性能测试,怎么又来了个接口测试?
在这里一菲举个例子,你开了一个网店,兴冲冲地准备双十一大干一把,没想当天活动的时候大量用户一访问你的网店,你的网店挂了,那怎么办?办法就是在实际搞活动之前,先测试一下以确认系统能承受那么多的用户,当然测试的时候我们不需要请真正的这么多实际用户,否则得花多少钱啊,JMeter就是那个能帮助模拟大量用户访问你网站的一个软件。对,而且它是开源的,不花钱!那个接口测试呢,这里大概了解一下就可以了,就是验证你的网店应用逻辑有没有问题的,比如你做打折活动的时候,结算的时候金额别出错,要不客户找你麻烦不是?
一.JMeter下载和安装
JMeter可以在JMeter的官方网站下载,下载链接如下图所示,xmeter君写本文的时候(2016/11)可以下载到的最新的版本是3.0,
下载后解压到你系统下的任意目录,我们称该目录为%JMETER_HOME%,然后运行%JMETER_HOME%\bin\jmeter.bat文件,怎么样,JMeter出来了吗?嗯!?等等,好像报错了。仔细看一下报错原因,原来是Java没安装,因为JMeter是用Java写的,运行的时候需要Java …不对啊,xmeter君,我这里好像已经看到JMeter的界面了 – 当然咯,恭喜你,这是因为你之前已经安装了Java了,就跳过下一步吧。
一.安装Java
安装之前先下载其安装包,这里是下载地址。打开页面后,按序点击下列所示的链接,xmeter君写本文的时候,Java的最新版本是8。
进入下一个页面后,按序点击如下所示开始下载,当然,下载的文件需要跟你的系统对应,如果是Linux请下载相关的Linux版本,xmeter君用的是Windows 64位版的Java。
下载完毕之后运行exe文件,按照向导提示安装完Java。再次运行%JMETER_HOME%\bin\jmeter.bat,如果都安装对了的话就应该能出现JMeter的运行界面了。
二.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请求” Sampler的属性,如下所示:
1.名称:输入“百度”,就是被测试网页的描述性文字
2.服务器名称或IP:被测服务器的网站名字,也可以是IP地址。剩下的属性可以按照被测系统的属性按需配置,现在都可以为空。
现在的测试脚本已经可以运行了,先点击下面如图所示的第一步:点击保存脚本按钮;然后点击如图所示的第二步:点击运行测试按钮。
等等,xmeter君,为什么我的测试跑完了没啥反应?嗯,其实测试已经跑完了,你可以去“选项” > “Log Viewer”看看运行的日志。如果你还是看不到日志,你可以点击下面所示的三角箭头展开或者收起日志视图。日志视图中可以看到“线程组 1-1”的启动和结束时间,表明测试已经跑完。
这JMeter运行看着也太不直观了吧?那如果我的测试有问题了,怎么发现啊?别着急,JMeter提供了“监听器”让用户来观察测试结果。
添加结果监听器
如下图所示,右击“线程组” > “监听器” > “察看结果树”来查看性能测试过程中请求和响应信息。添加完毕后,保存测试脚本,再次运行。
运行测试完毕之后,点击“察看结果树” > “百度”,点击下图中3所示位置,你可以看到一些测试期间一些有用的信息,比如发送的请求的信息和响应数据等。接下来可以试着改一下“线程组”里的“线程数”为10,就是模拟10个用户访问。别改太大哦,否则小心度娘把你的IP地址给封了
JMeter入门教程详解相关推荐
- python入门教程pdf-Python入门教程详解.pdf
您所在位置:网站首页 > 海量文档  > 计算机 > Python Python入门教程详解.pdf132页 本文档一 ...
- vue 单相绑定_Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)...
Vuejs第一篇之入门教程详解(单向绑定.双向绑定.列表渲染.响应函数) 2018-12-30 什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素 ...
- k8s入门教程详解(一)
文章目录 Kubernetes 入门教程详解(一) 一. Kubernetes 概述 1. K8S 发展历史由来 2.K8S官网 2.K8S 是什么 3. K8s 优势及特点 3.1 K8S优势 3. ...
- Python入门教程详解
Python入门教程 目录 1. 简介 2. 安装 3. 基本语法 4. 数据类型 5. 条件语句 6. 循环 7. 函数 8. 模块 9. 异常处理 10. 文件输入输出 1. 简介 Python是 ...
- keyshot9怎么导入材质_keyShot 9如何使用?keyshot 入门教程详解
KeyShot 9 Pro for Mac是应用在Mac上的一款3D渲染和动画制作软件,从科学上准确的材料和环境预设到高级材料编辑和动画,创建交互式产品视觉效果或销售和营销图像从未如此简单. macw ...
- MindManager2020版本入门教程详解
MindManager是一款创造.管理和交流思想的思维导图软件,其直观清晰的可视化界面和强大的功能可以快速捕捉.组织和共享思维.想法.资源和项目进程等等.MindManager新手入门教程专为新手用户 ...
- 2022年最新C#入门教程详解
C# 简介 C# 是一个面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的.C# 是专为公共语言基础结构(CLI)设计的.CLI 由可执行代码和运行时环境 ...
- KeyShot 9如何使用?keyshot 入门教程详解
KeyShot 9 Pro for Mac是应用在Mac上的一款3D渲染和动画制作软件,从科学上准确的材料和环境预设到高级材料编辑和动画,创建交互式产品视觉效果或销售和营销图像从未如此简单. macw ...
- YOLOv7(目标检测)入门教程详解---环境安装
目录 一.前言 二.yolov7环境搭建 直接进入正题,环境搭建开始: Anaconda: Pycharm: cuda: cuda安装: cudnn: 三.虚拟环境安装 创建虚拟python环境: P ...
最新文章
- centos下axel安装与使用
- Swift 面向对象
- 关于Tomcat安装过程中出现的一些问题...
- VC++中字符串编码处理的一些相关问题
- 飞在空中的仓库再配合无人机送货,沃尔玛新专利厉害了
- ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First
- java反射的field.get(null)
- 第九节: 利用RemoteScheduler实现Sheduler的远程控制
- mysql乐观锁与事务_[数据库事务与锁]详解七: 深入理解乐观锁与悲观锁
- 如何设置jquery的ajax方法为同步
- 详细的redis操作介绍
- python——问题解决:读取excel文件字符串,写入txt时乱码
- 白话isEqual和hash的关系
- 华为发布八核处理器Kirin 920
- 加法器的实现(半加器,全加器,行波进位加法器,超前进位加法器,流水线加法器)
- 论文笔记——基于多传感器融合的定位建图及导航研究
- jq分页 不刷新页面_jquery实现无刷新分页,跳转
- c语言将元年1月1日起的天数转化成日期,不用循环和数组
- CIR、CBS、EBS、PIR、PBS的含义
- java版商城源码之聚合支付Spring Cloud+Spring Boot+mybatis+security+uniapp+Redis+MQ+VR全景+b2b2c多商家入驻前后端分离
热门文章
- RT-Thread内核实现的思维导图——线程调度器
- 在磨金石教育学室内设计靠谱吗?学费贵吗?老师负责吗?
- angular-详细信息-页面折叠状态
- 【MM小贴士】SAP工序外协初探
- Android Studio 用USB连接到真机调试方法
- Java给图片添加文字,水印,文件或者http图片地址,可消除文字锯齿
- vanilla js_用Vanilla js编写前端组件
- 【2018最新VR眼镜排行榜】VR眼镜有哪些品牌?哪个VR眼镜性价比高,比较好?求推荐
- 计算机中专升大专难不难,自考大专难吗?
- 当内嵌图层有图层样式时,如何在其上边创建图层剪切蒙版