下边是详细的jmeter接口测试入门到精通的详细教程,还有视频版本教您实战操作!
2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频_哔哩哔哩_bilibili2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频共计16条视频,包括:1.【Jmeter】什么是接口测试?为什么要做接口测试?、2.【Jmeter】接口架构设计分类以及接口协议、3.【Jmeter】Jmeter界面介绍和常用组件详解等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1Ux4y1L7Lj/?spm_id_from=333.337.search-card.all.click
一、Jmeter简介
Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。
Jmeter具备高移植性,可以实现跨平台运行。
Jmeter可以实现分布式负载。
Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样。
Jmeter具有较高扩展性。
二、Jmeter安装
1、安装java环境
1.下载JDK
JDK 可以到官网选择windows系统版本(32位/64位)下载
Java Downloads | Oracle
2.安装JDK和JRE
双击下载的“jdk-7u80-windows-x64.exe”进行一步一步安装;
3.配置系统环境
配置环境变量:右击“我的电脑”-->"高级"-->"环境变量"。
(1)JAVA_HOME环境变量:在系统变量里点击新建,变量名填写JAVA_HOME,变量值填写JDK的安装路径。(根据自己的安装路径填写)
(2)CLASSPATH环境变量:新建CLASSPATH变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
(3)path环境变量:在系统变量里找到Path变量,双击Path,由于原来的变量值已经存在,故应在已有的变量后加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
4.验证JAVA环境配置是否成功:运行(Windows+r)输入cmd,分别输入java -version
2、安装Jmeter
1、下载Jmeter:https://jmeter.apache.org/download_jmeter.cgi
2、解压apache-jmeter-5.4.zip文件至D:\ProgramFiles(86)目录下;
3、我的电脑----》属性----》高级----》环境变量----》在系统变量中----》点击新建JMETER_HOME,
变量名输入:JMETER_HOME
变量值输入:D:\ProgramFiles(86)\apache-jmeter-5.4
4、编辑CLASSPATH变量,加上%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;然后确定
5、点击Jmeter中bin目录下面的jmeter.bat文件即可打开Jmeter了。(Linux运行Jmeter.sh)
注意:打开的时候会有两个窗口,Jmeter的命令窗口和Jmeter的图形操作界面,不可以关闭命令窗口;
三、设置Jmeter语言为中文环境
1、临时设置
Jmeter菜单栏选择OptionsàChoose LanguageàChinese (Simplified)
这种方法,重启软件后又变为英文环境了。
2、永久设置
进入apache-jmeter-5.2.1\bin目录,找到“jmeter.properties”文件,在文件的第37行后添加“language=zh_CN”,保存之后再打开jmeter就永久变为中文环境了。
四、Jmeter主要元件
1.Test Pan(测试计划)
Jmeter中的测试计划包括一个或者一组的测试用例,一个Thread Group可以认为是一个测试用例,一个测试计划中可以包括多个Thread Group,即多个测试用例。
2.Thread(Users)(线程)
线程组:代表一定数量的用户,它可以用来模拟用户并发发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
3.Test Fragment(测试片段)
Test Fragment是一种特殊的线程组,在测试树中与线程组处于同一等级,Test Fragment不会执行,需要配合Including Controller和module Controller一起使用,Test Fragment的作用是模块化了,类似于程序语言的函数,可以方便重复调用。
4.Sampler(采样器)
采样器完成Jmeter的实际工作,发送请求,接收响应,记录结果,可以在Listener(监听器)中查看结果,这里以Http Request为例介绍在实际使用JMeter进行测试的过程中的方法。
5.Logic Controller(逻辑控制器)
逻辑控制器用来控制取样器的执行顺序,仅对其子节点取样器起作用,这里以If Controller控制器为例。
6.Listener(监听器)
监听器主要用来展示测试结果,常用的有查看结果树,聚合报告等。
7.Config Element(配置元件)
配置元件可以设置默认值和变量以供采样器使用。
8.Time(定时器)
定时器在每个采样器之前执行,可以用来模拟实际中用户每个操作之前的间隔时间。
9.Assertion(断言)
断言用来对其作用域的采样器进行检查,当采样器执行完之后进行检查,为了实现每个断言只对一个采样器生效,可以把断言设置为采样器的子级。
10.Pre Processor(前置处理器)
前置处理器用来处理请求前的一些准备工作,如参数设置,环境变量设置等。
11.Post Processor(后置处理器)
后置处理器用来处理响应返回的数据,一般用来提取响应返回的特定数据,如果一个后置处理器为一个采样器的子节点,则该处理器只对该采样器作用,实际中使用最多的是正则表达式处理器。
五、Jmeter的执行顺序
2、元件的执行顺序
在同一作用域范围内,test plan中的元件按照以下顺序执行:
1) Config Elements
2) Pre-porcessors
3) Timer
4) Sampler
5) Post-porcessors(除非Sampler得到的返回结果为空)
6) Assirtions(除非Sampler得到的返回结果为空)
7) Listener(除非Sampler得到的返回结果为空)
注意:Pre-porcessors、Post-porcessors和Assirtions等元件仅对Sampler作用,如在它们作用域内没有任何Sampler,则不会被执行;
如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在test plan中的上下顺序依次执行。
六、Jmeter进行接口测试流程
使用Jmeter进行接口测试的基本步骤如下:
1.测试计划
2.线程组
3.HTTP Cookie管理器
4.Http请求默认值
5.Sampler(HTTP请求)
6.断言
7.监听器(查看结果树、图形结果、聚合报告等)
七、Jmeter进行接口测试流程步骤详解
1、测试计划
打开Jmeter,在菜单左侧出现 “测试计划”。在这里测试计划我们可以把它理解成新建的空白项目,在这个空白项目下面可以添加一系列的接口。
2、线程组
添加方法:右键点击Test Plan->添加->线程(用户)->线程组。
元件描述:一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。
(1)线程数:即虚拟用户数。设置多少个线程数也就是设置多少虚拟用户数
(2)Ramp-Up时间(秒):设置虚拟用户数全部启动的时长。如果线程数为20,准备时长为10秒,那么需要10秒钟启动20个线程。也就是平均每秒启动2个线程。
(3)循环次数:每个线程发送请求的个数。如果线程数为20,循环次数为10,那么每个线程发送10次请求。总请求数为20*10=200。如果勾选了“永远”, 那么所有线程会一直发送请求,直到手动点击工具栏上的停止按钮,或者设置的线程时间结束。
3、HTTP Cookie管理器
添加方法:右键线程组->添加->配置元件->HTTP Cookie管理器。
元件描述:HTTP Cookie管理器可以像浏览器一样存储和发送cookie,如果你要发送一个带cookie的http请求,cookie manager会自动存储该请求的cookies,并且后面如果发送同源站点的http请求时,都可以用这个cookies。
4、HTTP请求默认值
添加方法:右键线程组->添加->配置元件->HTTP请求默认值。
元件描述:HTTP请求默认值是为了方便填写后续内容而设置。主要填写[服务器名称或IP]和[端口号],后续的HTTP请求中就不用每次都填写IP地址和端口号了。
5、HTTP请求
添加方法:右键线程组->添加->Sampler->HTTP请求。
元件描述:HTTP请求包括接口请求方法、请求路径和请求参数等。
HTTP请求详解
(1)名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
(2)注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
(3)服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
(4)端口号:目标服务器的端口号,默认值为80 。
(5)协议:向目标服务器发送HTTP请求时的协议,可以是HTTP或者是HTTPS ,默认值为http 。
(6)方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、TRACE、OPTIONS、DELETE等。
(7)路径:目标URL路径(不包括服务器地址和端口)
(8)内容编码:内容的编码方式,默认值为iso8859
(9)自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。
(10)使用keep Alive :保持jmeter 和目标服务器之间的活跃状态,默认选中
(11)对Post使用multipart/from-data:当发送POST 请求时,使用multipart/from-data方法发送,默认不选中。
(12)同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。
6、响应断言
添加方法:右键HTTP请求->添加->取样器->HTTP请求。
元件描述:检查接口是否访问成功。如果检查失败的话会提示找不到断言的内容,没提示的话就代表成功了。
Apply to
指断言作用范围,通常发出一个请求只触发一个请求,所以勾选“main sample only”就可以;若发一个请求可以触发多个服务器请求,就有main sample 和sub-sample之分了。
(1)Main sample and sub-samples:作用于主请求和子请求
(2)Main sample only:仅仅只作用于主请求
(3)Sub-samples only:仅仅只作用于子请求
(4)Jmeter Variable:作用于jmeter变量(输入框内输入jmeter变量名称)
测试字段
响应文本(匹配返回的json数据)、响应代码(匹配返回码:如200, 404,500等)、响应信息(匹配响应信息如“OK”字样)、响应头(匹配响应头)、请求头(匹配请求头)、URL样本(匹配请求的url链接,如果有重定向则包含请求url 和 重定向url)、[文档(文本)](匹配响应数据的文本形式)、忽略状态(一个请求有多个响应断言,第一个响应断言选中此项,当第一个响应断言失败时可以忽略此响应结果,继续进行下一个断言。如果下一个断言成功则还是判定事务是成功的)、请求数据(匹配请求数据)
模式匹配规则
包括:响应内容包含需要匹配的内容即代表响应成功,支持正则表达式。
匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达式。
字符串:响应内容包含需要匹配的内容才代表响应成功,大小写敏感,不支持正则表达式
相等:响应内容要完全等于需要匹配的内容才代表响应成功,大小写敏感,不支持正则表达式
否:相当于取反,如果结果为true,勾上否就是false
或者:如果不想用AND连接(所有的模式都必须匹配,断言才算成功),用OR选项可以用于将多个断言模式进行OR连接(只要一个模式匹配,断言就是成功的)
测试模式
其实就是断言的数据。点击“添加”按钮,输入要断言的数据。
7、增加监听器
添加方法:线程组 ->右键添加 ->监听器 ->察看结果树。一般还会一并添加图形结果、聚合报告。
元件描述:树状形式显示接口的访问结果,包括请求结果、请求内容、服务器的响应内容。