性能测试学习笔记

一、性能测试是什么?

1.生活案例:

学校选课系统,就会经常崩溃!!!!

2.性能测试的定义

测试人员借助测试工具,模拟系统在不同场景下,对应的性能指标是否达到预期

3.性能测试和功能测试的区别

功能测试性能测试
人工执行测试工具执行
不管在什么场景下,只要能跑起来就行软件在极端情况下,是否能正常运行

4.什么样的表现是性能好的表现,什么样的表现是性能不好的表现?

软件1:打开首页消耗1ms,软件2:打开首页消耗1s

所以请问那个软件性能好呢?

5.影响一个软件性能因素有哪些?

软件硬件用户
算法、编程语言...服务器CPU利用路、内存、磁盘操作频率、cpu核心数...用户并发数,用使用时长,访问频率...

二、为什么要做性能测试?

  • 获取系统性能的指标,作为性能指标的基准(软件摸底)
  • 验证系统的性能指标是否达到
  • 发现性能瓶颈,内存泄漏等问题
  • 系统正常情况下的最大容量
  • 帮助系统运维部门找到更好的规划硬件配置

三、性能测试常见的术语以及性能测试的衡量指标(面试题

1.并发用户数:大量用户同时发送同一个请求

        业务层面的并发用户数:指的是同时向服务器发送请求的用户数量

        后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量

2.响应时间:

用户响应时间:用户发出请求到接受到响应的这段时间

请求响应时间:服务器收到请求发出响应的这段时间

影响一个软件的响应的因素:数据库性能、网络带宽、服务器处理性能、软件的算法、逻辑、用户设备

3.事务响应时间

4.每秒事务通过的数量

5.点击量

6.点击率:http的请求率

7.吞吐量:用户一次请求的数据交互量

8.吞吐率:吞吐量/时间(吞吐率越高,性能越高)

9.思考时间:用户操作页面时候调用接口的间隔时间

10.资源利用率:不同系统资源的使用的情况,如cpu,硬盘

四、性能测试的分类

基准性能测试让系统在正常情况下,观察软件性能指标场景:软件刚上线进行性能摸底
负载性能测试让系统处于一定的压力情况下,观察系统性能指标场景:相当于在瓶颈测试
压力测试让系统处于饱和状态下,观察系统性能指标场景:在水快溢出的时候
可靠性测试验证系统在一个时间段内运行,在这个运行时间段,观察系统各项性能的指标是不是正常的

五、性能测试的流程

功能测试的流程:需求分析-->测试计划-->测试设计-->测试执行-->测试评估-->上线

性能测试的流程:需求分析-->测试计划-->选择性能测试工具-->性能测试脚本编写-->测试执行-->测试评估(产出报告)-->上线

补充:性能测试中出现的不符合预期的情况叫做性能瓶颈,修复的过程是优化

六、LoadRunner学习

1.LoadRunner介绍

LoadRunner是一种适用于许多软件体系架构的自动负载测试工具,从用户关注的响应时间、吞吐量, 并发用户和性能计数器等方面来衡量系统的性能表现,辅助用户进行系统性能的优化

2.LoadRunner组成

LoadRunner主要包括三个前台功能组件,分别为VuGen(虚拟用户脚本生成器)、Controller(测 试控制器)和Analysis(结果分析器)。系统会自动调用后台功能组件LG(负载生成器)和Proxy(用户代 理)来完成性能测试工作。

Virtual User GeneratorVuGen 是录制与便携脚本的地方。通过录制或编写脚本来模拟用户的行为,录制好的脚本是不同语言表达的文本文件,在LG执行时被解析和执行。脚 本录制和回放过程是在Proxy支持下完成的。
Controller设计场景、运行场景,是执行负载测试管理和监控的中心。在这里指定具体的性能测试方案,执行性能测试,收集测试 数据,监控测试指标。监控工具将测试过程中收集到的客户机、服务器和网络性能指标数据显示在监控页面 上,便于测试人员对系统表现进行随时掌握。
Analysis对测试过程中收集到的各种性能数据进行计算、汇总和处理,生成各种图表和报 告,为系统性能测试结果分析提供支持。

3.下载安装包

Win10下LoadRunner12 下载安装汉化图文教程(含LoadRunner安装包)_loadrunner12下载-CSDN博客

七、自带的系统

1.WebTours学习

1.1启动方式

进入WebTours的目录找到S塔塔Server.bat

启动窗口(包含ip)

 1.2配置

找到端口号

成功页面

用户信息(第一行就是密码)

八、脚本录制学习

VSG使用

1.创建

 

 如何确定你要测试的程序用的是什么协议?

找开发问问

 2.成功启动

九、脚本加强

1.事务插入

事务的状态默认情况下是 LR_AUTO。一般情况下,我们也不需要修改,除非在手工编写代码时,有可 能需要手动设置事务的状态。可以通过步骤导航器来查看步骤的参数选项。

lr_start_transaction("login");//事务开始函数web_submit_form("login.pl", "Snapshot=t3.inf", ITEMDATA, "Name=username", "Value=test08", ENDITEM, "Name=password", "Value=test", ENDITEM, LAST);
lr_end_transaction("login", LR_AUTO);//事务结束函数

2.插入集合

lr_rendezvous("rendezvous1");

注意:集合点经常和事务结合起来使用。集合点只能插入到Action 部分,vuser_init和vuser_end 中不 能插入集合点。

3.插入检查点

对页面上的元素的检查

注意:要放在对应检查的url前面

web_reg_find("Fail=NotFound","Search=All","SaveCount=","Text= Don't forget to sign off when you're done!",LAST);

4.参数化

如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。这些操作都被记录到了脚 本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引 起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。

注意:参数化完成后要调整log的打印还有运行次数

 

5.打印日志

lr_log_message
lr_ouput_message

十、设计测试场景(Controller)

1.启动

VUG

Controller

设计场景

...

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

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

相关文章

Spring -- 事务

Spring中事务的操作分为两类:(1)编程式事务 – 手动写代码操作事务(2)声明式事务 – 利用注解开启事务和提交事务 1. 编程式事务 准备Controller RestController RequestMapping("/user") public class UserInfoController {Autowiredprivate UserInfoService use…

JAVA开发学习-day21

JAVA开发学习-day21 1. 删除表单数据 根据ElementUI的官方组件指南&#xff0c;为表单每列的数据添加删除按钮 <el-table :data"tableData" style"width: 100%"><el-table-column prop"id" label"ID" width"180"…

SpringBoot基础(一):快速入门

SpringBoot基础系列文章 SpringBoot基础(一)&#xff1a;快速入门 目录 一、SpringBoot简介二、快速入门三、SpringBoot核心组件1、parent1.1、spring-boot-starter-parent1.2、spring-boot-dependencies 2、starter2.1、spring-boot-starter-web2.2、spring-boot-starter2.3、…

Visual Studio 和 Visual Studio Code 的比较与应用偏向

Visual Studio 和 Visual Studio Code&#xff08;VS Code&#xff09;是微软开发的两个不同的开发工具&#xff0c;各有特点和优势&#xff0c;适用于不同的开发需求。下面是详细的比较和在实际应用中的偏向。 功能和特性 Visual Studio 完整的IDE&#xff1a;支持多种编程…

海外短剧小程序 ,竖屏会员付费看剧系统搭建paypal,stripe对接支付功能

目录 前言&#xff1a; 一、系统功能 二、系统常见问题 总结&#xff1a; 前言&#xff1a; 在全球化的今天&#xff0c;短剧作为一种新兴的内容形式&#xff0c;正迅速赢得国际观众的心。尤其是海外市场的短剧推广&#xff0c;正成为内容创作者和营销者的新宠。本文将深入…

Adobe Substance 3D Sampler v4.2.2.3719 解锁版下载及安装教程(3D材质管理软件)

前言 Substance 3D Sampler简称“Sa”是一款由Adobe新推出的3D真实材质贴图制作软件。允许用户通过调整和混合现有材料&#xff0c;或通过扫描&#xff08;单个或多个图像&#xff09;中提取新材料来创建和迭代材料集合&#xff0c;从而轻松将真实的图片转换为具有真实感的表面…

JavaEE从入门到起飞 (三) ~AOP

晚上好&#xff0c;愿这深深的夜色给你带来安宁&#xff0c;让温馨的夜晚抚平你一天的疲惫&#xff0c;美好的梦想在这个寂静的夜晚悄悄成长。 目录 文章目录 前言 了解面向切面编程&#xff08;AOP&#xff09; 什么是面向切面编程&#xff08;AOP&#xff09;&#xff1f…

二、Matlab图像处理基础

文章目录 一、Matlab图像处理工具箱二、图像文件的读取2.1 文件信息的读取2.2 图像文件的读取2.3 图像文件的保存2.4 图像文件的显示2.5 像素信息的显示 本章知识点总结 一、Matlab图像处理工具箱 在帮助文档可以搜索到图像处理工具箱的介绍 二、图像文件的读取 2.1 文件信息…

回归评价指标

这里写目录标题 1. 均方误差MSE2. 均方根误差RMSE3. 平均绝对误差MAE4. R^2^5. 调整后R^2^ 1. 均方误差MSE 回归数据和原始数据误差的平方和/原始数据个数平方的原因&#xff1a;不平方正负误差会抵消&#xff0c;对大误差更为敏感&#xff0c;在一些场景下更能凸显出模型预测…

41.【C语言之外】聊聊Cheat Engine官方教程步骤6的思考

0.看前须知 有一定指针概念的基础 推荐阅读前几篇博文&#xff1a; 19.【C语言】指针&#xff08;重难点&#xff09;&#xff08;A&#xff09; 37.【C语言】指针&#xff08;重难点&#xff09;&#xff08;B&#xff09; 38.【C语言】指针&#xff08;重难点&#xff09…

【python】模块包

前言 模块化是python中的重要知识。随着我们接触的工程项目变得越来越大时&#xff0c;就需要把我们的运行代码进行拆解以便我们检查和项目的推进。有些时候&#xff0c;几个程序都需要同一个功能&#xff0c;那python就提供一种方法&#xff0c;把需要重复利用的代码放在同一…

Spring Boot 3.x Web MVC实战:实现流缓存的request

上一节《Spring Boot 3.x Filter实战&#xff1a;记录请求日志》实践最后遇到了request对象的流不可重复读的问题&#xff0c;本小节我们将通过流数据缓存以及流的装饰器模式来解决这个问题。如果觉得对你有帮助&#xff0c;记得点赞收藏&#xff0c;关注小卷&#xff0c;后续更…

Linux部署MySQL8.0

目录 一、部署前准备1.1、查看系统版本和位数&#xff08;32位或64位&#xff09;1.2、下载对应安装包 二、开始部署1、将安装包解压并且移动到目标安装目录2、准备MySQL数据和日志等存储文件夹3、准备MySQL配置文件 my.cnf4、创建mysql单独用户组和用户&#xff0c;将安装目录…

<数据集>灭火器识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3262张 标注数量(xml文件个数)&#xff1a;3262 标注数量(txt文件个数)&#xff1a;3262 标注类别数&#xff1a;1 标注类别名称&#xff1a;[extinguisher] 使用标注工具&#xff1a;labelImg 标注规则&#xf…

无人机培训机构推广运营理论技术

一、市场定位与品牌建设 在无人机培训行业的激烈竞争中&#xff0c;精准的市场定位是成功的第一步。首先&#xff0c;需明确目标学员群体&#xff0c;如航拍爱好者、农业植保服务者、应急救援人员或专业无人机操作员等。基于目标群体的需求&#xff0c;构建差异化的品牌形象。…

FlexBV电路查看软件

FlexBV - Macbook, iPhone, PC/Laptop & Electronics BoardViewer with PDF Cross Referencing 免费。 支持tvw&#xff0c;cad格式。 支持Windows,Linux,Mac。 而且我发现cad格式是文本的&#xff01;意味着可以自由编辑&#xff01;

git拉取代码出现“remote: The project you were looking for could not be found.”错误分析

git拉取代码出现“remote: The project you were looking for could not be found.”错误分析 如果输入的远程地址正确&#xff0c;那么极大可能是用户未登录或多个用户登录无法正确获取你想要的用户&#xff0c;如下图所示&#xff0c; 由于之前有同事在我电脑登录git账号&a…

leetcode 103.二叉树的锯齿形层序遍历

1.题目要求: 给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。2.做题思路:由题我们可以判断&#xff0c;树中每到偶数…

spring过滤器和拦截器的区别

1出身不同。 过滤器来自servlet&#xff0c;拦截器来自spring框架。 2触发时机 不同请求的执行顺序是&#xff1a;请求进入容器 > 进入过滤器 > 进入 Servlet > 进入拦截器 > 执行控制器 过滤器先执行&#xff0c;会在servlet请求之前和相应之后进行处理。 拦…

写一个Vue2和vue3的自定义指令(以复制指定作为示例)

文章目录 一、自定义指令是什么&#xff1f;二、自定义指令有啥用&#xff1f;三、自定义指令怎么用&#xff1f;1.自定义指令的参数2.自定义指令的钩子函数&#xff08;1&#xff09;五个钩子函数的说明&#xff08;2&#xff09;钩子函数的参数(主要参数&#xff1a;el和valu…