性能测试笔记

一、性能测试的概念

  1. 性能测试的概念

使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程

  1. 性能测试的目的

评估当前系统能力,出现性能bug后,优化性能:预测未来的性能需求是否满足
例如:验收第三方提供的软件
常见的性能需求(性能需求文档):
WEB首页打开速度在5s以下,web登录速度15s以下
邮箱服务支持50万个在线用户
计费话单成功率达到99.999%以上
在100个并发用户的高峰期,邮箱的基本功能,处理能力至少达到10TPS
系统能在高于实际系统运行压力1倍情况下,稳定运行12小时
这个系统能否支撑200万的vn(每天登录系统的人次) vn—Virtual user(虚拟用户)
寻找性能瓶颈,优化性能
评估软件是否能满足未来需求

  1. 什么是性能
  • 时间:系统处理用户请求响应时间
  • 资源:系统运行过程中,系统资源的消耗情况

二、性能测试的策略

  1. 基准测试
  • 狭义上:就是单用户测试(单用户循环多次得到的数据)
  • 广义上:建立基准线,当系统的软硬件环境发生变化之后再进行一次基准测试确定变化对性能的影响

(1)基准测试数据的用途

基准测试不会单独存在
为多用户并发测试和综合场景测试等提供参考依据
为系统/环境配置、系统优化前后的性能提升/下降提供参考指标

  1. 负载测试
  • 概念:通过逐步增加系统负载。确定在满足系统的性能指标(如响应时间等)情况下,找出系统所能承受的最大负载量的测试
  • 作用:系统最大负载量达到用户要求时,系统才能上线使用
  1. 稳定性测试

概念:在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器能满足线上业务需求

  1. 压力测试

概念:在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力
测试场景:
极限负载情况下的破坏性压力测试
高负载下的长时间的稳定性压力测试

  1. 并发测试

概念:并发测试(绝对并发):是指在极端的时间内,发送大量请求,来验证服务器对并发的处理能力

三、性能测试的指标(标准)

  1. 为什么要学习性能测试指标

对性能测试结果进行量化衡量

  1. 什么是响应时间

指从客户端发送请求开始,到客户端接收到结果的总时间
包括:服务器处理时间+网络传输时间

  1. 什么是并发用户数

某一时刻同事向服务器发送请求的用户数

  1. 吞吐量(Throughput)

指的是单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力

  • QPS(Query Per Second)每秒查询数:即控制服务器每秒处理的指定请求数量-
  • TPS(Transactions Per Second)每秒事务数:即控制服务器每秒处理事务请求的数量
  • 事务:即业务,页面上的一次操作,可能对应一个请求/多个请求
  1. 点击数和错误率
  • 点击数:指客户端向服务端发送请求时,所有页面的页面资源元素(如:图片、链接、框架css、js等)的请求总数量
    注意:
    只有web项目才有此指标
    点击数是请求数,点击数不是页面上的一次点击

  • 错误率:指系统在负载情况下,失败业务的概率。错误率=(失败业务数/业务总数)*100%

      注意:大多系统都会要求错误率无限接近于0错误率是一个性能指标,不是功能上的随机bug
    

6.资源使用率

资源使用率:是指系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量*100%”形成资源利用率的数据
在这里插入图片描述

四、性能测试的流程

功能测试完成后bug修复好后-》性能测试

1.性能测试执行

建立测试环境-》编写测试脚本-》性能测试监控-》执行测试脚本
在这里插入图片描述

2.性能分析和调优

说明:性能测试分析人员经过对结果的分析后,如果不符合性能需求,则会提出性能bug,然后有开发人员进行后续的调优
在这里插入图片描述

五、Jmeter元件和组件的介绍

  1. Jmeter的安装和介绍

(1)Loadrunner和Jmeter对比
在这里插入图片描述

(2)Jmeter的bin目录介绍
在这里插入图片描述

(3)其他目录介绍
在这里插入图片描述

(4)目录总览
在这里插入图片描述

(5)永久修改语言配置
在这里插入图片描述

  1. 元件的基本介绍

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

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

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

  1. 元件的作用域

元件的作用域:是考测试计划的属性结构中元件的父子关系来确定的

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

作用域的原则:

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

同一个作用域下不同类型元件:
配置元件–>前置处理程序–>定时器–>取样器–>后置处理程序–>断言–>监听器
同一个作用域下多个相同类型元件:
按照测试计划中从上到下的顺序依次执行

六、JMeter使用示例

  1. JMeter第一个案例

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

步骤:

  1. 启动JMeter

  2. 在“测试计划”下添加“线程组”

  3. 在“线程组”下添加“HTTP请求”取样器

  4. 填写“HTTP请求”的相关请求数据

  5. 在“线程组”下添加“查看观察树”监听器

  6. 点击“启动”按钮运行,并查看结果

  7. 线程组

概念:控制JMeter用于执行测试的一组用户
线程组的分类:

  • Setup线程组:预测试操作,所有脚本之前执行
  • 普通线程组:执行测试用例,可以有1个或多个(并行/串行)
  • Teardown线程组:测试后操作,所有脚本之后执行
  1. 线程组参数
    在这里插入图片描述

  2. http请求参数
    在这里插入图片描述

(1)响应返回中文乱码解决方案
在这里插入图片描述

七、JMeter的参数化

  1. 什么是参数化测试?常用的参数化方法
    在这里插入图片描述

(1)用户定义变量的步骤
在这里插入图片描述

(2)用户参数的参数化的步骤
在这里插入图片描述

(3)csv参数文件设置
在这里插入图片描述

(4)函数参数化设置

函数助手对话框位置
在这里插入图片描述

生成函数
在这里插入图片描述

引用函数
在这里插入图片描述

参数化小结
在这里插入图片描述

(5)4种参数化的优缺点
在这里插入图片描述

  • 函数:
    • 作用:保证不用的用户及多次循环时,都可以取到不用的值,不需要提前设置
    • 局限性:输入数据有特定的业务要求时无法使用(如:登录时的用户名密码)

八、JMeter断言
在这里插入图片描述

  1. 响应断言

(1)参数配置详细介绍
在这里插入图片描述
在这里插入图片描述

(2)响应断言的操作步骤
在这里插入图片描述

  1. JSON断言

(1)json断言参数介绍
在这里插入图片描述

(2)json断言操作步骤
在这里插入图片描述

3.断言持续时间
在这里插入图片描述

4.3种断言的区别
在这里插入图片描述

九、JMeter关联
在这里插入图片描述

1.正则表达式
在这里插入图片描述

什么是正则表达式?

在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

常用元字符

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

常用限定符

代码/语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
n重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

常用反义词

代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符

(1)案例
在这里插入图片描述

2.正则表达式提取器

(1)正则表达式参数介绍
在这里插入图片描述

案例
在这里插入图片描述

3.XPath提取器

(1)XPath参数介绍
在这里插入图片描述

(2)案例
在这里插入图片描述
在这里插入图片描述

4.JSON提取器

(1)JSON参数介绍
在这里插入图片描述

(2)案例
在这里插入图片描述
在这里插入图片描述

十、JMeter属性

  1. 设置函数和使用函数
    在这里插入图片描述

2.函数设置和使用步骤
在这里插入图片描述

  1. 案例

(1)添加线程组

(2)添加http请求-天气

(3)添加json提取器,获取数据
在这里插入图片描述

(4)添加BeanShell取样器(将JSON提取器提取的值保存为JMeter属性)

  • 工具函数助手对话框
    在这里插入图片描述

  • 保存JMeter属性:KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(pr…{city},)}
    在这里插入图片描述

(5)添加线程组

(6)添加http请求-百度

  • 读取JMeter属性-根据函数property
    在这里插入图片描述
    在这里插入图片描述

    (7)添加查看结果树
    测试计划选择为串行执行

  1. 关联和属性小结
    在这里插入图片描述

十一、JMeter录制脚本

十二、JMeter直连数据库

1.使用场景
在这里插入图片描述

2.操作步骤
在这里插入图片描述
在这里插入图片描述

3.案例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十三、逻辑控制器
在这里插入图片描述

1.IF控制器

(1)参数介绍
在这里插入图片描述

(2)案例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.循环控制器
在这里插入图片描述
在这里插入图片描述

(1)循环控制器和线程组循环次数的区别
在这里插入图片描述

3.ForEach控制器

(1)参数介绍
在这里插入图片描述

(2)案例
在这里插入图片描述

(3)案例2
在这里插入图片描述

4.同步控制器

(1)参数介绍
在这里插入图片描述

(2)案例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.吞吐量定时器

(1)参数
在这里插入图片描述

6.固定定时器

(1)参数
在这里插入图片描述

(2)案例
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Web:前端常用的几种Http请求GET和POST样例

1、简述 在Web开发过程中,少不了发起Http请求服务端的接口数据,在不同的框架中使用了不同的Http请求方式,常用的请求有fetch、 ajax、 axios、XMLHttpRequest、request,以下样例仅供参考。 2、Fetch Fetch API 是一种 JavaScr…

Vue Router(二)

目录 一、嵌套路由 1、路由定义 2、代码例子 3、重定向 二、懒加载 1、缘由 2、代码例子 三、导航守卫 1、全局前置守卫 2、全局后置守卫 3、meta元信息 四、生命周期 1、解释 2、执行顺序 3、例子 五、keep-alive组件缓存(保活) 1、介…

【目标检测】——PE-YOLO精读

yolo,暗光目标检测 论文:PE-YOLO 1. 简介 卷积神经网络(CNNs)在近年来如何推动了物体检测的发展。许多检测器已经被提出,而且在许多基准数据集上的性能正在不断提高。然而,大多数现有的检测器都是在正常条…

HTTPS 加密工作过程

引言 HTTP 协议内容都是按照文本的方式明文传输的,这就导致在传输过程中出现一些被篡改的情况。例如臭名昭著的运营商劫持。显然, 明文传输是比较危险的事情,为此引入 HTTPS ,HTTPS 就是在 HTTP 的基础上进行了加密, 进一步的来保…

九、互联网技术——记忆背诵

文章目录 一、网络操作系统的功能和特性二、网络操作系统的逻辑构成四、主动攻击和被动攻击五、安全机制和安全服务六、信息与数据七、数据处理与数据管理八、数据模型九、概念模型的E-R表示方法十、四种数据模型十一、数据库系统组成十二、DBMS主要功能十三、数据库系统的3级模…

【C++初阶(二)C——C++过渡必看】

文章目录 前言一、C关键字🍎二、命名空间🍅1.命名空间的定义🍒2.命名空间使用🍓 三、C输入&输出🍑四、缺省参数🫑1. 缺省参数概念🍉2. 缺省参数分类🥝 五、函数重载&#x1f965…

集中发现服务DCPSInfoRepo通信端口和ORB交互流程

OpenDDS集中发现服务DCPSInfoRepo,为OpenDDS的pub和sub通信终端提供主题匹配和通信协商和中介服务,是基于TAO的ORB机制完成的,GIOP协议。 1、集中发现服务DCPSInfoRepo的相关通信端口 1)集中发现服务DCPSInfoRepo通信端口 DCPSInfoRepo -ORBListenEndpoints iiop://192.…

【maven】idea中基于maven-webapp骨架创建的web.xml问题

IDEA中基于maven-webapp骨架创建的web工程&#xff0c;默认的web.xml是这样的。 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name…

mac文件为什么不能拖进U盘?

对于Mac用户来说&#xff0c;可能会遭遇一些烦恼&#xff0c;比如在试图将文件从Mac电脑拖入U盘时&#xff0c;却发现文件无法成功传输。这无疑给用户带来了很大的不便。那么&#xff0c;mac文件为什么不能拖进U盘&#xff0c;看完这篇你就知道了。 一、U盘的读写权限问题 如果…

模拟滤波器的基础知识和设计

信号处理工作中滤波器的应用是非常广泛的&#xff0c;可以分成模拟滤波器和数字滤波器两种&#xff0c;数字滤波器主要包括两种&#xff0c;IIR和FIR&#xff0c;这两种滤波器后面统一说&#xff0c;今天先来说一说模拟滤波器&#xff08;主要是我先用Python实现了Matlab书里面…

【iOS】——仿写计算器

文章目录 一、实现思路二、实现方法三、判错处理 一、实现思路 先搭建好MVC框架&#xff0c;接着在各个模块中实现各自的任务。首先要创建好UI界面&#xff0c;接着根据UI界面的元素来与数据进行互动&#xff0c;其中创建UI界面需要用到Masonry布局。 二、实现方法 在calcu…

八、互联网技术——物联网

文章目录 一、智慧物联案例分析二、M2M技术三、数据保护综合案例分析一、智慧物联案例分析 智能物流是一种典型的物联网应用。一个物流仓储管理系统架构如下图所示: [问题1] 图中的三层功能:仓库物品识别、网络接入、物流管理中心,分别可对应到物联网基本架构中的哪一层? …

分页查询(关键词: limit)

MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 比如现在有一张表emp有15条数据 我想每页只显示5条数据,分3页,这样看起来简捷一些,我该怎么实现呢 语法格式: select */列名 from 表名 limit 初…

Dubbo3应用开发—Dubbo3注册中心(zookeeper、nacos、consul)的使用

Dubbo3注册中心的使用 zookeeper注册中心的使用 依赖引入 <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper-curator5</artifactId><version>${dubbo.version}</version><type>p…

三十一、【进阶】B+树的演变过程

1、B树简单介绍 &#xff08;1&#xff09;介绍&#xff1a;B树也属于B树&#xff0c;是B树的变种 &#xff08;2&#xff09;特点&#xff1a;所有的数据都位于叶子节点上&#xff0c;叶子节点上的所有元素形成了一个单项链表 &#xff08;3&#xff09;图示&#xff1a; 2…

「网络安全」SQL注入攻击的真相

前言 点击此处即可获得282G网络安全学习资料 我们生活在数据的黄金时代。有些公司将其分析为更好的自己&#xff0c;有些公司为了获利而进行交易&#xff0c;没有一家公司因其价值而自由放弃 - 对于他们的业务和犯罪分子。 SQL&#xff08;结构化查询语言&#xff09;是一种…

【技术干货】如何通过 DP 实现支持经典蓝牙的联网单品设备与 App 配对

经典蓝牙模块&#xff08;Classic Bluetooth&#xff09;主要用于呼叫和音频传输&#xff0c;所以经典蓝牙最主要的特点就是功耗大&#xff0c;传输数据量大。蓝牙耳机、蓝牙音箱等场景大多采用经典蓝牙&#xff0c;因为蓝牙是为传输声音而设计的&#xff0c;是短距离音频传输的…

钡铼DLT645和IEC104转Modbus协议网关BL120DT:构建智能电力网的关键角色

在电力行业中&#xff0c;DLT645和IEC104转Modbus协议网关已成为重要的通信工具&#xff0c;用于将电力设备的数据和状态信息转换为Modbus协议&#xff0c;以便于远程监控和管理。以下是关于钡铼DLT645和IEC104转Modbus协议网关BL120DT在电力行业应用的案例介绍。 某电力公司需…

自动化项目实战->测试博客系统

1.熟悉项目-->哪些场景容易出现问题 2.针对核心流程设计测试用例(手工测试用例) 3.将手工测试用例转换为自动化测试用例 4.部署到服务器 一、针对核心流程设计测试用例 二、将手工测试用例转换为自动化测试用例 2.1设计自动化测试用例的代码结构 初始化动作:BeforeAll--…

[图论]哈尔滨工业大学(哈工大 HIT)学习笔记23-31

视频来源&#xff1a;4.1.1 背景_哔哩哔哩_bilibili 目录 1. 哈密顿图 1.1. 背景 1.2. 哈氏图 2. 邻接矩阵/邻接表 3. 关联矩阵 3.1. 定义 4. 带权图 1. 哈密顿图 1.1. 背景 &#xff08;1&#xff09;以地球为建模&#xff0c;从一个大城市开始遍历其他大城市并且返回…