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

2024-06-11 21:36

本文主要是介绍性能测试------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

这篇关于性能测试------LoadRunner 详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1052339

相关文章

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

mac中资源库在哪? macOS资源库文件夹详解

《mac中资源库在哪?macOS资源库文件夹详解》经常使用Mac电脑的用户会发现,找不到Mac电脑的资源库,我们怎么打开资源库并使用呢?下面我们就来看看macOS资源库文件夹详解... 在 MACOS 系统中,「资源库」文件夹是用来存放操作系统和 App 设置的核心位置。虽然平时我们很少直接跟它打交道,但了

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

Rust 数据类型详解

《Rust数据类型详解》本文介绍了Rust编程语言中的标量类型和复合类型,标量类型包括整数、浮点数、布尔和字符,而复合类型则包括元组和数组,标量类型用于表示单个值,具有不同的表示和范围,本文介绍的非... 目录一、标量类型(Scalar Types)1. 整数类型(Integer Types)1.1 整数字

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

PyTorch使用教程之Tensor包详解

《PyTorch使用教程之Tensor包详解》这篇文章介绍了PyTorch中的张量(Tensor)数据结构,包括张量的数据类型、初始化、常用操作、属性等,张量是PyTorch框架中的核心数据结构,支持... 目录1、张量Tensor2、数据类型3、初始化(构造张量)4、常用操作5、常用属性5.1 存储(st