百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

10分钟掌握 JMeter接口测试的基础入门

bigegpt 2024-09-20 13:43 5 浏览

嘿。大家好,我是4U:

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。


JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。


JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。



一、JMeter概述

ApacheJMeter是什么?

ApacheJMeter是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力测试和性能测量。它最初被设计用于Web应用测试但后来扩展到其它测试领域。ApacheJMeter可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,Java对象,数据库和查询,FTP服务器或是其它资源)的性能进行测试。JMeter可以用于在服务器,网络或对象模拟繁重的负载来测试它们提供服务的受压能力或者分析不同压力条件下的总体性能情况。你可以使用JMeter提供的图形化界面,分析性能指标或者在高负载情况下测试你的服务器 / 脚本 / 对象。


ApacheJMeter能做什么?


JMeter的作用:

  • 能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
  • 完全的可移植性和100% 纯java。
  • 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
  • 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
  • 精心的GUI设计允许快速操作和更精确的计时。
  • 缓存和离线分析/回放测试结果。


JMeter的高可扩展性:

  • 1.可连接的取样器允许无限制的测试能力。
  • 2.各种负载统计表和可连接的计时器可供选择。
  • 3.数据分析和可视化插件提供了很好的可扩展性以及个性化。
  • 4.具有提供动态输入到测试的功能(包括Javascript)。
  • 5.支持脚本编程的取样器(在1.9.2及以上版本支持BeanShell)。


Jmeter能做哪些类型的测试?

  • 接口测试
  • 性能测试
  • 负载测试
  • 压力测试


以上四种测试类型是怎么定义的?

  • 接口测试:对外部系统接口和本系统之间的接口这两个接口之间的测试,本系统之间各个内部系统接口之间的测试,没有界面支撑。
  • 性能测试:通过测试工具模拟多种正常,峰值,异常负载条件对系统的各项性能指标进行测试。
  • 负载测试:逐步增大负载,直到达到系统性能指标的最大负载量。
  • 压力测试:达到最大负载量以后,系统快要承受不了的临近崩溃的测试。


在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录IE/NETSCAPE的HTTP请求,也可以记录apache等WebServer的log文件来重现HTTP流量。当这些HTTP客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度(线程数)来产生巨大的流量。JMeter还提供可视化组件以及报表工具把量服务器在不同压力下的性能展现出来。

相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强。JMeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装载到内存,让用户通过不同的菜单调用。


二、JMeter环境配置与下载

JMeter环境配置:

Jmeter在使用之前也需要安装JDK环境,如何安装JDK环境,可以先翻看我们的高级教程。

(图)

由于JMmeter是基于Java语言编写的所以要安装JDK(而JDK又是JAVA的核心,包括JAVA运行环境,JAVA工具,JAVA的基础库),Jdk的安装包如下:

安装完之后存放位置如下:

由于是wind10系统,在设置里面找到环境变量配置:

开始配置环境变量:

在系统变量里面配置JAVA_HOME值为:

C:\Program Files\Java\jdk1.8.0_121

和Path里面添加:

%JAVA_HOME%\bin

%JAVA_HOME%\jre\bin

和CLASSPATH为:

%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

务必注意CLASSPATH里面的.切勿漏掉,配置如下图:

检查上述操作是否正确 在cmd里面 java -version,如有下图证明配置成功:


JMeter下载安装:

环境配置好以后,去下载一个JMeter包:

官网下载地址:在官网界面,点击zip的下载链接。直接下载即可。

这个包不需要安装,直接找到bin下面的jmeter.bat(windows)双击就可以使用如下:



三、Jmeter界面和菜单介绍

新打开的Jmeter界面背景颜色默认是黑色,相信很多同学也是看不习惯的。


可以依次选择工具栏的【Options】→【LookandFeel】来调整我们习惯的界面,这里4U选择的是Windows→【Chinese(Simplified)】。


第一次进入整个页面的字体非常小,有两个办法解决:

第一个是点击选项的放大或者缩小,可以调节但是第二次进入以后就还是小字体(所以不建议)

第二个办法去修改bin下面的配置文件jmeter.properties,

修改以下参数:

  • jsyntaxtextarea.wrapstyleword=true
  • jsyntaxtextarea.linewrap=true
  • jsyntaxtextarea.codefolding=true
  • jsyntaxtextarea.font.family=微软雅黑
  • jsyntaxtextarea.font.size=35


同时,我们也发现界面为全英文的,相信很多同学都看不明白,也看不习惯。不过请放心,界面我们可以把它调成中文版界面。


依次选择工具栏的:

【Options】→【ChooseLanguage】→【Chinese(Simplified)】就可以切换成中文简体了,只不过这只是临时修改(估计是Jmeter的一个bug),要想永久修改,需要手动修改配置文件。

修改Jmeter的bin目录下的jmeter.properties

用记事本打开后,将language的值设置为zh_CN,保存修改即可。


四、页面介绍

具体界面介绍请点击链接:


五、接口测试步骤

接口测试使用Jmeter步骤如下:

1》新增一个主线程组:

测试计划右击点击添加,选择线程(用户),选择线程组,新增成功如下:


2》线程组的页面如下:


3》新增一个http请求,右键线程组点击添加,选择取样器选择http请求:


4》http请求页面如下:

举例写的脚本就如下:


5)我们的HTTP的脚本从何而来?有两种方法:

  • 第一种从接口文档来:因为涉及到数据敏感性就不展示。
  • 第二种从抓包来:抓包的话也有好多种,fiddler,f12控制台,jmeter自带的HTTP代理服务器,个人觉得只要适合自己的抓包工具都可以,不限制,能抓到想要的脚本(http请求)即可。


下面就讲一下HTPP代理服务器,先在测试计划-添加-非测试元件-HTTP代理服务:

在HTTP里面设置端口号和选择控制是线程组,再去wind10,设置里面选择手动代理,输入127.0.0.1和端口号如下:

随后开始启动HTTP代理,启动以后回到想要抓包的页面进行录制。

录制完以后如下,要关闭HTTP代理。

录制好的脚本自己去重命名即可。


6》单个脚本或者多个脚本都录制或者调试通了以后,就可以直接测试了吗,如何确定测试环境的准确性?


测试之前要提到一个词语:环境初始化和数据清除,这个用到哪里了?那么又引入了一组词语:主线程,setup线程,tearDown线程组,这个又是用来做什么的?带着疑问来看往下看:


介绍一下三种线程是干嘛的,独立运行每个线程组(例如在一个组运行结束后勾选下一个)如下图

为了保证每一次测试的之前环境都初始化成功且无脏数据的话,就要把环境初始化的操作用脚本用在setUp线程组,用配置文件:JDBC Connection Configuration 和 JDBC Request来进行操作。


首先要准备驱动jar包如下(jmeter是java语言Java 连接 MySQL 需要驱动包)

有两种方式配置Jir包:

第一种:测试计划里面直接导入jar包可以全局使用,但是再重新新增一个测试计划又得再次导入,比较繁琐不建议使用。

第二种:直接把“jar包”放在jmeter的“lib下面”,一劳永逸。


接下来是JDBC Connection Configuration的用法:

1)配置连接池的名字:test(这里随意)

2)Database url: jdbc:mysql://数据库ip:数据库端口号/库名?+参数(参数:useUnicode=true&characterEncoding=gbk---支持gbk,zeroDateTimeBehavior=convertToNull--允许为0,allowMultiQueries=true--允许多行增删改)

3)JDBC Driver class:com.mysql.jdbc.Driver

4)Username:数据库账号,Password:数据库密码


再是JDBC Request的用法如下:

1.名称任意

2.连接池的名字和上面保持一致test

3.若是增删改的话Query Type就是:Update Statement,下面就写sql,sql别忘记了收尾符号;

若是查询的话就Query Type就是:Select Statement,下面就写sql,别忘记了收尾符号;


7》脚本录制以后要添加响应断言:

json断言(判断实际结果和预期结果是否相符),查看结果树,响应时间图(http请求的响应时间图形维度),聚合报告(http请求的平均值,中位数,吞吐量,异常率等)

响应断言如下,可以断言比如响应文本,响应代码,响应信息,响应头,请求头,等,然后匹配字符串或者包含数字等都是可以,断言就用独特的提示字段或者标识就可以。

json断言:断言的键值如下,若实际结果的键值对和json里面若一样,就会断言成功,不一样会失败。

查看结果树如下:

聚合报告如下:可以提前准备一个.jtl的文件,跑完报告以后就会自动存入里面,下次可以导入对比

若多个http里面说没有cookie添加一个cookie管理器:

以上这些都配置好的话,是可以用接口文档固定参数或者抓包的固定参数做测试了,至于多个线程之间的关联性,单个线程内部关联,参数化怎么做就期待下期内容吧!感谢观看!

END


文案编辑 | 美咩小编 4U

文案配图 | 美咩小编 4U


相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...