JMeter 做性能测试,YYDS!

news2024/9/20 16:42:47

2. JMeter下载和安装


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

下载后解压到你系统下的任意目录,我们称该目录为%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分钟之内完成一次测试体验。

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提供了“监听器”让用户来观察测试结果。

7. 添加结果监听器


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

添加查看结果树

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

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

应数据等。接下来可以试着改一下“线程组”里的“线程数”为10,就是模拟10个用户访问。别改太大哦,否则小心度娘把你的IP地址给封了 😃

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/62027.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Dart语言简介

简单介绍Dart语言 Dart是一种针对客户优化的语言,亦可在任何平台上快速开发的应用陈旭。 目标是为多平台开发提供最高效的变成语言,并为应用程序框架搭配了领会的运行时执行平台。 Dart特点 Dart语言 类型安全,使用静态型检查来确保变量的…

Linux命令之常用基础命令备查手册

一、前言 家里领导因公司系统部署国产化发展趋势,需要学习Linux。作为Linux初学者,希望能有一篇博文提供学习快速学习和掌握Linux系统的常用基础命令。为了满足领导要求,特编写此博文,尽量将常用Linux命令囊括进来,以示…

基于ssm的宠物商城网站设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

HTML5期末大作业:基于HTML+CSS+JavaScript实现中国风文化传媒企业官网源码

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

【一条命令搞定rabbitmq的安装与配置】

提示:宝塔面板安装docker/docker-compose,一条命令搞定rabbitmq的安装与配置 文章目录前言一、docker-compose.yml配置二、安全组规则添加端口三、通过浏览器访问rabbitmq的管控页面总结前言 已经安装好了宝塔面板、并且可以在Docker栏目,选…

[附源码]计算机毕业设计物业管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

微服务框架 SpringCloud微服务架构 16 SpringAMQP 16.2 入门案例的消息发送

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构16 SpringAMQP16.2 入门案例的消息发送16.2.1 直接开干16.2.2 总结16 Spri…

八股文之算法

文章目录剑指offer链表1 从尾到头打印链表方案一:非递归方案二:递归方案三:普通数组存储方案三:递归2 链表反转方案一:使用栈解决方案二:双指针迭代方案三:递归3 反转链表一部分方法一&#xff…

Android 基础知识3-4 Activity的声明周期

引言: 在前面的几个例子中,我们发现所有集成Activity的类都重写了onCreate方法,程序运行就会自动进入这个方法。其实Activity类中还有很多类似onCreate的方法,比如onStart、onReaume、onPause、onDestroy等,而这些方法…

[黑马程序员C++笔记]P168-P173模板-函数模板

视频地址:黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili 目录 P167模板-模板的概念 P168模板-函数模板的基本语法 P169模板-函数模板的注意事项 P170模板-函数模板案例-数组排序 P171模板-普通函数与函数模板的区别 P172模板-普通…

Android 接口的default 方法运行时报错AbstractMethodError

【问题描述:接口default方法AbstractMethodError】 记录一个Android项目中遇到的问题,我们通过exclude方式重写了一个依赖,改用本地的实现,其中一个接口的default 方法,在运行时报错:AbstractMethodError&…

Mysql之存储引擎

目录 一、存储引擎概念 二、MyISAM的特点介绍 三.InnoDB特点 对比InnoDB和MyISAM 死锁 查看系统支持的存储引擎 查看表的使用存储引擎 修改存储引擎 一、存储引擎概念 MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧…

sql serve数据库基础入门(2)

前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>: 在上一篇的最后,牛牛介绍了怎么创建表,本篇牛牛介绍如…

【华为上机真题 2022】拼接URL

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

Android-Jetpack Compose的简单运用

一.初步认识Jetpack Compose 1.什么是Jetpack Compose Jetpack Compose 是一个用于构建原生Android UI 的现代化工具包,它基于声明式的编程模型,因此你可以简单地描述UI的外观,而Compose则负责其余的工作-当状态发生改变时,你的…

端口转发工具Rinetd详细入门教程

目录 条件 下载 安装 方法A.shell安装 方法B.shell脚本安装 配置rinetd.conf文件 编辑器A:nano(新手友好) 编辑器B:vim rinetd开关 A.配置启动 B.脚本启动 创建脚本 启动 测试 参考链接 条件 有root权限rinetd.c…

HTML+CSS抗疫网页设计 疫情感动人物静态HTML网页 web前端开发技术 web课程设计 网页规划与设计

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

基于X86的运算板卡加速边缘智能应用

XM-SOM-6801是一款基于Haswell-M平台的标准COME TYPE6模块。它是标准的COME TYPE6的规格,尺寸仅有125mm95mm。该模块汇集了Haswell-M平台高中低三档的CPU,分别是I7-4900MQ/I5-4300M/I3-4100M CPU。该CPU具有强大的运算能力,可广泛应用于通信、…

[附源码]Python计算机毕业设计SSM敬老院信息管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]计算机毕业设计小区疫情事件处理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…