性能测试------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

相关文章

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

Python实现中文文本处理与分析程序的示例详解

《Python实现中文文本处理与分析程序的示例详解》在当今信息爆炸的时代,文本数据的处理与分析成为了数据科学领域的重要课题,本文将使用Python开发一款基于Python的中文文本处理与分析程序,希望... 目录一、程序概述二、主要功能解析2.1 文件操作2.2 基础分析2.3 高级分析2.4 可视化2.5

Java实现预览与打印功能详解

《Java实现预览与打印功能详解》在Java中,打印功能主要依赖java.awt.print包,该包提供了与打印相关的一些关键类,比如PrinterJob和PageFormat,它们构成... 目录Java 打印系统概述打印预览与设置使用 PageFormat 和 PrinterJob 类设置页面格式与纸张

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

Python实现终端清屏的几种方式详解

《Python实现终端清屏的几种方式详解》在使用Python进行终端交互式编程时,我们经常需要清空当前终端屏幕的内容,本文为大家整理了几种常见的实现方法,有需要的小伙伴可以参考下... 目录方法一:使用 `os` 模块调用系统命令方法二:使用 `subprocess` 模块执行命令方法三:打印多个换行符模拟

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、