Jmeter介绍及发送请求(一)

目录

目录

1、Jmeter安装目录介绍

 2、Jmeter界面汉化和主题修改

3、Jmeter元件和组件介绍 

4、Jmeter元件作用域和执行顺序

5、Jmeter使用案例

6、JMeter线程组

6.1、线程组分类

 6.2、线程组参数介绍

7、HTTP请求

7.1、发送get请求

7.2、发送post请求

8、Jmeter上传文件

8.1、仅提交文件

 8.2、带普通参数的文件提交

9、察看结果树乱码


1、Jmeter安装目录介绍

jmeter安装目录介绍

bin目录:存放可执行文件和配置文件

 2、Jmeter界面汉化和主题修改

界面汉化

        1、找到JMeter安装目录下的bin文件

        2、打开jmeter.properties文件,把第37行修改为“language=zh_CN”

        3、重启 JMeter

主题修改

3、Jmeter元件和组件介绍 

点击测试计划--右键添加线程组,选中线程组,右键点击,可以查看到线程组的元件和组件

 取样器:向服务器发送请求

逻辑控制器:控制语句的执行顺序(if else)

前置处理器:对发送的请求预处理

后置处理器:对于收到的服务器请求结果进行处理

断言:将收到的响应结果与预期结果对比

定时器:设置等待

测试片段:封装一段代码,供其他测试脚本调用

配置元件:测试数据的初始化配置

监听器:查看jmeter脚本的运行结果

4、Jmeter元件作用域和执行顺序

作用域

元件的作用域:是靠测试计划的树形结构中元件的父子关系来确定的

        配置元件:影响其作用范围内的所有元件

        前置处理器:在其作用范围内的每一个sampler(取样器)元件之前执行

        定时器:在其作用范围内的每一个sampler(取样器)有效

        取样器:与其他元件产生交互没有作用域

        逻辑控制器:各种控制器,如if、foreach等控制器。其本身只对其子节点的sampler(取样器)有效

        后置处理器:在其作用范围内的每一个sampler(取样器)元件之后执行

        断言:在其作用范围内的对每一个sampler(取样器)元件执行后的结果进行校验

        监听器:在其作用范围内对每一个sampler(取样器)元件的信息收集并呈现

提示:所有的组件都是以取样器为核心来运行的,组件添加的位置不同,生效的取样器也不同

Jmeter元件作用域的原则?

  • 取样器:核心,不和其他元件相互作用,没有作用域

  • 逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用

  • 其他元件:

    • 如果是某个取样器的子节点,则该元件只对其父节点起作用

    • 如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点、子节点的子节点等)

元件执行顺序

        配置元件->前置处理器->定时器->取样器->后置处理程序->断言->监听器

        1、前置处理器、后置处理器、断言等元件功能只对取样器起作用,如如果在他们的作用域没有任何取样器,则不会被执行

        2、如果在同一作用域范围内,有多个同一类型的元件,则这些元件按照他们在测试计划中的上下顺序依次执行

5、Jmeter使用案例

需求:使用Jmeter访问百度首页接口,并查看请求和响应信息

步骤:

  • 启动Jmeter

  • 在‘测试计划’下添加线程组

  • 在线程组下添加‘HTTP请求‘取样器

  • 填写’HTTP请求‘的相关请求数据

  • 在’线程组‘下添加’察看结果树‘监听器

  • 点击’启动‘按钮运行,并查看结果

6、JMeter线程组

作用:线程组就是控制Jmeter用于执行测试的一组用户

位置:右键点击’测试计划‘---》添加---》线程(用户)--->线程组

特点:

  • 模拟多人操作

  • 线程组可以添加多个,多个线程组可以并行或者串行

  • 取样器(请求)和逻辑控制器必须依赖线程组才能使用

6.1、线程组分类

  • 线程组:

    • 常用的普通的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户

  • setUp线程组:

    • 可用于预测试操作

  • tearDown线程组

    • 可用于执行测试后工作

举例:如下设置三个普通线程组,一个setUp线程组,一个tearDown线程组,测试执行首先执行setUp线程组,普通线程组并行执行,最后执行tearDown线程组

        点击测试计划--勾选独立运行每个线程组,测试执行首先执行setUp线程组,普通线程组按照请求顺序执行显示百度-淘宝然后京东,最后执行tearDown线程组  

 6.2、线程组参数介绍

练习:

  • 模拟10个用户并行执行:

  • 模拟10个用户5s内启动完成

  • 模拟2个用户各循环3次

  • 模拟2个用户运行30s

  • 模拟2个用户等待10s后开始执行

案例分析:

使用1个线程组,添加HTTP请求(百度)

  • 配置线程数为2,循环次数为3,运行观察结果

  • 配置线程数为3,循环次数为2,运行观察结果,对比是否有不同

相同点:从请求数量来说,是完全相同的

不同点:场景不同

  • 线程数:代表用户数,即性能测试的负载量(线程数2要比线程数3对应的负载量小)

  • 循环次数:代表时间,即性能测试时运行的时间(循环次数3比循环次数2对应的时间长)

7、HTTP请求

作用:向服务器发送http及https请求

位置:选择线程组--》右键--》添加--》取样器---》HTTP请求

7.1、发送get请求

练习:编写Jmeter脚本,访问百度

案例一:GET请求 URL为 http://www.baidu.com/S?wd=test

方式一:通过url传参

方式二:通过参数列表传递  

7.2、发送post请求

案例二:POST请求 URL为 http://www.baidu.com/S 请求体为:wd=test(form表单)

方式一:通过参数传递

方式二:通过消息体数据传

案例三 post请求,请求参数为json格式

 信息头管理设置请求头

        选中取样器(HTTP请求)--》选中添加--》配置元件--》HTTP信息头管理器

8、Jmeter上传文件

8.1、仅提交文件

http://www.fanyunedu.com:5000/general/api/upload为例

文件上传接口POST/general/api/upload上传形式为form-data,key为file并选择要上传的文件即可限制可上传文件形式:'txt', 'png', 'jpg', 'xls', 'JPG', 'PNG', 'xlsx', 'gif', 'GIF'

文件名称那里输入上传文件的路径和文件名,在参数名称上面写file

(1)勾选对POST使用multipart/from-data  (2)MIME文件类型写上multipart/from-data

察看结果树--察看响应结果是success

 8.2、带普通参数的文件提交

Request URL: http://192.168.47.15:8080/woniusales/goods/upload

Request Method:POST

Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryFQ2XAWjfugy14e7B

请求参数

batchname:  GB20230408

batchfile:  (binary)

因为post的请求头是multipart/form-data,所以batchname写在参数里面

 文件上传参数写在文件上传上面

 

9、察看结果树乱码

  • 在JMeter的安装目录-bin目录下找到jmeter.properties

  • 在1062行修改sampleresult.default.encoding=UTF-8

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值