性能测试------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的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现