并发测试工具jmeter了解下?

并发测试工具jmeter了解下?并发测试工具jmeter了解下?前言随着互联网规模的不断发展壮大,系统接口的并发要求也是越来越高了,虽然现在已经有了很多技术可以提升系统的并发性能,但是测试又遇到了新的问题,我们该如何模拟线上环境

大家好,又见面了,我是你们的朋友全栈君。

并发测试工具jmeter了解下?

前言

随着互联网规模的不断发展壮大,系统接口的并发要求也是越来越高了,虽然现在已经有了很多技术可以提升系统的并发性能,但是测试又遇到了新的问题,我们该如何模拟线上环境的并发量呢?

今天我们推荐的这款测试利器,就可以很好地解决你的问题,一起来看看吧。

Jmeter

jmeter是什么

这一款工具是Apache开源基金会下的一个开源项目,是由纯java开发的,在测试圈比较知名,对于做过测试工作的小伙伴,这个工具应该不陌生。

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

百度百科的解释:

Apache JMeterApache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

Apache jmeter 可以用于对静态的和动态的资源(文件,ServletPerl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

简单来说,他就是一款压测工具,可以对我们的接口进行压力测试,找到接口高并发场景下可能存在的系统缺陷。

它能干什么

根据官网给出的说明,它可以完成以下工作:

  • 能够加载和性能测试许多不同的应用程序/服务器/协议类型:
    • 网络协议-HTTPHTTPSJavaNodeJSPHPASP.NET等)
    • SOAP/REST 网络服务
    • FTP服务
    • 通过JDBC连接的数据库
    • LDAP
    • 通过JMS的面向消息的中间件(MOM
    • 邮件协议-SMTP(S)POP3(S)IMAP(S)
    • 本机命令或Shell脚本
    • TCP协议
    • Java对象
  • 功能齐全的Test IDE,可进行快速的Test Plan记录(来自浏览器或本机应用程序),构建和调试
  • CLI 模式(命令行模式(以前称为非 GUI)/无头模式)从任何 Java 兼容操作系统(LinuxWindowsMac OSX 等)加载测试
  • 完整且可随时呈现的动态 HTML 报告
  • 通过从大多数流行的响应格式,HTML,JSON, XML任何文本格式中提取数据的能力,轻松实现关联
  • 100%基于 Java,具有完全的可移植性 。
  • 完整的多线程框架允许通过多个线程进行并发采样,并通过单独的线程组同时对不同的函数进行采样。
  • 缓存和脱机分析/重放测试结果。
  • 高度可扩展的核心:
    • 可插拔采样器允许无限的测试功能。
    • 可脚本化的采样器(与GroovyBeanShellJSR223兼容的语言)
    • 可以使用可插入计时器选择几个负载统计信息。
    • 数据分析和可视化插件可实现出色的可扩展性和个性化。
    • 函数可用于为测试提供动态输入或提供数据操作。
    • 通过针对MavenGradleJenkins的第三方开源库,轻松进行持续集成。

从上面的说明来看,Jmeter支持的协议很丰富,同时具备了极强的可扩展性和可移植性,因为是基于java开发的,所以它本身也是跨平台的,同时还可以集成到mavenGradleJenkins中,可以实现自动化测试,这一点就很强了。

开箱

接下来,我们就看下如何使用jmeter来完成我们的接口测试。

下载

首先,我们先去官网下载最新版本jmeter

https://jmeter.apache.org/download_jmeter.cgi

最新版本是5.4.1,运行环境基于jdk1.8+

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

windows环境下选择zip那个版本,不过也不影响,都是java开发的,解压工具能解压就行。

解压运行

直接解压,然后进入bin目录,然后运行jmeter.bat脚本就可以了,当然前提条件是你要先配置本地的JDK环境,不会的小伙伴自行百度。

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

打开之后,它是这样的

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

不习惯英文界面的小伙伴可以修改成中文

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

我不喜欢深色主题,所以我把它改成浅色了,想改的小伙伴自己改:

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

开始测试

在开始测试之前,我们先要启动一个接口服务,我本地启动了一个springboot项目,就是上周的那个项目。单个springboot,内置的Tomcat是支持10000并发的,这一点还是很强的。

打开之后,默认已经创建了一个测试计划,我们可以直接用,修改相应配置即可

配置测试计划

设置名称和注释,这里的配置主要是方便你管理测试计划,你不设置也不影响

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

创建线程组

选中测试计划,右键选择添加->线程->线程组

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

设置线程组配置

这里设置的就是我们的并发量,包括线程数、单个线程循环次数、延迟时间、持续时间等

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

添加测试请求

选中线程组,右键选择添加->取样器->HTTP请求。这里需要注意的是添加的时候必须在线程组下创建,否则是没法测试的,因为所有的测试请求都是通过线程组发起的。

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

配置测试请求

这里就是配置我们接口的请求参数,包括协议、接口地址、请求方式、请求参数等

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

这时候就可以选中测试计划开始测试了,运行之前会提示我们保存测试计划:

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

保存完成后,测试自动运行,这时候测试虽然启动了,但是是不会显示测试报告的,所以我们还需要增加报告。

增加报告

同样是选中线程组,右键选择添加->监听器->选择需要的报告。这里我添加了两个报告,一个是汇总图,一个是汇总报告,你也可以根据自己的需要选择。

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

然后再次运行,我们会发现汇总图和汇总报告这里就有结果了:

汇总报告

报告里面包含了接口响应时间的统计,包括平均响应时间、最大响应时间、异常率、系统吞吐量、发送/接受数据的统计等,还是比较详细的。

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

汇总图

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

图表是支持配置的,你可以根据自己的需要进行设置,选择图形左上角的设置菜单即可

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

图表和数据都是可以保存的

其他图表

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

增加断言

写过单元测试的小伙伴肯定听过或者写过断言这个东西,断言简单来说就是我们在测试程序的时候,需要对某一段代码或方法运行结果进行比对,以判断程序业务逻辑是否正常,也就是做输入输出对比的。

比如我们将2传入一个方法,根据我们的预期,应该是5,如果处理之后结果与预期一致则断言通过,否则不通过,单元测试的断言这里就不说了,有兴趣的小伙伴自己去看看。

jmeter添加断言很简单,选中线程组,右键选择添加->断言->选择你需要的断言方式。这里我们选择json断言

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

简单配置

Assert josn path exists设置json中你也校验的key,如果你只校验key存在即可,那可以去掉Additionally assert value的勾,这个配置勾选的话,会校验上面配置的key的值,而且你需要在expected value设置预期的值。

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

这时候直接运行的话,是看不到断言结果的,我们还需要增加断言报告:

直接在监听器下选择断言结果就可以了。

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

然后再次运行,断言结果这里就有数据了,断言如果通过是没有数据显示的:

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

但如果你指定的key不存在,就会有错误提示了,提示结果中不存在这个字段:

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

如果你的返回值与断言预期结果不一致,则会提示,结果不匹配:

<span role="heading" aria-level="2">并发测试工具jmeter了解下?

补充

jmeter的测试计划是支持多线程组的,也就是说你的一个测试计划可以配置多个接口,同时测试。

总结

jmeter作为一款流行的压测工具,从上手体验来看,还是很不错的,操作没有特别复杂,只需要简单配置就可以完成系统压测,这也可能是它比较流行的原因。目前,很多公司,系统上线前都是用jmeter进行压测的,这也从侧面体现了它稳定、强大的压测功能。

今天的内容依然是干货满满,让你直接可以开箱即用,而且也满足了你绝大多数的测试场景,有接口压测需要的小伙伴可以用起来了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154996.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 唯一索引和普通索引的区别

    唯一索引和普通索引的区别一、背景介绍索引用来快速地寻找那些具有特定值的记录,如果没有索引,执行查询时Mysql必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录,表里面的记录数量越多,这个操作的代价就越高,如果作为搜索条件的列上已经创建了索引,mysql无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有一千个记录,通过索引查找记录至少要比顺序扫描记录快100倍。所以对于现在的各种大型数据库来说,索…

  • JWT原理讲解_达林顿管工作原理

    JWT原理讲解_达林顿管工作原理JWT(JSONWEBTOKEN)jwt有3部分组成:(head、Payload、signature)下面我们将分三步生成JWT的值。1.Head头部:一般包含两部分{“typ”:”JWT”,//固定为jwt”alg”:”HS256″//加密算法}第一部分的值:将Head进行Base64加密就是第一部分的值。2.Payload荷载:包含公共部分与自定义部分{ //公共部分,非强制可以省略。 “iss”:”servic

    2022年10月17日
  • Document类型、HTMLDocument类型和document对象的区别[通俗易懂]

    Document类型、HTMLDocument类型和document对象的区别[通俗易懂]Dcoment表示文档,这里的文档可以是HTML文档,也可以是XML文档,换句话说Document类型能表示HTML和XML等文档; HTMLDocument对象继承自Document对象,专用于表示HTML文档; document对象是HTMLDocument对象的一个实例,表示整个HTML页面,又叫做页面的根节点;Document对象(根节点)的特征:<!DOCTYPEht…

  • CAP 原理[通俗易懂]

    CAP 原理[通俗易懂]简单记录下分布式数据库的CAP原理

  • android开发之Monkey测试_自动化测试_看看你的应用够不够健壮

    教你使用android SDK自带的测试工具Monkey,对你的应用进行压力测试,看健壮性如何?

  • linux opera flash插件,Linux下64位的Firefox、Opera浏览器安装Flash插件

    linux opera flash插件,Linux下64位的Firefox、Opera浏览器安装Flash插件Linux下,64位的Firefox、Opera等浏览器默认搜索到的Flash插件是32位的,安装之后也不能正常工作。需要手工安装一下。1.下载插件使用浏览器下载:到Adobe的站点上下载64位的Flash插件:http://labs.adobe.com/downloads/flashplayer10_square.html插件下载地址:http://download.macromedia.co…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号