性能测试(三)----loadrunner的使用

一)Controller的使用:

1)在VUG中针对写好的脚本创建场景:

 2)手动打开Controller进行脚本的添加并创建场景:

 

 点击完成之后直接打开Controller所在的组件

3)针对场景来进行设置:

 Basic schedule:点击这个选项进行设置

可手动修改每个用户组的Quantity来修改并发用户总量

3.1)初始化每一个虚拟用户在运行脚本之前,在我们的脚本执行之前就去初始化我们所有的虚拟用户;

3.2)设置启动机制:每隔固定的时间进行启动多少虚拟用户

从start那一栏就可以修改并发用户数 

3.3)设计性能测试脚本的运行时间:

3.4)设置虚拟用户退出机制:

3.5)看图:

这个场景图表示每隔5S启动一个虚拟用户,最后每隔5S退出一个虚拟用户,程序一共运行的时间是0.2S

4)进行运行测试场景:点击下面的run或者是design上面的运行按钮

下面就可以看到虚拟用户在不同状态下面的转变

下面的这个Reset是让所有的虚拟用户回归到初始状态,也就是未运行状态

 

上面是点击率和吞吐量

上面表示性能测试监控的一个状态,蓝色的单词表示可以进行查看的

黑色的数据就是不可查看,没有数据

如果想要在Controller里面进行查看windows系统的资源的图标

那么需要进行手动修改配置

1)需要打开任务管理器,启动对应的服务

2)选中系统资源图标下面的windows Resource

 3)在下面的空白区域进行右键,选中add Measurements

 4)点击add Measurements之后会弹出以下界面

 5)点击OK

显示各个监控指标的变化:

1)先将下面的列表进行隐藏

2)选择要进行展示的图表的个数:选择想要监控的图表数量

 3)最终展示结果:每当我们进行单点击一个监控指标的时候

3.1)在下面的控制台就有相应的数据了,展示资源图的具体详细的内容

3.2)当我们进行双击的时候,就可以把这个资源图进行放大了

3.3)当我们进行选中下面的四个展示结果的时候,当我们进行双击,上面的资源图的对应的曲线会加粗,就可以看看指标对应的曲线是什么?

分析常见曲线:

1)下面是观看并发用户数,横坐标是程序的执行时间,纵坐标是并发用户数

下面是finished的图型曲线

1.1)从上面的黄色曲线和蓝色曲线进行交叉可以看出运行的用户不断减少,别忘了看这个

 1.2)点击空白处,可以新进行增加监控指标,进行双击就可以进行添加

 2)下面我们来进行观看一下

HTTP Response per Second这是表示每一秒HTTP响应的数量

黄色的表示HTTP状态码是200的响应数量的变化

蓝色的表示HTTP状态码是500的响应数量的变化

由此可以看出,我们的服务都已经被正确的处理了并进行返回了,所以说状态码是正常的

3)下面是每秒事务通过数的一个指标:

下面的四个指标,每一个脚本文件都可以认为是一个事务

3.1)在每秒事务通过数中可以看到途中有三条事务曲线,实际上只在action脚本中定义了一个login_transaction;

3.2)LR中认为每一个脚本文件都是一个事务,vuser_init,action,vuser_end三个脚本文件就是三个事务;

3.3)我们可以进行点击每一个事务来查看事务执行状态

4)事务响应时间:

ActionTransaction所做的事情也是非常多的,比如说请求webTours的首页,浏览器进行渲染页面之类的

第一条曲线是Action事务的随时间变化的一个事务响应时间的变化

第二条曲线是loginTransaction事务随时间变化的一个事务响应时间的变化

这两条曲线进行相减就是Action请求WebTours首页的一个响应时间

我们可以在这里面新增加对应的脚本的虚拟用户数

场景的运行方式:

1)如果我们来按照场景的方式来运行,无论场景中的脚本数量有多少,所有的脚本统一调度和执行,下面两个脚本的并发用户数之和就是6统一按照Global Schedule的配置方式来运行

 2)按照Group来进行运行,在不同的脚本场景中有着不同的运行方式

3)总结:

二)Analysis的使用:

1)生成测试报告:

1)先将results中的Auto load Analysis和Auto Collate Results进行勾选,在Controller中勾选上自动化分析性能测试并自动生成测试报告

2)当我们的脚本在指定场景规则下执行完成,就会自动地打开analysis组件并展示测试报告和测试结果3)在Controller中将我们的场景运行完成之后,进行点击ctrl+s,来进行保存
4)当我们的程序自动地打开Analysis之后,再次点击ctrl+s进行保存:保存analysis文件

5)打开测试报告:

1)这里面的Std.Deviation表示标准方差,表示如果这个值越小,说明事务运行越稳定,标准偏差

2)不要看最大值和最小值,要看平均值和标准偏差,如果标准偏差的值越大,说明越不稳定,如果标准偏差的值越小,说明越稳定

2)分析测试报表:

2.1)运行的虚拟用户图:显示并发用户数

1)显示性能测试的每一秒的期间执行的Vuser脚本的Vuser数量及其状态,可以通过此图可用于确定任何给定时刻的服务器上面的Vuser负载

2)就可以有效地看出哪一个时刻服务器的压力更大,负载数更多


2.2)点击率:

1)显示的是我们在性能测试场景期间内,虚拟用户给WEB服务器在每一秒内给WEN服务器发送的HTTP请求的数量;

2)点击数越大,发送的HTTP请求的数量就越高

3)看看点击量增大的时候,吞吐量有没有增大,一般来说,点击率增加,吞吐量也会增加

4)显示性能测试场景中运行期间的每一秒内向HTTP服务器请求数量,帮助我们根据点击次数对Vuser生成的负载量进行评估,可以将此图和平均事务响应时间的图进行比较,查看点击次数对于事务的影响,因为请求数量增多可能会导致响应时间会变长

5)点击空白处,进行右键:

 

最后就会生成这个:

2.3)吞吐量:吞吐量的图表示的是负载测试场景中每一秒服务器的吞吐量,以字节为单位

此图可以帮助我们根据服务器的吞吐量对Vuser生成的负载量进行评估,对平均事务的响应时间图进行比较,吞吐量对于事务性能的影响

一)我们的点击率图和吞吐量的图是非常相似的,但是为什么吞吐量的图会稍微滞后一点?

点击数是向HTTP服务器发送请求,而吞吐量表示的是服务器把响应返回给客户端,所以肯定是先请求再响应,因为吞吐量表示的是相应返回之后的资源数量肯定是先有请求,再有返回

二)如果说点击数或者请求变多,但是吞吐量没有什么反应,可能的原因是什么?

2.1)服务器在压力增大的时候,响应速度变慢,来不及响应,导致吞吐量降低

2.2)压力没有到服务器被拦截下来了

2.3)服务器设计了一定的阈值,超过多少了请求就不进行返回响应了,有的服务器为了避免大量的并发导致服务器宕机,直接影响线上服务器的一个使用情况,所以可以在服务器后端设置阈值,可以给用户返回一个服务器繁杂,收到请求直接return;

三)这就是说为什么性能测试比较难,难就难在性能分析,每一个曲线的走向都是需要严格的分析的,有可能是运维的问题,也有可能是一些中间件的问题,还有是架构的选择,不同的系统可能的情况还不一样,需要具有丰富的性能测试经验

四)性能分析的知识面太广:

操作系统性能分析还有调优,CPU,磁盘,网络,进程线程并发,IO操作

JVM性能分析及其调优,JAVA内存分析,JAVA线程诊断

TCP/IP,UDP,连接数,长连接,短链接等等

2.4)平均事务响应时间:这个图主要显示Vuser性能测试过程中每一秒期间在服务器上面的命中次数,可以帮助我们根据命中次数来进行评估Vuser生成的负载量

主要查看:

1)响应图是否是稳定的

2)查看事务响应时间是否达到了预期

3)也要查看标准方差和平均值

2.5)如果想要查看更多图标,可以右键进行打开:

2.6)系统资源使用情况图:

1)processor Time:CPU使用时间,也就是被消耗的处理器时间数量,如果服务器专用与可接受的最大上限是80%-50%,也就是常见的CPU使用率,可以通过任务管理器进行查看

最好进行优化

2)Available Mbytes:可用的物理内存

计算式已经消耗的物理内存=实际内存-可用的物理内存

可用的物理内存越高,说明消耗的物理内存也越少 

总结:了解性能测试的基本概念,并且可以进行一些简单的性能测试

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

css绘制一个Pinia小菠萝

效果如下: pinia小菠萝分为头部和身体,头部三片叶子,菠萝为身体 头部 先绘制头部的盒子,将三片叶子至于头部盒子中 先绘制中间的叶子,利用border-radius实现叶子的效果,可以借助工具来快速实现圆角的预想…

ChatGPT常用开源项目汇总

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

基于jmeter+perfmon的稳定性测试记录

最近承接了项目中一些性能测试的任务,因此决定记录一下,将测试的过程和一些心得收录下来。 说起来性能测试算是软件测试行业内,有些特殊的部分。这部分的测试活动,与传统的测试任务差别是比较大的,也比较依赖工具&…

c++之模板入门详解(五千字长文详解)

c之模板入门详解 文章目录c之模板入门详解泛型编程函数模板函数模板概念函数模板格式模板的原理函数模板的实例化模板实例化的个数对于同不同类型的传参!如何处理这个问题呢?关于具体存在的函数和模板函数的优先级问题!类模板类模板的用法&am…

若依框架 --- ruoyi 表格的设置

表格 字典值转换 (1) 方式1:使用字典枚举的方式 var isDownload [[${dict.getType(YES_OR_NO)}]];{field : isDownload,title : 是否允许下载,formatter: function(value, row, index) {return $.table.selectDictLabel(isDownload, value);} }, (2) 方式2&…

Java正则表达式及Pattern与Matcher使用详解

文章目录一、正则表达式详解1、符号定义(1)基本书写符号(2)限定符(3)匹配字符集(4)分组构造(5)字符转义2、常用正则表达式举例3、Java中RegularExpressionVal…

flutter 输入时插入分隔符

每四位插入一个分隔符import package:flutter/services.dart;class DividerInputFormatter extends TextInputFormatter {final int rear; //第一个分割位数,后面分割位,,数final String pattern; //分割符DividerInputFormatter({this.rear 4, this.pattern });overrideTex…

【Linux】虚拟地址空间

进程地址空间一、引入二、虚拟地址与物理内存的联系三、为什么要有虚拟地址空间一、引入 对于C/C程序,我们眼中的内存是这样的: 我们利用这种对于与内存的理解看一下下面这段代码: 运行结果: 观察父子进程中 val 变量的值&…

uniapp中使用百度地图(初学者保姆式教学,持续更新)

uniapp中使用百度地图(保姆式教学,从零开始) 最近在写一个移动端的地图项目,也是首次完整的去了解百度地图api,这篇博客会手把手的教你如何使用百度地图api和一些常见问题,后续我也会继续更新完善此博客 1、百度地图api&#xf…

实验九 TSP问题

《算法设计与分析》实验报告 所在院系 计算机与信息工程学院 学生学号 学生姓名 年级专业 2020级计算机科学与技术 授课教师 彭绪富 学 期 2022-2023学年第一学期 提交时间 2022年10月26日 目 录 实验九-1:TSP问题 一、实验目的与要求 二…

html+css制作

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>校园官网</title><style type"text/css">*{padding: 0;margin: 0;}#logo{width:30%;float: left;}.nav{width: 100%;height: 100px;background-color…

mybatis如何解析常用的标签

通过这三行就解析好了一个mybatis配置文件&#xff0c;我们看看如何工作的&#xff1f; String resource "mybatis-config.xml"; Reader reader Resources.getResourceAsReader(resource); SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().b…

【进阶C语言】qsort库函数(详解)

qsort库函数1. qsort到底是什么&#xff1f;2. qsort库函数的功能3. qosrt函数详解4. 冒泡排序的实现5. qsort库函数如何实现冒泡排序6. qsort库函数排序结构体数据7. 使用冒泡排序的思想来实现类似于qsort1. qsort到底是什么&#xff1f; qsort是C语言库函数里面的一种&#x…

【Flutter·学习实践·配置】认识配置文件pubspec.yaml

目录 简介 pubspec.yaml 添加Pub仓库 其他依赖方式 依赖本地包 依赖Git 简介 简单说就是包管理工具&#xff0c;类似于Android 提供了 Gradle 来管理依赖&#xff0c;iOS 用 Cocoapods 或 Carthage 来管理依赖&#xff0c;Node 中通过 npm 等。 让我们能很好的管理第三…

固定优先级仲裁器设计

前言仲裁器Arbiter是数字设计中非常常见的模块&#xff0c;应用也非常广泛。定义就是当有两个或两个以上的模块需要占用同一个资源的时候&#xff0c;我们需要由仲裁器arbiter来决定哪一个模块来占有这个资源。一般来说&#xff0c;提出占有资源的模块要产生一个请求(request)&…

电脑硬盘文件数据误删除/格式化为什么可以恢复? 怎么恢复?谈谈文件删除与恢复背后的原理

Hello 大家好&#xff0c; 我是元存储~ 主页&#xff1a;元存储的博客_CSDN博客 1. 硬盘数据丢失场景 我们在每天办公还是记录数据的时候&#xff0c;文件存储大多数都是通过硬盘进行存储的&#xff0c;因此&#xff0c;使用多了&#xff0c;各种问题就会出现&#xff0c;比如…

【C++初阶】五、内存管理

文章目录1. C/C内存分布2. C语言中动态内存管理3. C中动态内存管理方式new/delete操作内置类型new和delete操作自定义类型4.C和C在内存申请失败时处理方式的区别5. operator new与operator delete函数6. new和delete的实现原理内置类型自定义类型7. 定位new表达式(placement-ne…

【 Spark编程基础 】实验1

文章目录第1部分&#xff1a;虚拟机的准备工作1.1 下载安装虚拟机1.2 修改主机名1.3 主机ip映射安装SSH服务端SFTP连接&#xff0c;传输安装包安装Java环境第2部分 Hadoop安装2.1 安装Hadoop第3部分 配置集群环境第4部分 Spark安装第1部分&#xff1a;虚拟机的准备工作 1.1 下…

【设计模式-工厂方法】想象力和创造力:你考虑过自动化实现工厂吗?

无限思维-想象力和创造力&#xff1a;自动化实现工厂方法前言一、《大话设计模式》对应的Java版本工厂方法类图先行&#xff1a;代码实现&#xff1a;思考升华&#xff1a;二、想象力&#xff1a;创新型思维解决思路战略上&#xff1a;以无限思维的角度去想问题&#xff1a;部署…

SpringBoot整合数据可视化大屏使用

1 前言 DataV数据可视化是使用可视化应用的方式来分析并展示庞杂数据的产品。DataV旨让更多的人看到数据可视化的魅力,帮助非专业的工程师通过图形化的界面轻松搭建专业水准的可视化应用,满足您会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求, 访问地址:h…