前言
我们学习自动化测试都会用到不同的工具,那么今天笔者呢,想给大家聊聊Jmeter接口测试流程详解,废话不多说直接进入正题。
一、jmeter简介
Jmeter是由Apache公司开发的java开源项目,所以想要使用它必须基于java环境才可以;
Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样。
二、jmeter安装
首先需要安装jdk(最好是最新版的);
其次去官网下载最新的jmeter版本;
然后配置jmeter的环境变量;
最后双击jmeter.bat或者在“命令提示符”输入jmeter,运行jmeter。
具体安装步骤请自行网上查看
三、设置jmeter的中文界面
进入jmeter的bin目录,找到“jmeter.properties”文件,打开文件搜索“language”,将“#language=en”改为“language=zh_CN”,保存之后再打开jmeter就永久变为中文环境了。
四、jmeter主要元件
(1)测试计划:是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器
(2)线程组:代表一定数量的用户,它可以用来模拟用户并发发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
(3)配置元件:维护Sampler需要的配置信息,并根据实际的需要修改请求的内容。
(4)前置处理器:负责在请求之前工作,常用来修改请求的设置
(5)定时器:负责定义请求之间的延迟间隔。
(6)取样器(Sampler):是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。
(7)后置处理器:负责在请求之后工作,常用获取返回的值。
(8)断言:用来判断请求响应的结果是否如用户所期望的。
(9)监听器:负责收集测试结果,同时确定结果显示的方式。
(10)逻辑控制器:可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
五、Jmeter元件的作用域和执行顺序
(1)元件作用域
- 配置元件:影响其作用范围内的所有元件。
- 前置处理器:在其作用范围内的每一个sampler元件之前执行。
- 定时器:在其作用范围内的每一个sampler有效
- 后置处理器:在其作用范围内的每一个sampler元件之后执行。
- 断言:在其作用范围内的对每一个sampler元件执行后的结果进行校验。
- 监听器:在其作用范围内对每一个sampler元件的信息收集并呈现。
- 总结:从各个元件的层次结构判断每个元件的作用域。
(2)元件执行顺序:
- 配置元件->前置处理器->定时器->取样器->后置处理程序->断言->监听器
六、jmeter接口测试流程步骤
(1)测试计划—打开Jmeter,在菜单左侧出现 “测试计划”
(2)线程组—鼠标单击“测试计划”
- 线程数:即虚拟用户数。设置多少个线程数也就是设置多少虚拟用户数
- Ramp-Up时间(秒):设置虚拟用户数全部启动的时长。如果线程数为20,准备时长为10秒,那么需要10秒钟启动20个线程。也就是平均每秒启动2个线程。
- 循环次数:每个线程发送请求的个数。如果线程数为20,循环次数为10,那么每个线程发送10次请求。总请求数为20*10=200。如果勾选了“永远”, 那么所有线程会一直发送请求,直到手动点击工具栏上的停止按钮,或者设置的线程时间结束。
(3)HTTP请求—鼠标右键单击“线程组”
- HTTP请求的名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
- 注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
- 服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
- 端口号:目标服务器的端口号,默认值是80。
- 协议:向目标服务器发送HTTP请求时的协议,可以是HTTP或者是HTTPS ,默认值为http 。
- 方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、TRACE、OPTIONS、DELETE等。
- 路径:目标URL路径(不包括服务器地址和端口)
- 内容编码:内容的编码方式,常用UTF-8。
- 自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。
- 对Post使用multipart/from-data:当发送POST 请求时,使用multipart/from-data方法发送,默认不选中。
- 同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。
(4)添加断言—响应断言
(5)添加监听器—察看结果树、聚合报告
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!