【性能测试】第二节.loadrunner工具介绍(LR)

news2024/9/23 7:27:22

文章目录

  • 前言
  • 一、VUG:虚拟用户发生器
  •       1.1 实现作用
  •       1.2 创建一个新的性能测试脚本
  •       1.3 打开LR自带的web系统
  •       1.4 编写性能测试脚本流程方法
  •       1.5 性能测试脚本的增强
  • 二、Controller
  •       2.1 基础功能介绍
  •       2.2 Design
  •       2.3 Run
  • 三、Analysis
  •       3.1 基础功能介绍
  •       3.2 测试报告详细内容
  • 总结


前言


一、VUG:虚拟用户发生器

1.1 实现作用

主要用来生成性能测试脚本(写脚本)


1.2 创建一个新的性能测试脚本

(1)创建步骤流程:
打开软件 -》 File -》 New Script and Solution -》Single Protocol

-》 因为是针对web系统检测,所以选择 Web -》 填写脚本名称以及路径

(2)图示介绍New Script and Solution:

(3)图示介绍Solution Explorer

vuer  -》 virtual user


1.3 打开LR自带的web系统

1.4 编写性能测试脚本流程方法

实现步骤:

步骤1:

① 启动webTours服务:C:\Program Files (x86)\HP\LoadRunner\WebTours\StartServer.bat (双击打开并保持打开状态)

步骤2:

② 浏览器访问:http://127.0.0.1:1080/WebTours/

步骤3:

③查看WebTours系统的登录账号和密码:C:\Program Files (x86)\HP\LoadRunner\WebTours\cgi-bin\users,其提供的账号jojo,密码为bean
(注意:密码是可以自己进行修改的,打开后修改首行的bean并保存就行,刷新后页面就可以使用新的密码进行登录了; 也可以多创建几个账户,直接cv,然后进行修改就行)

图示说明:

步骤4:编写性能测试脚本
(在Action.c中进行web系统的性能测试)
① 注意:自动生成函数:View -》 Steps Toolbox -》 右边就会出现可选的函数

② 因为测试web系统,所以在右边直接搜索web(或url) -》 双击选择web_url -》 进行名称以及url的修改填写 (注意鼠标放在插入位置)

③ 在开发者工具(fn+f12)中查看请求的格式:NetWork,本web是使用form表单形式进行提交请求的

④ 在右边搜索submit -》 然后选择web_submit_form -》 注意填写名称general以及参数data

⑤检查当前脚本是否正确:点击运行

测试通过:

⑥ 查看终端提示信息
当双击某行的提示信息,对应的脚本就会闪烁一下


以上只是最简单的性能测试脚本的写法,但是这种写法并不足以让我们进行性能测试数据的收集。此时就需要进行性能测试脚本的增强。


1.5 性能测试脚本的增强


步骤5:性能测试脚本的增强

增强方法一:添加事务

lr_start_transaction 开启事务
lr_end_transaction 结束事务

(注意事务名称的一致性,以及事务必须有开启有结束)

测试结果:

注释说明:

注意事务之间是可以嵌套的(注意匹配)


增强方法二:集合点

假如后续我们创建10W个虚拟用户去执行编写好的性能测试脚本,不能保证所有的虚拟用户都同时去执行每一步,所以为了实现真正意义上的并发就需要让虚拟用户执行到集合点后进行短暂的集合,在满足条件后一起执行下一个步骤。


lr_rendezvous 集合点设置

(若存在事务则在开启前面进行设置):需要在Controller中查看

图示说明:


增强方法三:检查点

在页面中查找某元素是否存在(如避免用户的越权行为)

web_reg_find (注意:也是加在前面的,但是如果存在事务则可以是在开启事务之后)

图示说明:

注意:检查点一般放在请求之前!


增强方法四:参数化

实现步骤:

① 如:在users下先创建另外的用户:用户名xian,密码bean,这样就实现了多参数

② 然后需要对登录的用户进行参数化设置:选中已经存在的value值 -》 然后右键 -》 Replace… -》 create New … -》 修改参数名、参数类型以及默认值 -> 然后点击ok -》 选择No

图示实现步骤:


③ 设置数据源:左侧Parameters双击 -》 browse打开进行参数的设置(如添加等) -》 保存后关闭该页面后重新打开Parameters才会显示 -》 or 直接Add Row / Delete Row / Edit Notepad…(一定要记得保存ctrl + s) -》 [可以添加多列,也可以选择执行的列] -》还可以选择列中的执行顺序


增强方法四:脚本录制
(注:首先说明,并不是所有人都能够使用脚本录制的,一般来说只有安装了IE浏览器的才能够使用该功能。但是不能用也没关系,可以进行手动编写。)

使用录制脚本可以自动的生成性能测试脚本。

实现步骤:

① 点击“录制脚本”按钮

② 证书安装选择“是”,操作/录制完成后选择“是”删除根证书

③ 介绍浮窗:
图示说明:


二、Controller

2.1 基础功能介绍

(1)作用:
创建和设计测试场景,运行测试脚本,监控场景运行,收集测试过程的数据

(2)打开方法:
① 直接点击桌面的controller图标
or ② 在VUG中Tools =》 Create Controller Scenario


2.2 Design

实现步骤:

步骤1:① 初始化

步骤2:开始虚拟用户的运行

步骤3:虚拟用户运行时间

步骤4:结束虚拟用户(虚拟用户的退场)


整体图示说明:


2.3 Run

实现步骤:

步骤① 状态栏介绍


步骤② 查看图表:View => Show / Hide… => View Graphs


步骤③ 为啥最后图表展示的事务会比自己写的事务增加呢?

在运行测试脚本的时候,每个文件就是一个事务(init、action、end文件都是事务)


注意:如果发现图表在选择展示多个后只展示一个的话就需要进行界面的放大缩小一下(右上角的选项)


步骤⑤如果想要查看在性能测试执行期间系统资源的消耗情况,那么就需要打开相关的系统设置,以此来允许LR获取对应的数据。


打开相关的系统设置步骤:

任务管理器 -> 服务 -> RPcSs 右键开始、RemoteRegistry右键开始;


然后在Controller中Run模块的System Resource Graph下选中Windows Resources -> 在下方空白处右键选择Add Measurements… -> 在Machines处add -> 在Resources处选择自己需要的资源,多余的可以delete -> 此时点击Windows Resources就会出现所选的资源

步骤⑥ 在Results下 选择Auto… 可以自动打开Analysis
Analysis:分析性能测试结果,生成性能测试报告。


三、Analysis

3.1 基础功能介绍

(1)作用:分析性能测试结果,出测试报告和各种图表。


3.2 测试报告、图表详细内容

(1)测试报告

一般情况下,不太关注最大值和最小值,主要看平均值和标准偏差。

标准偏差值越大,说明服务越不稳定。



(2)测试图表

各个性能点分享:
1)运行的虚拟用户图

根据显示的运行虚拟用户数量可以判断出在哪个时间段内给定服务器的负载。
2)点击率(每秒点击数)

通过点击率也可以判断出某段时间内服务器的负载。

3)Throughput吞吐量:
吞吐量图形和点击率图形有点儿相似,但是吞吐量曲线稍微滞后一些,为啥呢?
因为吞吐量表示的是响应返回的资源数量,肯定是先有请求再有返回(先点击后吞吐)。


4)如果请求变多但是吞吐量没啥变化,可能的原因是啥?
① 服务器响应慢了,来不及响应
② 压力没有到服务器
③ 服务器设计一定的阈值,超过多少请求之后就不返回响应。(目的:保证服务器不宕机)


5)平均事务响应时间图:
虚拟用户在性能测试过程中,每秒在服务器上命中的次数,可以帮助根据命中次数评估虚拟用户生成的负载量。

6)如果想要看自己添加/更多的图表:

空白处右键 Add -> Add -> 选中 -> Open Graph


总结

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

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

相关文章

<Qt> 信号和槽

目录 一、信号和槽概述 二、信号和槽的使用​​​​​​ (一)connect函数 (二)实现一个点击按钮关闭窗口的功能 (三)再谈connect 三、自定义槽函数 四、自定义信号 五、带参数的信号和槽 六、信号…

Clonezilla 备份还原过程推送日志到 syslog

Clonezilla 备份、还原过程中,系统的运行日志只能显示到客户端显示器上,如果出现错误,无法在服务端查询到对应的日志,一是故障判断不太方便;另一方面,实现日志推送,也可以将 Clonezilla 运行进度…

【前端】ikun-qrcode:极简的二维码生成组件,使用view而非canvas避免层级问题

文章目录 背景ikun-qrcode界面效果如何发布一款自己的插件到uniapp市场。(5分钟搞定) 背景 之前在uniapp上100行搞定二维码生成, 现在封装为vue组件分享出来: 下载地址: https://ext.dcloud.net.cn/plugin?id19351 …

吐血整理如何在Google Earth Engine上写循环 五个代码实例详细拆解

引言 这篇文章主要解答GEE中.map()和.iterate()函数的用法。 首先解答一个疑问,为什么需要自己写循环?确实,GEE 为各种数据类型提供了无数常用的内置函数,对这些方法做排列组合足以应对大多数使用场景,算法效率也颇佳。…

台风预警新选择:太阳能LED宣传信号杆

台风预警新选择:太阳能LED宣传信号杆 以下是对台风灾害的严重性、传统预警方式的不足以及太阳能台风预警宣传信号杆的出现和优势等方面进行分析和归纳: 一、台风灾害的严重性 台风作为一种强烈的自然灾害,给沿海地区带来了极大的威胁。台风…

【数学建模】——【线性规划】及其在资源优化中的应用

目录 线性规划问题的两类主要应用: 线性规划的数学模型的三要素: 线性规划的一般步骤: 例1: 人数选择 例2 :任务分配问题 例3: 饮食问题 线性规划模型 线性规划的模型一般可表示为 线性规划的模型标准型&…

论文学习——基于自适应选择的动态多目标进化优化有效响应策略

论文题目:Effective response strategies based on adaptive selection for dynamic multi-objective evolutionary optimization 基于自适应选择的动态多目标进化优化有效响应策略(Xiaoli Li a,b,c, Anran Cao a,∗, Kang Wang a)Applied S…

活动报名 | 智源研究院数据与行业应用Workshop

7月25日周四下午14点,智源人工智能研究院将联合中国互联网协会人工智能工委会、中国AIIA联盟数据委员会、共同举办数据与行业应用 Workshop~ 届时,智源的技术专家将介绍行业数据集和千万级指令微调数据集的构建思路和获取方法。更有来自北京…

【QGroundControl二次开发】二.使用QT编译QGC(Windows)

【QGroundControl二次开发】一.开发环境准备(Windows) 二. 使用QT编译QGC(Windows) 2.1 打开QT Creator,选择打开项目,打开之前下载的QGC项目源码。 编译器选择Desktop Qt 6.6.3 MSVC2019 64bit。 点击运…

Java项目打包成exe

文章目录 1.使用 exe4j 工具2.导出 jar 包3.转化 1.使用 exe4j 工具 安装激活: https://www.cnblogs.com/jepson6669/p/9211208.html 2.导出 jar 包 使用 mvn 的 package 导出默认没有依赖包,这里从 IDEA 的 Artifacts 导出。 // 导出路径为了方便…

鱼眼相机变普通相机,利用Transform进行球面变换

Abstract 高分辨率广角鱼眼图像在自动驾驶等机器人应用中变得越来越重要。然而,使用普通的卷积神经网络或视觉变换器处理这类数据时会遇到问题,因为在将其投影到平面上的矩形网格时会引入投影和失真损失。为了解决这个问题,我们引入了HEAL-S…

强化学习的数学原理(2)

Value iteration & Policy itreation Value iteration algorithm 之前我们已经讲过怎么去求解贝尔曼最优公式,是利用contraction mapping theorem 来进行求解,我们知道这个contraction mapping theorem是一个迭代算法,实际上这个算法他有…

在mybatis-plus中关于@insert注解自定义批处理sql导致其雪花算法失效而无法自动生成id的解决方法

受到这位作者的启发 > 原文在点这里 为了自己实现批量插入&#xff0c;我在mapper层使用insert注解写了一段自定义sql //自定义的批量插入方法 Insert("<script>" "insert into rpt_material_hour(id,sample_time,rounding_time,cur_month,machine_no…

【技术追踪】TeethDreamer:从 5 张口腔照片实现三维牙齿重建(MICCAI-2024)

三维重建搞起来~ TeethDreamer&#xff1a;一种3D牙齿重建新框架&#xff0c;旨在恢复上下牙齿的形状和位置&#xff0c;引入大型扩散模型的先验知识和3D感知特征注意力机制&#xff0c;重建性能表现SOTA&#xff01; 论文&#xff1a;TeethDreamer: 3D Teeth Reconstruction f…

elasticsearch 聚合 : 指标聚合、桶聚合、管道聚合解析使用总结

❃博主首页 &#xff1a; <码到三十五> ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a; <搬的每块砖&#xff0c;皆为峰峦之基&#xff1b;公众号搜索(码到…

FedAvg的简单实现(详解)

对于联邦学习正在学习中&#xff0c;下文中若有错误出现&#xff0c;望指正 介绍 本文在简单实现联邦平均算法时&#xff0c;使用客户-服务器架构&#xff0c;其基本流程是&#xff1a; 1、server初始化模型参数&#xff0c;所有clients将这个初始模型下载到本地 2、clien…

RK3568笔记三十六:LED驱动开发(设备树)

若该文为原创文章&#xff0c;转载请注明原文出处。 记录使用设备树编写一个简单的 LED 灯驱动程序 一、编程思路 程序编写的主要内容为添加 LED 灯的设备树节点、在驱动程序中使用 of 函数获取设备节点中的 属性&#xff0c;编写测试应用程序。 • 首先向设备树添加 LED 设备…

Python基础语法篇(下)+ 数据可视化

Python基础语法&#xff08;下&#xff09; 数据可视化 一、函数&#xff08;一&#xff09;函数的定义&#xff08;二&#xff09;函数的调用和传参 二、文件操作&#xff08;一&#xff09;文件读取和写入&#xff08;二&#xff09;文件对象及方法&#xff08;三&#xff09…

探寻大模型回答9.9和9.11犯错的根本原因

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

WinOS下获取dll中的方法列表

开发的Windows应用程序的安装环境从Win11 23H2切换到24H2时&#xff0c;出现获取电源模式不正确的问题&#xff0c;通过debug代码发现获取电源模式的方法是走的方法编号。由于Win11 24H2中增加了对外提供的方法&#xff0c;而增加的方法放在方法列表中间&#xff0c;导致其后面…