性能测试------LoadRunner 详解

性能测试------LoadRunner的使用

一、什么是LoadRunner

LoadRunner是一款由Micro Focus(以前是Hewlett-Packard或HP公司)开发的性能测试工具。它用于测试和分析系统在负载下的行为和性能。具体来说,LoadRunner可以模拟数千名用户同时访问应用程序,以测量和评估系统的性能表现,从而帮助识别性能瓶颈和系统容量

二、为什么使用LoadRunner

1)LoadRunner有非常强大的录制功能。

2)LoadRunner能模拟各种场景

3)LoadRunner可以产出非常详细的测试报告

【注】如果在做性能测试的时候,发现了软件的缺陷,此次是我们叫这个缺陷叫性能瓶颈

在性能测试的时候,开发修改这些瓶颈,不叫修复BUG也不叫修复瓶颈,而叫性能优化

三、LoadRunner三大组件之间的关系

LoadRunner安装完成之后,会有三个部分:

image-20240611105223038

这三大组件都是干什么的:

image-20240611105255160

他们之间的关系:

image-20240611105309682

四、LoadRunner的使用

了解WebTours这个网站

Web Tours是 loadrunner 自带的一个飞机订票系统网站;是一个常用于LoadRunner和其他性能测试工具的示例应用程序。它通常作为演示和学习的工具,帮助用户了解如何使用这些工具进行性能测试。

如何启动

首先,我们来到LoadRunner的安装目录下,找到 StartServer.bat,双击启动

image-20240611110417509

启动之后,就是这个界面:

image-20240611110630823

如何访问

在浏览器中输入 http://192.168.121.63:1080/WebTours/ 就可以访问了

192.168.121.63 是IP地址

1080 是默认的端口号

WebTours 是名字

image-20240611110803944

【注意】这个网址每次打开可能都不一样,记得看一眼

相关配置
端口

image-20240611111053417

用户名、密码

image-20240611111206785

image-20240611111304126

如果要自己添加,新建一个文件,在里面输入密码即可:

image-20240611111437190

脚本录制(Virtual User Generator)

脚本录制使用这个软件(VUG)

image-20240611111734327

创建文件

image-20240611112403169

image-20240611112608748

我们现在是Web项目,所以用这个:

image-20240611112705089

创建好之后,是这个界面:

image-20240611112853451

录制

image-20240611113132861

点击录制之后,会出来这个,并且也会自动打开你要访问的网站,接下来你在该网站上的一切操作都会被记录下来

image-20240611113327998

【注】在录制之前,若要访问WebTours这个网站,一定要先启动那个 .bat文件

点击停止录制后,就会出现这个界面,等他加载好,就算录制完成了

image-20240611124737472

编译

image-20240611125003000

也许有人会问,这写代码不都是他自动录制的吗,怎么还要编译检查一下呢?

上述代码确实是自动生成的,也不会出现错误,而编译是为了我们。在后续的操作中,我们是可以自己再添加一些代码的,比如事务,集合点等,编译是为了这些操作,防止由于疏忽,出现语法错误

运行

编译没有错误之后,我们就可以运行脚本了

image-20240611125504880

image-20240611135342103

执行日志:

image-20240611140653030

脚本加强

为什么要进行脚本加强?

录制好的脚本,使我们一个用户的操作,不能体现出来相关的性能指标。

通过对脚本进行加强,性能测试可以更真实地模拟用户行为,更准确地捕捉动态数据,更全面地覆盖测试场景,并提高脚本的可维护性和稳定性

插入事务

事务(Transaction):为了衡量服务器的性能,我们需要定义事务。比如:我们在脚本中有一个数据 查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚 本时,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束 点,计时结束。

表示:

开始事务lr_start_transaction("事务名字");

结束事务lr_end_transaction("事务名字", LR_AUTO);

【注】

  • 事务必须成对出现,有开始,有结束,不然会报错

  • 事务处理过程中不能插入其他影响时间的语句,因为最后结果会显示这个事务的时间,若。

  • 事务开始名称和事务结束名称必须相同。

插入事务有三种方式:

image-20240611162509364

②在需要插入的位置,右键点击Insert,选择事务

image-20240611162826592

③在这里搜索,然后双击就行了

image-20240611162617277

例子:我们在这里插入事务,看看执行效果

image-20240611161545508

image-20240611161907333

在LoadRunner中,事务的持续时间(Duration)通常 包括了整个事务执行过程中消耗的总时间,而 事务浪费时间(Wasted Time)指的是事务执行过程中不必要的等待时间或资源消耗时间。例如,某些系统调用或网络延迟可能导致的非必需时间消耗。让我们具体说明这些概念:

  1. Duration: 这是 事务从开始到结束的总时间,包括所有操作执行的时间以及任何可能的延迟时间。Duration是你用来评估事务整体性能的关键指标。

  2. Wasted Time: 这是事务执行过程中非必要的时间消耗,例如等待资源或网络延迟。Wasted Time通常是希望最小化的时间,因为它代表了不必要的性能损耗。

基于你的例子:

  • Duration: 0.1248秒: 这是事务的总持续时间,从开始到结束的完整时间。
  • Wasted Time: 0.0010秒: 这是事务中不必要的消耗时间。

因此,事务的持续时间通常包含了浪费时间。也就是说,Duration包括了Wasted Time。要了解事务的有效执行时间,可以通过减去浪费时间来计算:

有效时间=Duration−Wasted Time

对于你这个例子:

有效时间=0.1248−0.0010=0.1238秒

所以,事务的持续时间0.1248秒包括了0.0010秒的浪费时间,剩下的时间是事务的实际执行时间。

插入集合点

**集合点(Rendezvous Point)**是一个用于控制并发用户行为的功能。通过设置集合点,可以让多个虚拟用户(VUsers)在脚本的某个特定点暂停,直到达到设定的用户数量,然后同时继续执行后续操作。

这对于模拟高负载条件下的并发用户行为和测试系统的性能和稳定性非常有用。

表示:lr_rendezvous("集合点名字");

例子:

image-20240611163516681

插入检查点

插入检查点是为了验证在性能测试的时候,页面元素是否渲染正确

比如:假设,我们在性能测试的时候打开了百度的搜索界面,检查一下百度这两个字是否在页面出现了,用于初步按断这个页面是正确的

表示方法web_reg_find

image-20240611164548603

点击OK之后,会生成相应的代码:

image-20240611164617834

参数化

参数化是性能测试和负载测试中的一个关键技术,它的主要目的是通过使用动态数据替换脚本中的硬编码值,从而实现更真实、更全面的测试。

比如:在做性能测试的时候,需要大量的用户数据,这个数据不可能通过copy大量重复代码来完成

参数化的具体方法:

这里以例子的形式来讲解,比如我们模拟多个用户登录,就需要多个账号密码,这时候,就可以使用参数化,让登录名和密码都是一个参数,然后设置好参数的值

image-20240611170701474

image-20240611171246820

同样,把密码也参数化

image-20240611171712648

替换后的效果:

image-20240611171739641

设置数据源:上面只是把原来的文本用参数进行了替代,但是要想从我们设置好的文件中获取参数的值,还需要设置一下

image-20240611172459488

设置运行参数个数:

VUG 默认只会运行一个参数,因此我们还需要设置一下运行的参数个数

image-20240611172639968

这样,就实现了两个用户登录:

image-20240611172718651

image-20240611172725585

打印日志

记录日志:lr_log_message("要记录的内容")

输出语句:lr_output_message("要输出的内容")

他俩的区别是:

lr_log_message 用于将消息记录到日志文件中。它适用于需要详细记录测试过程中的事件或调试信息,而这些信息不一定需要显示在运行时的控制台上。

lr_output_message 用于将消息输出到LoadRunner控制台(或VuGen的输出窗口),并且也会记录在日志文件中。它适用于需要在运行时立即查看的信息,例如关键步骤的状态或错误消息。

栗子:在输出方式上是不同的

image-20240611173506888

字符串相关函数

几个常用的:

strcmp // 比较两个字符串
strcpy // 拷贝字符串
strcat // 连接两个字符串

栗子:

一定需要显示在运行时的控制台上。

lr_output_message 用于将消息输出到LoadRunner控制台(或VuGen的输出窗口),并且也会记录在日志文件中。它适用于需要在运行时立即查看的信息,例如关键步骤的状态或错误消息。

栗子:在输出方式上是不同的

[外链图片转存中…(img-ZKCSD9N7-1718110952890)]

字符串相关函数

几个常用的:

strcmp // 比较两个字符串
strcpy // 拷贝字符串
strcat // 连接两个字符串

栗子:

image-20240611193844590

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

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

相关文章

r语言数据分析案例26-美元兑换欧元汇率分析与研究

一、研究背景: 汇率是国际贸易和金融中最重要的价格之一,它直接影响着各国的经济利益和国际竞争力。美元兑换欧元汇率是全球最重要的汇率之一,它的波动对全球经济和金融市场都有着深远的影响。因此,对美元兑换欧元汇率的分析和研…

树莓派4B_OpenCv学习笔记5:读取窗口鼠标状态坐标_TrackBar滑动条控件的使用

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1: 今日学习:读取窗口鼠标状态坐标_TrackBar滑动条控件的使…

华为机考入门python3--(35)牛客35-蛇形矩阵

分类:蛇形矩阵 知识点: 取出每行中非零的数字 row [str(num) for num in matrix[i] if num ! 0] 题目来自【牛客】 def generate_snake_matrix(n):# 初始化一个NN的矩阵matrix [[0] * n for _ in range(n)] start 1# i为行,&#xf…

国内著名的四个“大模型”

关于您提到的国内四大模型,这里为您详细介绍: 文心大模型:文心大模型是百度自主研发的产业级知识增强大模型。它以创新性的知识增强技术为核心,从单模态大模型发展到跨模态,从通用基础大模型到跨领域、跨行业&#xff…

Flutter打包网络问题解决办法

问题情况":app:compileReleaseJavaWithJavac" 报错的最主要问题其实在下一句 Failed to find Build Tools revision 30.0.3,请查看自己的Android sdk版本,比如我的就是’34.0.0’版本. 解决办法: 在app/build.gradle中的android下添加,即可 buildToolsVersion 3…

理解查准率P、查全率R及Fβ度量怎么得来的

如果得到的是一组样本在两个算法上的一次预测结果,其中每个样本都被赋予了一个为正样本的概率(例如,通过逻辑回归或朴素贝叶斯分类器得到的概率估计),那么可以通过改变不同的阈值点来利用这些预测结果画出PR曲线。 如果…

SpringBoot基础配置文件

在SpringBoot当中, 所有的配置文件都将会被配置在application.preperties当中 一: 配置服务器端口 只需要在相应的properties当中输入, 修改我们的端口号即可 server.port80 二: 修改banner #设置 将我们的Banner不再进行显示, 或者是也可以让其在控制台当中显示, 或者是日…

02 DHCP原理与配置

目录 2.1 DHCP工作原理 1. 了解DHCP服务 2. 使用DHCP的好处 3. DHCP的分配方式 4. DHCP的租约过程 1. 客户机请求IP地址 2. 服务器响应 3. 客户机选择IP地址 4. 服务器确定租约 5. 重新登录 6. 更新租约 2.2 使用DHCP动态配置主机地址 2.2.1 配置DHCP服务器 1. 安装DHCP服务器…

ADS加不上路由的若干可能性与问题查找方法

文章目录 一.查询本机ip地址二. PIN ip地址 一.查询本机ip地址 用鼠标点击开始——运行(或者快捷键winR)、弹出【运行】对话框、在窗口中输入cmd,如下图所示: 输入ipconfig/all查找局域网当中的本机ip地址 在浏览器中打开百度…

Android Studio gradle下载失败

Android Studio下载Gradle插件总是出现网络超时问题。 解决办法: 替换为国内版本的镜像。 推荐使用国内腾讯的镜像: Index of /gradle/ 例如:gradle-8.0镜像: https://mirrors.cloud.tencent.com/gradle/gradle-8.0-bin.zip…

文案策划日常大公开:掌握这些技巧,让你工作效率翻倍

本周的工作和生活安排得满满当当,但这些看似繁重的任务,其实都是我利用碎片化时间高效完成的。 这里和大家分享一下,我是如何在这忙碌的一周中,既完成本职工作又享受生活的。 本周工作日常汇总: 1. 品牌小红薯笔记&…

观察 jvm 运行时数据区内存大小(native memory tracking)

jvm 运行时数据区 jvm 运行时数据区包括且不限于以下几个部分: 堆(heap): 用于存储对象实例和数组。堆内存的分配和释放由垃圾回收器进行管理。方法区(method area): 用于存储类的信息、静态变量、常量等。jdk 8 后方法区位于 metaspace。虚拟机栈(vm stack): 用于存储方法的…

石化加工vr中毒窒息事故培训系统开发降低了培训成本和风险。

化工行业是工伤预防工作的重点领域之一,工伤预防及安全生产整治工作任务艰巨、责任重大。为进一步强化红线意识、底线思维,深圳VR公司研发的化工VR事故警示教育系统,以其独特的沉浸式体验,为员工的安全教育开辟了新的道路。目前化…

【SWH】陆地生态系统蒸散模拟理论、蒸散估算、站点及区域尺度模拟

蒸散(又称蒸散发)估算是开展水资源管理、洪水预报、海绵城市成效评估、农业节水灌溉、水源涵养评估、生态需水评估等应用实践过程的关键环节,因此准确计算和模拟地表蒸散显得尤为重要。与此同时,蒸散也是陆地表层最重要的水循环过…

如何使用ai人工智能作诗?7个软件帮你快速作诗

如何使用ai人工智能作诗?7个软件帮你快速作诗 使用AI人工智能作诗是一种创新的写作方式,以下是一些可以帮助您快速作诗的AI人工智能软件: 1.AI创作云: 这是一个AI诗歌助手应用程序,可以根据您提供的主题或关键词生成…

Qt:QDialogButtonBox的使用

QDialogButtonBox是Qt自带的按钮箱,通过枚举QDialogButtonBox::ButtonRole可以添加Qt定义按钮,或者通过方法QDialogButtonBox::addButton添加自定义的按钮。 // 自定义按钮。 button_box_ new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonB…

冰蝎4.1webshell实验

1、基础环境 生成payload 2、default_xor_base64 HTTP 命令执行 chunked数据回包,48 3、default_xor_base64 HTTPS 命令执行 终端 文件管理 4、 default_aes https 虚拟终端 5、 default_aes http 虚拟终端

C#中的Web抓取:避免被阻挡

C# 是一种广泛应用于企业级项目和应用程序的多功能编程语言。它源自 C 系列语言,具有高效和强大的特点,使其成为任何开发人员工具包中不可或缺的一部分。 由于其广泛的应用,C# 提供了大量的工具,使开发人员能够解决复杂的解决方案…

MyBatis之工作原理,简单CRUD,一篇让你明白原理

一、MyBatis之工作原理 MyBatis是一个半自动映射框架。所谓半自动,是相对Hibernate全表映射而言的,MyBatis需要手动匹配提供POJO、SQL和映射关系。 我们知道,jdbc有四个核心对象 (1)DriverManager,用于注…

OpenCV多版本安装Ubuntu18.04

文章目录 一、查看已安装的Opencv版本二、安装新版本三、多版本OpenCV切换 OpenCV 官网 在此 一、查看已安装的Opencv版本 查看已安装opencv的版本 pkg-config opencv --modversion官网下载对应的版本,并解压 opencv3.4.3 二、安装新版本 进入前置准备里下载…