性能测试学习-基本使用-元件组件介绍(二)

jmeter优点是:开源免费,小巧,丰富的学习资料和扩展组件

缺点是:1.不支持IP欺骗,分析和报表能力相对于LR欠缺精确度(以分钟为单位)

工具用户量分析报表IP欺骗费用体积扩展性
Loadrunner多(万)精确(s)支持收费大(单位gb)不能扩展
Jmeter较差(min)不支持免费小(MB)有扩展组件

一、jmeter的安装和基本使用

(一)安装JDK

地址:http://www.oracle.com/

环境变量 :

  • JAVA_HOME=D:\Java\jdk1.8.0_191
  • Path中添加:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

校验:cmd命令行里输入 java -version 

(二)安装jmeter

地址:Apache JMeter - Download Apache JMeter

解压安装包即可

启动3种方式:进入bin目录,双击jmeter.jar ; 双击ApacheJMeter.jar ;命令行输入java -jar ApacheJMeter.jar

(三)文件介绍

1. bin目录介绍(存放可执行文件和配置文件)

jmeter.bat: windows的启动文件(重要)

jmeter.log: Jmeter工具运行的日志文件

jmeter.propertites: jmeter工具的配置文件(重要)

jmeter.sh: linux的启动文件

jmeter-server: linux分布式测试的启动程序

jmeter-server.bat: windows分布式测试的启动程序

2.  /docs/api/index.html

是jmeter的api文档,用于开发扩展组件

3. printable_docs目录

用户帮助手册

4. lib目录

存放jmeter依赖的jar包和用户扩展所依赖的jar包(ext目录下)

(四)功能概要

1. 修改默认设置 - jmeter界面汉化

临时的:菜单Options->Choose Language->Chinese(Simplified)

永久的:修改配置文件,bin\jmeter.properties文件,改成"language=zh_CN",然后重启jmeter

2. 主题修改 

二、jmeter元件和组件的介绍

(一)元件的基本介绍

1. 元件:多个类似功能组件的容器(类似于)

取样器发送请求
逻辑控制器控制语句的执行顺序
前置处理器对请求参数进行预处理
后置处理器对响应结果进行提取
断言检查接口的返回结果是否与预期结果一致
定时器设置等待
测试片段封装一段代码,供其他脚本调用
配置元件测试数据的初始化配置
监听器查看jmeter脚本的运行结果

2. 组件:实现独立的某个功能(类似于方法

如取样器里的HTTP请求,逻辑控制器里的循环控制器,事务控制器

(二)元件的作用域

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

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

1. 作用域规则:

  • 取样器-->核心,不和其他元件相互作用,没有作用域
  • 逻辑控制器-->只对其子节点中的取样器和逻辑控制器起作用
  • 其他元件-->如果是某个取样器的子节点,则该元件只对其父节点其作用 ;如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)

2. 元件的执行顺序:

同一个作用域下不同类型元件:

  1. 配置元件(config elements)
  2. 前置处理器(per-processors)
  3. 定时器(timers) 
  4. 取样器(sampler)
  5. 后置处理器(post-processors)
  6. 断言(assertions)
  7. 监听器(listeners)

同一个作用域下多个相同类型元件:

  • 按照在测试计划中从上到下的顺序依次执行

 举例:整理执行顺序

定时器1 - HTTP请求1 - 定时器1 - 定时器2 - HTTP请求2 - 定时器1 - 定时器3 - HTTP请求3

(三)线程组

1.线程组概览

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

特点:

  • 模拟多人操作
  • 线程组可以添加多个,多个线程组可以并行或串行
  • 取样器(请求)和逻辑控制器必须依赖线程组才能使用

不控制顺序如图:

 如果要顺序执行线程组,设置如下:

执行结果如图:

2.线程组的特点 :

  • 模拟用户,支持多用户操作
  • 多个线程可以串行执行,也可以并行执行

3.线程组的分类 :

setup线程组-前置处理,初始化

普通线程组-编写脚本,可以看做一个虚拟用户组,每一个线程都可以理解为一个虚拟用户

teardown线程组-后置处理,环境恢复等

4.线程组参数详解:

(1)模拟10个用户并行执行:

(2)模拟5个用户5s内启动完成 

(3)模拟2个用户各循环3次

(4)模拟2个用户运行5s

(5) 模拟2个用户等待5s后开始执行,持续时间2s

(6)案例分析:

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

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

不同点:场景不同

  • 线程数:代表用户数,即性能测试时的负载量(线程数为2比线程数为3对应的负载量小)
  • 循环次数:代表时间,即性能测试时的运行时间(循环次数3比循环次数2对应的时间长) 

5. http请求使用示例

a.如何配置来发送http请求?

发送 GET 请求(请求参数在路径中 )

URL协议:协议、服务器域名或IP、端口、方法(GET)、路径、编码格式

参数 : 

  • 在路径后添加参数 。格式 : ?键名=键值&键名=键值
  • 在参数列表中添加参数 。格式:名称(键名)、值(键值)

发送POST请求(请求参数在消息体数据中):

URL:协议、服务器域名或服务器域名或IP、端口、方法(POST)、路径、编码格式

参数:

  • 在消息体数据中添加请求体(form/json)
  • 在参数列表中添加参数 (form)

 b.重定向

GET https://www.baidu.com/s

HTTP请求的响应数据和HTTP请求-1的响应数据一样

重定向的原因分析

第一个HTTP请求中,URL错误,导致服务器产生了重定向,提供了新的URL路径

  • jmeter会自动发送第二个http请求(使用第一个http请求中的返回的URL路径)
  • 点击最外层http请求时,显示的内容于最后一个http请求的请求和响应数据一致。

6.响应数据中存在乱码 

需要修改取样结果的编码格式->修改jmeter.properties文件:

# The encoding to be used if none is provided (default ISO-8859-1)
sampleresult.default.encoding=UTF-8 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/340354.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day4 数1 隐函数

基础知识 隐函数 :一个方程里边 使x有1个y与之对应 函数的有界性 f(X) 的值大于-M并小于M 单调性 可以用定义发判断单调性 定义法 奇函数 奇函数关于原点对称,偶关于x对称 定义域要关于原点对称 任何一个函数可以写成奇函数偶函数的形式 复合函数的…

【MySQL】MySQL 图形化界面 - 使用说明(MySQL Workbench)

一、安装软件 Navicat,SQLyog 这些软件都不错,不过都需要收费,当然也有破解版。下面用 MySQL Workbench,它是官方提供的工具。 二、使用操作 这个软件本质是一个客户端,现在要让数据库能够远程登录。不过一般不会远程…

SPME2024开幕在即,深兰科技商用清洁机器人新品推介会蓄势待发

6月5日~7日,以“跨界融合洞见未来”为主题的“2024 SPME第六届上海国际物业管理产业博览会”(以下简称“物博会”)将在上海世博展览馆举行。应主办方邀请,深兰科技携多款AI清洁机器人亮相本届展会,向来自全球各地的观展企业家、经…

C++第二十三弹---深入理解STL中list的使用

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、list的介绍 2、list的使用 2.1、构造函数 2.2、赋值操作符重载 2.3、迭代器使用 2.4、容量操作 2.5、元素访问 2.6、修改操作 2.7、其…

Docker 环境下 3D Guassian Splatting 的编译和配置

Title: Docker 环境下 3D Guassian Splatting 的编译和配置 文章目录 前言I. 宿主系统上的安装配置1. 安装 nvidia driver2. 安装 docker3. 安装 nvidia-container-toolkit II. Docker 容器安装配置1. 拉取 ubuntu 22.042. 创建容器3. 进入容器4. 容器中安装 cuda SDK5. 容器中…

详解和实现数据表格中的行数据合并功能

theme: smartblue 前言 需求场景: 在提供了数据查看和修改的表格视图中(如table、a-table等…),允许用户自行选择多行数据,依据当前状态进行特定列数据的合并操作。选中的数据将统一显示为选中组的首条数据值。同时,页面会即时反…

FASTGPT:可视化开发、运营和使用的AI原生应用

近年来,随着人工智能(AI)技术的迅猛发展,AI的应用逐渐渗透到各行各业。作为一种全新的开发模式,AI原生应用正逐步成为行业的焦点。在这方面,FASTGPT无疑是一款颇具代表性的产品。本文将详细介绍FASTGPT的设…

使用compile_commands.json配置includePath环境,解决vscode中引入头文件处有波浪线的问题

通过编译时生成的 compile_commands.json 文件自动完成对 vscode 中头文件路径的配置,实现 vscode 中的代码的自动跳转。完成头文件路径配置后,可以避免代码头部导入头文件部分出现波浪线,警告说无法正确找到头文件。 步骤 需要在 vscode 中…

k8s怎么监听资源的变更

监听k8s所有的 Deployment 资源 package mainimport ("context""fmt"v1 "k8s.io/api/apps/v1""k8s.io/apimachinery/pkg/util/json""k8s.io/client-go/informers""k8s.io/client-go/kubernetes""k8s.io/cli…

顺序表的讲解与实现

顺序表的讲解与实现 一、顺序表的概念及结构二、顺序表分类(C语言实现)顺序表和数组的区别顺序表分类静态顺序表动态顺序表 三、动态顺序表的实现(使用VS2022)1.初始化、销毁、打印内容2.检查扩容3.尾部插入、尾部删除、头部插入、头部删除尾部插入尾部删除头部插入头部删除 4.…

【AIoT-Robot】3d hand pose

手语是聋哑人士的主要沟通工具,它是利用手部和身体的动作来传达意义。虽然手语帮助它的使用者之间互相沟通,但聋哑人士与一般人的沟通却十分困难,这个沟通障碍是源于大部分人不懂得手语。 1. 手势&&手语 手势:手的姿势 ,通常称作手势。它指的是人在运用手臂时,所…

Monaco Editor系列(六)Range详解、Uri 自动匹配语言模型、缩略图 miniMap 配置

前情回顾: 一鼓作气,再鼓,再鼓!!哈哈哈。争取早日占领 Monaco 领地。 上一篇文章讲到的三个功能分别是 Position 类型、设置 markers、指定位置插入或替换内容 涉及到的知识点: ⛈️ 获取光标位置&#x…

有哪些好用的ai工具,可以提升科研、学习、办公等效率?

最近,Sora的诞生为AI再添了一把火。 据介绍,这款“文生视频”的Sora可以直接输出长达60秒的视频,并且包含高度细致的背景、复杂的多角度镜头,以及富有情感的多个角色。 不仅能准确呈现细节,还能理解物体在物理世界中…

threadX 消息队列

1、 使用消息列的目的 在ThreadX操作系统下使用消息队列的目的主要有以下几点: 提高CPU利用率: 消息队列是RTOS(实时操作系统)中常用的一种数据通信方式,常用于任务与任务之间或是中断与任务之间的数据传递。相比裸机…

Centos 报错 One of the configured repositories failed

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 使用yum update更新命令就出现下面问题,系统是刚安装的,然后修改了一下IP变成手动。(排查问题前,先回顾自己做了哪些操作,方便进一步排错&a…

PX4 ROS2 真机

如果仿真跑通了。 真机遇到问题,可参考此文章。 ubuntu22 px4 1.14.3 ros2 humble 硬件接线。 先找两个usb - ttl串口,分别接到两台主机上,保证串口通信正常。 图中是个六合一的。浪费一天时间,发现是串口设置错误&#xff…

小红书前端2轮面试期望22K,全程问低代码设计

一面(通过) 1、好,那我们开始把,先简单介绍一下自己的一个经历,以及自己有亮点的项目?balabala 2、你可以这样介绍:在这里边主要负责哪几个项目,哪些项目是比较有亮点的&#xff0…

如何让Google收录网站?

Google收录网站的前提条件是确保网站可以公开访问,并且页面加载速度需要快,这样Google爬虫才可以访问到你的网站,并且索引你网站中的内容。实现了上面的前提条件,可以通过优化数据结构、创建站点地图、使用Google Search Console、…

Apache Doris 基础 -- 数据表设计(表索引)

1、索引概述 索引用于帮助快速过滤或搜索数据。目前,Doris支持两种类型的索引:内置智能索引和用户创建的二级索引。 内置智能索引 排序键和前缀索引:Apache Doris基于排序键以有序的方式存储数据。它为每1024行数据创建一个前缀索引。索引中的键是当前1024行组的…

Go微服务: 封装nacos-sdk-go的v2版本与应用

概述 基于前文:https://active.blog.csdn.net/article/details/139213323我们基于此SDK提供的API封装一个公共方法来用于生产环境 封装 nacos-sdk-go 我们封装一个 nacos.go 文件, 这个是通用的工具库 package commonimport ("fmt""github.com/nac…