浅谈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 服务

3 Jmeter作用
它是免费的。开放源码软件。

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

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

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

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

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

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

它是高度可扩展的。

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

二、Jmeter实现性能测试

简介:

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

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

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

第一步:配置jdk环境

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

 第二步:下载jmeter

下载路径: https://jmeter.apache.org/download_jmeter.cgi 可以下载最新版本的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 文件就是生成的 测试报告

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

相机图像质量研究(12)常见问题总结:光学结构对成像的影响--炫光

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(3) 保存表格数据

对上两篇篇的工作C Qt框架开发| 基于Qt框架开发实时成绩显示排序系统(1)-CSDN博客和C Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(2)折线图显示-CSDN博客继续优化,增加一个保存按钮,用于保存成绩数据…

WebSocket原理详解

目录 1.引言 1.1.使用HTTP不断轮询 1.2.长轮询 2.websocket 2.1.概述 2.2.websocket建立过程 2.3.抓包分析 2.4.websocket的消息格式 3.使用场景 4.总结 1.引言 平时我们打开网页,比如购物网站某宝。都是点一下列表商品,跳转一下网页就到了商品…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏17(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言制作木板UI直接复制和工具一样的即可检查背包是否有指定数量的空插槽 源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇…

springboot184基于springboot的校园网上店铺的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

Go结构体深度探索:从基础到应用

在Go语言中,结构体是核心的数据组织工具,提供了灵活的手段来处理复杂数据。本文深入探讨了结构体的定义、类型、字面量表示和使用方法,旨在为读者呈现Go结构体的全面视角。通过结构体,开发者可以实现更加模块化、高效的代码设计。…

位运算+leetcode ( 2 )

题一:只出现一次的数字(1) 1.链接 136. 只出现一次的数字 - 力扣(LeetCode) 2.思想 借用位运算中异或操作符的特点,a^a0,0^aa先定义一个sum0就用一个循环来遍历这个数组,每次都进行…

基于JAVA的CRM客户管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 用例设计3.2 E-R 图设计3.3 数据库设计3.3.1 客户表3.3.2 商品表3.3.3 客户跟踪表3.3.4 客户消费表3.3.5 系统角色表 四、系统展示五、核心代码5.1 查询客户5.2 新增客户跟踪记录5.3 新增客户消费订单5.4 查…

HandlerMapping之RequestMappingHandlerMapping作用详解

前言RequestMappingHandlerMapping RequestMappingRequestMapping的注册总结 前言 上回我们知道HandlerMapping是用来寻找Handler的,并不与Handler的类型或者实现绑定,而是根据需要定义的。 那么为什么要单独给RequestMapping实现一个HandlerMapping&…

《UE5_C++多人TPS完整教程》学习笔记12 ——《P13 加入游戏会话(Joining The Sessions)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P13 加入游戏会话(Joining The Session)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是…

操作系统基础:IO管理概述【上】

🌈个人主页:godspeed_lucip 🔥 系列专栏:OS从基础到进阶 🏆🏆本文完整PDF源文件请翻阅至文章底部下载。🏆🏆 🎮1 I/O设备的基本概念与分类🔫1.1 总览&#x…

最新Burp Suite入门讲解

Burp Suite的安装 Burp Suite是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效地完成对Web应用程序的渗透测试和安全检测。 Burp Suite由Java语言编写,Java自身的跨平台性使我们能更方便地学习和使用这款软件。不像其他自动化测…