Jmeter性能测试步骤入门

news2024/11/26 11:37:36

目录

前言:

  一、Jmeter简介

  1 概述

  2 JMeter支持的协议

  二、Jmeter实现性能测试

  第一步:配置jdk环境

  第二步:下载jmeter

  第三步:启动Jmeter

  四、一个http还除了上述http请求中的请求行和请求体,还包含请求头,如何添加请求头呢?

  五、如何添加察看结果树呢?

  六、如何运行和结果显示如图

  七、性能测试不能针对一个用户进行反复的登录吧,不符合常理和逻辑,那如何实现多个用户进行登录呢?

  八、查看结果的常用方式

  九、还可以生成测试报告


前言:

JMeter是一种常用的性能测试工具,它可以模拟大量用户并发访问应用程序,从而测试应用程序的性能和稳定性。在软件开发过程中,性能测试是一个非常重要的环节,它可以帮助我们发现应用程序存在的性能问题,以及提供关键性能指标和应用程序的性能瓶颈。

  一、Jmeter简介

  1 概述

  jmeter是一个软件,使负载测试或业绩为导向的业务(功能)测试不同的协议或技术。 它是 Apache 软件基金会的Stefano Mazzocchi JMeter 最初开发的。 它主要对 Apache JServ(现在称为如 Apache Tomcat 项目)的性能进行测试。 Apache 后来重新设计 JMeter 增强的图形用户界面和添加功能测试能力。

  以下是一些 JMeter 的特点:

  · 它是免费的、开放源码软件。

  · 它具有简单,直观的图形用户界面。

  JMeter 中负载和性能测试许多不同的服务器类型:网站 - - HTTP,HTTPS,SOAP,数据库通过 JDBC,LDAP,JMS,邮件 POP3。

  它是独立于平台的工具。在 Linux / UNIX,JMeter 中 JMeter 中 shell 脚本点击可以调用。在 Windows 上,它可以调用启动 JMeter.bat 文件。

  它具有完整的 Swing 和轻量级组件支持(预编译的 JAR 使用包 javax.swing 中*)。

  JMeter 测试计划存储为XML格式。这意味着可以使用文本编辑器生成一个测试计划。

  它的完整的多线程框架,允许并发多线程和同步采样不同的功能由单独的线程组采样。

  它是高度可扩展的。

  也可用于执行应用程序的自动化测试和功能测试。

  2 JMeter支持的协议

  web —— HTTP,HTTPS 站点的 Web1.0的Web 2.0 (ajax, flex and flex-ws-amf)

  Web Services: —— SOAP / XML-RPC

  通过 JDBC 驱动程序的数据库。

  目录: —— LDAP

  通过 JMS 面向消息的服务。

  Service: —— POP3, IMAP, SMTP

  FTP 服务

  二、Jmeter实现性能测试

  在用工具之前,首先我们来简单了解一下什么是性能测试?

  性能测试是系统在一定的负载和压力的情况下,系统的响应时间,吞吐量,稳定性,课扩展性等性能指标。也就是我们要验证系统是否在这些指标范围,或者说验证这些指标是否符合用户或客户的需求。性能指标包含系统指标和资源指标,今天我们就以用户角度去看一下如何验证系统指标?(系统指标:与用户场景和需求相关的指标,关键的一些指标包含:响应时间,吞吐量,并发用户数等)

  以下是按照中文版的jmeter进行编写的,jmeter的bin目下打开这个文件。jmeter.properties,查找language,把这个属性前面的#去掉并修改值为:zh_CN,修改后的显示 language=zh_CN。

  第一步:配置jdk环境

  如果想要使用Jmeter,那么所在机器必须配置jdk的环境变量。

  第二步:下载jmeter

  下载路径: Apache JMeter - Download Apache JMeter可以下载最新版本的jmeter。

  第三步:启动Jmeter

  一、打开bin目录,点击jmeter.bat 或cmd 输入 jmeter启动jmeter工具。

  二、选中测试计划右键new(添加)---》线程(用户)----》线程组,进行线程组的添加(在线用户数)

  (1)名称和注释任意

  (2)线程数(用户数),根据需求实际情况去添加

  (3)Rum-up(秒)几秒执行完用户数

  (4)循环次数这些用户执行多次

  三、所有的请求都在线程组的基础上进行,那么如何发起一个http请求呢?(在此之前同学们需要了解一个http请求包含哪些内容,以及响应包含哪些内容)

  选中线程组右键---》取样器---》http请求

  (1)名称和注释最好与此次请求相关,有意义

  (2)协议:http或https

  (3)服务器名称或ip:(域名或ip地址)

  (4)端口号:http是80,https 443 ,mysql 3306

  (5)请求方法(根据请求行中的方法进行填写):post

  (6)路径:资源的位置

  (7)内容编码:UTF8(如果请求中不包含中文可不写)

  (8)post请求是有请求体的,所以要填写参数:

  具体如图:

  四、一个http还除了上述http请求中的请求行和请求体,还包含请求头,如何添加请求头呢?

  如果请求头是对所有的http请求有效,那么选中线程组进行添加,请求头仅对本请求有效,那么选中http请求进行添加

  选中线程组右键--添加--配置元件--http信息头管理器(把需要的数据如图填写进来就可以)

  以上http请求数据已经准备好,可以发起这个请求了,但是我们要想看到请求的结果怎么办呢?需要添加一个察看结果树

  五、如何添加察看结果树呢?

可以选中线程组或选中请求添加,作用域不一样,选中线程组对应的作用域为这个线程组下的所有请求,而请求下的呢,仅作用域本请求,一般情况下选择线程组即可。

  选中线程组右键--添加--监听器---察看结果树

  准备好以上数据后就可以进行调试了,在结果树中查看我们请求的数据添加的是否正确和响应结果是否正确。

  六、如何运行和结果显示如图

  执行失败为红色显示,成功为绿色显示?

  (1)取样器结果:显示的是Sample的请求和响应的总体情况(包含如下内容)

  Thread Name(线程名称): 登录 1-3

  Sample Start(开始时间): 2020-03-19 16:37:03 CST

  Load time(加载时间): 33

  Connect Time(连接时间): 1

  Latency(延迟): 33

  Size in bytes(字节): 153

  Sent bytes(发送字节数):327

  Headers size in bytes: 128

  Body size in bytes: 25

  Sample Count: 1

  Error Count: 0

  Data type ("text"|"bin"|""): text

  Response code: 200

  Response message:

  HTTPSampleResult fields:

  ContentType: application/json;charset=UTF-8

  DataEncoding: UTF-8

  (2)请求:请求体和请求头

  (3)响应数据:响应体和响应头

  在调试的过程中,如果我们发起的请求失败,可以在此查看是请求数据有问题还是服务器本身的问题

  七、性能测试不能针对一个用户进行反复的登录吧,不符合常理和逻辑,那如何实现多个用户进行登录呢?

  方法一:参数化

  (1)csv参数化:选中线程组--右键添加--配置元件--csv数据文件设置(如图)

  (2)使用变量(如图)

  方法二:函数助手

  (1)Tools ---函数助手对话框或工具栏中的书

  (2)复制后,打开请求中需要使用变量的位置,在此处粘贴

  用以上两种方法之一就可以进行多用户的注册或登录了。

  可以运行一下查看结果。

  八、查看结果的常用方式

  (1)聚合报告:把所有的请求数据和系统指标结果汇总成表格查看

  选中线程组右键---监听器--聚合报告

 样本数量:3

  平均值(平均的响应时间):12毫秒

  中位数(50%的响应时间):12毫秒

  90%百分位(90%的响应时间):15毫秒

  95%百分位(95%的响应时间):15毫秒

  99%百分位(99%的响应时间):15毫秒

  最小值(用时最少的):10毫秒

  最大值(用时最多的响应时间):15毫秒

  异常(本次请求中有没有请求失败或者响应失败的数据有多少个):0

  吞吐量(每秒中处理事务的个数):4.4个

  接收/kB(每秒接收的字节数):0.65KB

  发送/kB(每秒发送的字节数):1.4KB

  (2)用表格查看结果:

  选中线程组右键---监听器--用表格查看结果(如图)

  可以查看单个请求的情况:

  (3)还可以汇总成图表的

  选中线程组右键---监听器--图形结果

  以上给大家分享了几种常用的查看结果的方式,在监听器下还有好多,有兴趣的小伙伴可以进行尝试使用,方法都是一样的

  九、还可以生成测试报告

  (1)win+R 输入cmd进入dos命令行模式下

  (2)输入:jmeter -n -t D:\work\login.jmx -l result.jtl -e -o D:\work\test ,点击回车

  -n:以非GUI形式运行

  -t:指定脚本的路径

  -l:运行后的结果的文件名

  -e:在脚本结束后生成html报告

  -o:保存HTML报告的地址

  注意:1.-l 后面跟的文件名是起的名字,该文件名不能为已经存在的名字

  2. -o 后面跟的文件夹的路径,最后指定的文件夹不能有数据,可以自己新起一个任意不存在的文件夹名

  (3)D:\work\test目录下查看index.html 文件就是生成的 测试报告。

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N4P3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=8hUKwUHn9HhVpR8qWhqfT2u-kU-3hpsF&authKey=47BBG1nwHVOka38EQeJevQFCP%2BeVEf%2Bpd8QqotS1%2FqyJdrGAo1A6%2BfS9ef3wJij2&noverify=0&group_code=574737577

 

 

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

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

相关文章

Android使用AspectJ拦截点击事件

介绍: AspectJ是一种AOP框架,它可以在编译时或运行时拦截指定的方法。在Android开发中,我们可以使用AspectJ来拦截UI事件并执行自己的业务逻辑。本文将说明如何使用AspectJ来拦截Android应用程序中的点击事件,并附有详细的代码注…

存储池和LUN

存储池是什么意思 存储池是为集体存储共享置备的存储卷的集合。这些池建立在物理存储设备的聚合上,根据资源需求进行隔离,然后由共享环境中的各种计算机或系统使用。存储池可以分为三类,每类都有不同的用途;主存储池、副本存储池和活动数据池…

618来了!看图技术如何在物流管理系统大显身手!

导读 近日,随着电商“618”购物节的临近,各大商家纷纷推出各类补贴活动刺激消费者热情。下单后,消费者的心理活动如何呢?蹲点抢到优惠券,精打细算的凑单后,终于完成付款。焦急的等待待发货的小红点跳至待收…

分享三个java低代码开发平台,每个都很能打,建议收藏!

来讲讲近期比较流行的低代码开发平台一词。低代码的目的是将可重复性的编程工作通过平台实现,将开发人员从没有技术含量的增删改查开发中解放出来,让其专注于更有价值的开发工作,例如业务建模、数据库设计、流程设计、API核心开发、业务逻辑开…

如何调用百度地图API

前言 要调用百度地图API,步骤操作如下 注册并创建一个API密钥。您可以在百度地图API控制台上创建您的密钥。选择要使用的API服务。百度地图API提供了多种服务,包括地图展示、路线规划、地点搜索、实时交通等。您可以在百度地图API控制台上查看所有可用…

大数据hadoop生态技术简介

Hadoop 生态是指围绕 Hadoop 大数据处理平台形成的一系列开源软件和工具,用于支持大规模数据处理、存储、管理、分析和可视化等应用场景。暂时将其核心技术分为9类: 数据采集技术框架: Flume、Logstash、FileBeat;Sqoop和Datax&…

【Spring】循环依赖

一、什么情况下会出现循环依赖? 二、解决方案 (一)一级缓存:存放完整的Bean实例对象 缺点:一级缓存的方式无法保证多线程下的一级缓存Bean的完整性,可以用加锁的方式来解决此问题。 (二&#…

Nerf如何制作自己的llff数据集

Nerf三维重建使用Pycharm运行自己的数据集 ------------------------------------20230427更新---------------------------------------------- Nerf代码讲解,从零简单复现论文代码 Nerf环境配置教程 你好! 这里是“出门吃三碗饭”本人,本…

数字化时代,数据治理中有哪些误区?

数据治理也不是什么简单的事情,或者说企业想要利用数据资产、数字化、数字化转型等加速企业的发展,就势必会在路途中遇到很多困难,数据治理只是用来解决数据问题的一种方案。所以当数据的价值开始被不断挖掘,企业数据资产的地位越…

分析了上百份最新的大中小厂的面经,我总结出了这份2023国内最新最强Java面试八股文

最近分析了上百份最新的大中小厂的面经,整理了 Java 面试中最最最常问的一些问题!大家可以对照着这篇文章学习或者准备面试。 开始之前,先说一下我非常推荐的一种学习方式: 带着问题学习或者准备面试。 之前分享过一位字节朋友的…

数据预处理:标准化、正则化、最大最小归一化、绝对值标准化

https://scikit-learn.org/stable/modules/preprocessing.html 标准化 公式 : 优点:适用大多数类型的数据,标准化之后的数据是以0为均值,方差为1的正态分布 缺点 :是一种中心化方法,会改变原有数据得分…

《离散数学》:集合、关系和函数

〇、前言 这章将会对集合、以及集合之上的关系、以及两个集合之间的映射情况做一个细致的讨论。集合作为数学和其他领域中的基础概念,具有广泛的应用和重要的地位。它为数学建立了基本的体系和推理方法,为各个领域的研究和应用提供了一种统一的描述和分…

DDD领域驱动

为什么需要DDD? 我们经常讲技术为业务服务,架构设计需要对业务充分理解,在面向复杂的业务场景时,会面临诸多问题: 复杂系统设计:业务系统多、业务类型多、业务相互耦合,有没有合适的方法来指导…

深度分析高性能计算工程师和传统互联网开发有何不同?

数字化时代来袭,各类开发工程师层出不穷。在移动互联网时代,互联网开发享用了10年的行业红利;在即将到来的超算互联网时代、数字化浪潮汹涌而来的时代,高性能计算工程师这个原本在科研院所熠熠生辉的工程师群体也从技术的神坛走下…

刁钻面试问题?超全接口测试面试题总结+答案,面试看这篇就够了

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 面试题&#xff1…

通过Xshell连接远程服务器搞懂SSH非对称加密的实际应用

最近阿里云服务器即将到期,正好618入手了腾讯云很便宜的轻量级服务器,之前阿里云服务器远程控制都是用Xshell密码登录,这次腾讯云试了试SSH免密登录,还是很好用的,正好借这个机会研究了下SSH原理 SSH是“非对称加密”…

在做性能测试时会遇到的瓶颈

针对网络瓶颈,现在冒似很少,不过也不是没有,首先想一下如果有网络的阻塞,断网,带宽被其他资源占用,限速等情况,应用程序或系统会是什么情况,针对WEB,无非是超时&#xff…

【ros2】ros2环境安装与基础入门

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍ros2环境安装与基础入门。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷…

【RF-SSA-LSTM】随机森林-麻雀优化算法优化时间序列预测研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

红帽认证考试难倒你?这些知识点可以帮你一臂之力

话不多说直接上干货,本篇文章适用于备考Linux红帽认证的同学。 常用的RPM软件包命令 常用的Yum命令 systemd与system V init的区别以及作用 如果想要将系统默认的运行目标修改为“多用户的文本界面”模式,可直接用ln命令把多用户模式目标文件链接到/e…