JMeter基础之安装,组件,脚本录制

简介
1,多线程框架,支持多并发操作
2,用于对服务器模拟负载
3,支持web 数据库 ftp服务区系统的性能测试
4,开源,纯Java,可二次定制化开发

其他:
jmeter.log jemeter日志文件
jmeter.sh 运行在Linux系统打开的

Jmeter安装

一、Jmeter下载

进入官网:http://jmeter.apache.org/

1.第一步进入官网如下图
在这里插入图片描述2.选择进行下载,下载下来为一个压缩包,解压即可
在这里插入图片描述个人认为要注意3点:

1)解压之后压缩包叫apache-jmeter-4.0.zip,如是src.zip后缀的都不对,打开之后会报错不可用,因为里面缺少我们下一步将要配置的环境变量.jar文件。

2)对应的jdk版本不可太低,一般jmeter3.0的对应jdk1.7,jmeter4.0对应jdk1.8以上,否者启用jmeter也会报错。

3)一定要确保环境变量配置正确(包括jdk的与jmeter的环境变量配置)。
二、Jmeter环境变量相关配置
1.) 电脑桌面----》“计算机”图标----》鼠标右键选择“属性”----》点击高级系统设置----》高级—》环境变量页面
在这里插入图片描述

2) 开始配置环境变量了。在系统变量框,点击“新建”,建立一个变量:JMETER_HOME,值为你解压的jmeter安装路径。我的安装路径是在E盘,这个路径根据自己实际安装路径进行填写。然后点击确定保存即可
在这里插入图片描述3)配置classpath变量,没有的话也要按照上面步骤进行新建,有的话直接进行选中,点击编辑即可。变量值固定为:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar; 做完之后一定要保存,不确定的话可以直接点击确定按钮直到退到我的电脑页面
在这里插入图片描述4)基本配置完成,然后验证一下是否配置正确,是否可用。

首先进到你的jmeter安装路径,找到bin文件夹,点击进去,找到jmeter.bat,鼠标右键用管理员方式运行,或者直接双击打开,此时会弹出2个界面:1.个是命令窗口,使用jmeter的时候此命令窗口不能关,你缩小到电脑任务栏即可。2.还有一个界面是jmeter工作页面,你可以在里面进行相关的操作.具体如图
在这里插入图片描述三、Jmeter目录结构

1.bin目录

examples:        目录中有CSV样例
jmeter.bat         windows的启动文件
jmeter.log         jmeter运行日志文件
jmeter.sh         linux的启动文件
jmeter.properties    系统配置文件
jmeter-server.bat windows分布式测试要用到的服务器配置
jmeters-server linux分布式测试要用的服务器配置
其中系统配置文件中的SSL设置重点关注如下几个:
#指定HTTPS协议层
https.default.protocol=TLS
#指定SSL版本
https.default.protocol=SSLv3
#设置启动的协议
https.socket.protocols=SSLv2HelloSSLv3 TLSv1
#缓存控制,控制SSL是否可以在多个迭代中重用
https.use.cached.ssl.context=true
2.docs目录
存放了一些图片、css文件、接口信息
3.extras目录
扩展插件目录。提供了对Ant的支持,可以使用Ant来实现自动化测试,例如批量脚本执行,产生html格式的报表,测试运行时,可以把测试数据记录下来,jmeter会自动生成一个.jtl文件,将该文件放到extras目录下,运行"ant -Dtest=文件名 report",就可以生成测试统计报表。
4.lib目录
所用到的插件目录,里面均为jar包。jmeter会自动在jmeter_HOME/lib和ext目录下寻找需要的类,lib下存放JMeter所依赖的外部jar,如:httpclient.jar、httpcore.jar、httpmime.jar等等。其中lib\ext目录下存放有Jmeter依赖的核心jar包,ApacheJMeter_core.jar、ApacheJMeter_java.jar在写client端需要引用,JMeter插件包也在此目录下。lib\junit下存放junit测试脚本.
5.Licenses目录
jmeter证书目录
6.Printable_docs目录
用户使用手册
jmeter常用组件介绍

1.测试计划(Test Plan)

用例描述一个性能测试,包含与本次性能测试所相关的功能。也就是说本次性能测试的所有内容都是基于一个计划的。
2.线程组和测试片段
2.1.线程组
2.1.1.setup thread group

一种特殊类型的ThreadGroup,可用于执行预测试操作。这些线程的行为完成像一个正常的线程组原件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。类似于init
2.1.2.teardown thread group

一种特殊类型的ThreadGroup,可用于执行测试后操作。这些线程的行为完成像一个正常的线程组原件。不同的是,这些类型的线程执行测试结束后进行定期线程组的执行。
2.1.3.thread group(线程组)

这个才是我们通常添加运行的线程。可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数据再测试执行过程中是不会改变的。
2.2.测试片段(Test Fragment)

测试片段是一个辅助的组件,在此节点下几乎可以放置任何 Jmeter 测试元件,但它一般不会被运行。
测试片段的作用:
(1) 在脚本开发过程中可以用来备份元件。
(2) 测试片段下的元件可以被模块控制器调用,我们可以利用它来模块化请求供模块控制器调用。

2.3.非测试元件

a.HTTP代理服务器:可以用于录制脚本

b.HTTP镜像服务:适用于调试接口测试时,不想真正发送http请求到服务器
3.Jmeter八大可执行元件
3.1.配置元件(Config Element)

配置元件(config element)用于提供对静态数据配置的支持。如CSV Data Set config 可以将本地数据文件形成数据池(Data Pool)。
3.2.定时器(Timer)

定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手端。类似于LoadRunner里面的“思考时间”。JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。
3.3.前置处理器(Per Processors)

用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符则可以实现URL重写,当URL中有sessionID 一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID 。
3.4.后置处理器(Post Processors)

用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。
3.5.断言(Assertions)

断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。
3.6.监听器(Listener)

是用来对测试结果数据进行处理和可视化展示的一系列元件。 图行结果、查看结果树、聚合报告。都是我们经常用到的元件。注意:这个监听器可不是用来监听系统资源的元件。

JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动处理一个测试。
3.7.取样器(sample)

取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler ,如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。
3.8.逻辑控制器

逻辑控制器,包括两类无件,一类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循环控制器等。另一类是用来组织可控制 sampler 来节点的,如 事务控制器、吞吐量控制器。

启动jmeter
bat文件
jar文件

jmeter与loadrunner区别?
都是压测工具,可以用来做性能测试,但是jmeter比较轻量级
jmeter是用Java语言写的,需要Java环境,loadrunner不需要
jmeter更偏向于功能和技术,lr偏向于业务
lr有强大得图表系统,jmeter相比弱一点

jmeter界面修改永久中文
在这里插入图片描述在这里插入图片描述
什么是jmeter脚本?
通俗:用户操作被侧软件系统某场景的动作流程
jmeter:用户操作被侧软件系统某场景的请求

jmeter脚本开发
1,录制
a,badboy录制
默认安装即可,需注意,abdboy本身是一个测试工具,只不过,他提供了将录指回放功能,软件较古老,不推荐使用
b,使用jmeter自带的http代理服务器录制
添加代理服务器
点击 “工作台”,然后右键,根据如下图步骤,添加一个代理服务器。
在这里插入图片描述添加之后,界面如下图
在这里插入图片描述浏览器设置代理

打开火狐浏览器,找到高级-网络-设置-设置代理,下面我们设置填写 localhost 和端口8082
在这里插入图片描述 上面除了可以写localhost,还可以输入你机器的IP地址,端口只要不要和系统其它程序的端口冲突就可以,这里我设置成8082,点击确定,浏览器不要关闭。
添加逻辑控制器
在 工作台 下点击前面添加的代理服务器,右键,点击添加,添加一个逻辑控制器下的录制控制器。逻辑控制器是在线程组下面建立
在这里插入图片描述添加完如下图所示,我们可以给这个录制控制器重命名下,例如我们录制 百度搜索,那么我们就写百度搜索,待会录制输入百度url。
在这里插入图片描述点击HTTP代理服务器,切换到代理服务器配置界面,修改以下两处红圈位置。
在这里插入图片描述第一个是端口号,和我们在火狐浏览器里面设置的端口保持一致,第二个是选择我们百度搜索这个录制控制器,也就是说,接下来我们录制的脚本都是在百度直接搜索内容。注意到这个页面还有一个启动和停止录制的按钮,接下来介绍。
启动录制脚本
点击代理服务器右侧里面的启动录制按钮,弹出一个根证书的弹窗,点击确定。
在这里插入图片描述在火狐浏览器地址栏手动输入www.baidu.com,等页面加载完成,我们点击“新闻”这个链接,页面加载完成,我们选择停止录制,然后点击展开BaiDu_News这个录制控制器,可以看到以下这些请求。
在这里插入图片描述
监听服务器状态
1,安装这个插件
在这里插入图片描述2,配合工具,启动图片中程序
在这里插入图片描述3,线程添加这个组件,进行设置
在这里插入图片描述如果要监控linux,将文件包拖到Linux目录下,启动程序即可
在这里插入图片描述

2,编码

jmeter参数化
什么是参数化?

业务中脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统。这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问。
参数的不同方式

jmeter中参数化方式很多,以下讲解两种常见的参数化方式
方式一:接着在之前创建的脚本的基础上,右键点击 配置元件---->CSV数据文件设置
在这里插入图片描述
a.页面参数设置
在这里插入图片描述
文件名:脚本的存放路径,可以点击直接选择,这里可以读取CSV和txt格式的数据

文件编码:一般选择UTF-8

变量名:我这里根据测试数据选择username,password 注意中间需要使用逗号完成

忽略首行:这里第一行不需要则选择True

分隔符:数据中文件中分割符合是逗号,那这里直接写逗号即可
在这里插入图片描述
b.在请求中应用,应用的时候注意格式要使用${username}的形式
在这里插入图片描述
方式二:使用函数助手进行参数化
第一步:

我们需要“参数化”的数据,这里我用CSV格式的文件创建了三个用户名/密码,保存为.csv格式的文件。
在这里插入图片描述
将文件放在:D:\login.txt。至于如何生成大量测试数据可以看稍后章节
第二步:

编写函数来调用这个login.txt文件,点击菜单栏“工具”---->“函数助手对话框”,选择CSVRead如下图。
在这里插入图片描述
注:.csv文件第一列从0开始取得。
第三步:

将我们写好的函数复制到“登录”页面用户名和密码的位置。
在这里插入图片描述
注意:现在我们的参数化设置完成,在执行脚本的时候,将会调用我们E盘下面的login_user.csv文件,第一列是用户,第二列是密码。

username : ${__CSVRead(d:/login_user.csv,0)} #取第一列的数据
password : ${__CSVRead(d:/login_user.csv,1)} #取第二列的数据

第四步

在“线程组”中将线程数设置为3,刚好对应创建的3个用户,查看结果树:
在这里插入图片描述

jmeter接口传参:
parameters:键值对形式
body data :连接符&
file upload:上传文件使用

掌握工具的思想是什么?

实现的业务(功能) - 帮助我们实现API接口调用

过程(流程)- 可以把接口组织起来(顺序)

使用方法 - 如何实现 1, 2, 3 这几个关注点

参数化

断言

jmeter的设计思想是

面向开发,类似于IDE开发环境,这个开发环境变成了UI

组件就是java开发的class中的方法

插件化 - 需要什么就添加什么

测试管理是树状结构,一层一层的推进。

组件之间存在一定顺序的关系,这点要注意

测试计划 - 打算干什么,测试什么

测试线程组

脚本编写基本流程 测试计划->线程组->测试协议->查看结果(仅是操作的流程)

JMeter主要功能

参数化

调试取样器

正则表达式提取器

解压之后打开
在这里插入图片描述打开jmeter路径
在这里插入图片描述发起http请求
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述逐步加压使用
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述连接数据库在这里插入图片描述
连接数据库,变量用来接收数据,用来调试用,有几组数据定义几个变量,
MySQL的操作

要实现变量套变量要使用__V内置的函数 例如:KaTeX parse error: Expected group after '_' at position 2: {_̲_V(myusername_{index})}
在这里插入图片描述在这里插入图片描述
在这里插入图片描述获取得数据用作下一个接口得输入数据,使用变量接收
在这里插入图片描述在这里插入图片描述在这里插入图片描述循环数据,起到多用户作用

在这里插入图片描述在这里插入图片描述在这里插入图片描述
生成报告
在这里插入图片描述在这里插入图片描述1,生成结果存放在jtl文件中,在写入一个文件时创建就可以
2,运行线程
3,tools-生成html报告
4,选择位置,第一个是创建的jtl结果文件
第二个是apache-jmeter-5.2.1\apache-jmeter-5.2.1\bin\user.properties
第三个是存放报告处,必须是空的文件夹

生成HTML测试报告的两种方式
1、利用已有.jtl文件生成报告

如果已经有经过测试生成的.jtl文件(可以在聚合报告等上面设置保存),可以利用该文件直接生成HTML可视化测试报告。

进入jmeter的bin目录下,输入如下命令:
D:\tools\apache-jmeter-5.3\bin\jmeter.bat -g C:\Users\Augus\Desktop\poy.jtl -o D:\re
#-g:后跟test.jtl文件所在的路径
#-o:后跟生成的HTML文件存放的路径
PS:如果是在Windows环境命令行运行,必须指定生成的HTML文件存放文件夹,否则会报错;如果是linux环境,如指定路径下不存在该文件夹,会生成对应的文件夹存放报告文件!
2、命令行界面直接运行脚本生成

可以通过如下命令,一次性完成测试执行和生成HTML可视化报告的操作,进入jmeter的bin目录下,输入如下命令

D:\tools\apache-jmeter-5.3\bin\jmeter.bat -n -t E:\性能测试脚本\蜗牛Boss.jmx -e -o D:\re -l login.log

#-n:以非GUI形式运行Jmeter
-t:source.jmx 脚本路径
-l:记录样本到文本,可以看成日志,文件名为.log即可
-e:在脚本运行结束后生成html报告
-o:用于存放html报告的目录
我本地Windows环境执行截图如下:
在这里插入图片描述
执行完毕后,用浏览器打开生成的文件目录下的index文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值