性能测试---LoadRunner

news2024/10/6 16:19:41

目录

1.LoadRunner对比Jmeter的优势 

2.LoadRunner三个组件之间的关系

3.学习VUG的使用

3.1创建性能测试脚本并进行录制

第一步:打开VUG,创建一个新的性能测试的脚本

第二步:对新建的脚本进行设置

第三步:启动WebTours服务

第四步:回到VUG中,点击录制按钮并设置录制选项

第五步:进行登录操作

第六步:录制结束,生成测试脚本

3.2脚本的增强(编写)

3.2.1为什么要进行脚本的增强?

3.2.2增强脚本需要采取的手段

4.学习Controller的使用

4.1创建场景(有两种方式)

4.2场景的设置

4.2.1场景运行方式的设置

4.2.2场景的设置(进行如下四个设置)

4.3场景的运行

4.3.1在真正运行场景之前,如果你想要查看系统资源图表,那么你需要手动修改配置

4.3.2下面我们点击开启场景,进行场景的运行

4.4场景的监控(通过图表分析)

4.5保存场景

5.学习Analysis的使用

5.1生成测试报告

5.2保存测试报告

5.3分析测试结果

5.3.1测试报告

5.3.2测试报表​​​​​​​

1.LoadRunner对比Jmeter的优势 

(1)具有非常强大的录制功能

(2)具备丰富且灵活的场景

(3)具备丰富的报告功能

2.LoadRunner三个组件之间的关系

第一步:先使用VUG来编写性能测试脚本

第二步:使用Controller执行性能测试脚本(针对脚本以及具体的场景来设置测试场景),监控脚本在执行过程中的状态

第三步:根据性能测试的结果产出测试报告

3.学习VUG的使用

Virtual User Generator 

3.1创建性能测试脚本并进行录制

  • 第一步:打开VUG,创建一个新的性能测试的脚本

-------------------------------------------------------------------------------------------------------------------------

  • 第二步:对新建的脚本进行设置

 创建好的脚本就长这个样子

-------------------------------------------------------------------------------------------------------------------------

  • 第三步:启动WebTours服务

1.找到自己的HP文件夹中的WebTours文件夹下的StartServer.bat,然后双击启动

这就是双击StartServer.bat出来的界面

2.接下来,不要关上双击StartServer.bat出来的界面!!然后我们打开浏览器

   在浏览器中输入:127.0.0.1:1080/WebTours/

会出来这个界面,完成到这一步,我么接下来就可以进行性能测试了!

-------------------------------------------------------------------------------------------------------------------------

  • 第四步:回到VUG中,点击录制按钮并设置录制选项

会出来这个界面,让你进行一系列选择

注意哈,上面这个图中我们选择这个IE浏览器.要想让到时候访问地址的时候是通过IE去访问的,我们需要在Microsoft Edge中进行如下的设置

另外,我自己这边这样设置了,但是发现到时候开始访问的时候依旧不是通过IE浏览器去访问的,是通过360...后来我研究了下,这样操作了一番(把我的ie浏览器.exe放到这个目录下面,然后选择他)就可以了,如果你们也有和我一样的问题也可以这样试一试~

点击开始录制之后会出来这么一个框框,点"是"就可以了

-------------------------------------------------------------------------------------------------------------------------

  • 第五步:进行登录操作

这里需要先说一下,我这里演示的是对127.0.0.1:1080/WebTours/这个地址进行登录操作,我们得知道用户名和密码才能登录成功对吧,那我们在哪儿看呢?

好,下面回到正轨,我们开始录制了对吧,点击录制之后会自动打开IE浏览器的127.0.0.1:1080/WebTours/地址的界面,如下图所示:

然后我们根据刚刚在jojo文件中看到的用户名和密码进行登录,登录成功就来到这个界面

-------------------------------------------------------------------------------------------------------------------------

  • 第六步:录制结束,生成测试脚本

由于我只想录制登录的操作,因此到这里就可以结束录制了,点击停止就结束录制了

 点击完成录制会出来一个这个框框,点"是"就可以了~

下面回到VUG就能看到录制期间VUG自动生成的代码了

我们可以点击编译和回放看看有没有什么错误

这里需要说一下,有可能你发现你Action.c文件中没有任何代码(录制不到内容),你可能会疑惑,我前面每一步都按着做了的呀,为什么我就没有代码呢.这个原因我也不知道,但是我知道的是,就算你没有成功生成代码也不要灰心,因为其实我们也可以手动在Action.c文件中添加代码~

其实我们使用VUG的主要目的不是录制,而是手动编写代码!!!!!!!!!!!!

所以,让我们接着往下看吧

_________________________________________________________________________

3.2脚本的增强(编写)

3.2.1为什么要进行脚本的增强?

原因1:录制的测试脚本达不到预期的测试目的(就比如像上面说的,你可能录制不到内                     容,那么就生成不了测试脚本,这不就相当于时没有达到预期的测试目的吗)

原因2:当前录制的测试脚本缺乏针对性,我们需要对此进行脚本内容的补充,让测试脚本                 具有针对性

-------------------------------------------------------------------------------------------------------------------------

3.2.2增强脚本需要采取的手段

3.2.2.1事务

  • 什么是事务以及事物的特点:

事务就是操作,我这里的登录操作就可以视为一个事务

特点:事务是可以嵌套的

  • 添加事务:

添加事务,需要在生成的测试脚本中的事务代码的上面添加“开始事务”,在事务代码的下面添加“结束事务”

“开始事务”函数格式:lr_start_transaction("事务名称");

“结束事务”函数格式:lr_end_transaction("开始事务时取得事务名称",LR_AUTO);

添加事务有两种方式:

(1)对录制完的测试脚本进行添加事务操作,然后点击编译和回放进行结果查看

在登录这个事务的代码的前后分别手动添加开始事务和结束事务的代码

然后点击编译,再点击回放就会生成新的带有事务的回放结果,如下所示

结束事务操作包含:事务执行的状态(status)、事物的响应时间(Duration)、浪费的时间(Wasted Time)

(2)在录制的时候手动插入事务

 点击录制按钮

 录制结束后看到录制的测试脚本中已经有了开始事务和结束事务

 

 编译,然后回放可以看到结果如下

3.2.2.2集合点

  • 什么是集合点及其特点

LoadRunner为了实现真正意义上的并发而进行的一种运行机制,让虚拟用户进行短暂的集合,在满足特定的条件情况下开始放行,产生并发数

特点:集合点只能放到action文件中,且集合点要放到事务之前

  • 添加集合点

集合点函数格式:lr_rendezvous("集合的名称")

3.2.2.3检查点

  • 什么是检查点及其特点

检查点相当于"断言",主要检查服务器压力较大时,是否能够准确返回指定的测试对象 

特点:检查点函数一般放在页面请求之前

  • 添加检查点 

检查点函数格式:web_reg_find("Test=想要匹配的关键词",LAST);

我来解释下我上面检查点函数中写的"想要匹配的关键词"是welcome,原因是我录制的登录操作,登录成功后,服务器会返回这样一段话到页面上

我提取了这段话中的一个单词作为检查点.如果回放时找不到welcome这个单词,那么就代表服务器压力较大时,没能返回指定的测试对象

3.2.2.4参数化

  • 什么是参数化

使用变量代替脚本中的常量,目的是虚拟用户能真实的模拟现实用户进行系统的操作 

  • 参数化举例

下面拿登录时候的用户名进行参数化

设置好是按用户名进行参数化之后,下面我又在用户名这一列加了两个变量mei和anita

也就是说现在用户名有三个了

我不是加了两个新的变量吗,你还记得我在一开始介绍VUG使用的时候有查登录WebTours的用户名和密码在哪儿查的吗,是在jojo文件里查的对吧.现在我新创建两个变量,代表我也要在和jojo文件同意路径下再创建两个文件,分别来放新的两个变量的用户名和密码.

下面来验证下新的两个用户名搭配旧的密码(因为我密码没改或者说没添加新的),看看能不能登录

验证发现没问题,下面我来干一件什么事呢,我来调整一下Action的执行次数,因为我想要让他每个用户名都执行一次

好的,一切准备就绪,下面还是老规矩,编译,之后回放,看结果

可以看到第一次用的是jojo登录的,第二次是mei,第三次是anita

大功告成~

4.学习Controller的使用

Controller

我的学习目标是能学会创建场景、运行场景和监控场景

4.1创建场景(有两种方式)

(1)在VUG中对写好的脚本创建场景,然后就会自动跳转到Controller中了

点击OK之后,进行创建

然后就会自动跳转到Controller

 

 

 

(2)手动打开Controller进行脚本的添加并创建场景

 

点击OK就会直接在Controller中创建

 

创建场景完成之后,下面来到场景的设置~

为了防止场景运行完成之后没有自动生成性能测试报告,所以在这里提一嘴

记得把这个点上

 

 

4.2场景的设置

点击Controller页面左下方的Design

4.2.1场景运行方式的设置

下面分别针对这两种场景的方式运行举一个例子看看:

(1)按照场景的方式运行:

我在我当前已有的脚本myttest1118(3个虚拟用户)基础上又加了一个脚本anitamusicspaceceshi(1个虚拟用户).

下面选择按照场景的方式运行

然后在Global Schedule中可以看到,一共是Total:4 Vusers,这说明选择按照场景的方式运行,所有虚拟用户都按照统一设定好的场景去运行

 

(2)按照Group运行:

 

4.2.2场景的设置(进行如下四个设置)

(1)设置初始化

 

 

(2)设置启动机制

 

(3)设置性能测试脚本的执行时间

 

(4)设置虚拟用户退出机制

 场景的设置完成之后,下面来到场景的运行~

4.3场景的运行

点击Controller页面左下方的Run

 

4.3.1在真正运行场景之前,如果你想要查看系统资源图表,那么你需要手动修改配置

 设置完就变成这样了:

 

 

 

4.3.2下面我们点击开启场景,进行场景的运行

 在场景运行的过程中,可以单击Vusers看多个虚拟用户的运行状态

或者什么都不点,直接在Scenario Groups中也可以看这个表格里面虚拟用户的状态变化从而判断运行到哪一步了

下面这个截图是场景运行结束,三个虚拟用户都处于Stopped状态 

 

这里放一个Run这个页面的场景运行结束后的整体页面布局

 

4.4场景的监控(通过图表分析)

下面对即将要分析的数据图表进行数据类型的解释,以及操作上面的说明

 

 

 

如果想要放大看其中某一个图表,只需双击图表就可以

下面我们来看具体的图表吧~下面我们来看具体的图表吧~下面我们来看具体的图表吧~

​​​​​​​

 

 

 

 

 

 

 

需要知道的是,我们除了可以单独分析某一个图表的数据,我们还可以把有关联的数据的图表放到一起去分析,这样如果哪里不符合他们之间的关系,我们就能够及时且清晰的判断出是哪里出了问题

就比如下面四个图表,我们知道点击率增加,吞吐量和每秒事务响应也会随之增加,因此你看他们的几个图表的走势是比较一致的.

 

再比如这个事务响应时间中的这两个事务的响应时间如果作差,就能够得到请求WebTours服务首页的事务响应时间,这样通过的出来的数据可知请求WebTours服务首页的事务响应时间较长,那么未来优化就可以在这里优化

4.5保存场景

在Controller的工作都结束之后,别忘了Ctrl+s保存这个场景哦!!!!

5.学习Analysis的使用

Analysis

我的学习目标主要就是要让Analysis生成测试报告,然后分析测试结果

5.1生成测试报告

这个在上面讲Controller的时候也说过了,不过这里再放一下

5.2保存测试报告

Ctrl+s保存保存保存!!!!!

5.3分析测试结果

5.3.1测试报告

不要看最大值最小值,主要看平均值和标准偏差.标准偏差越大,说明越不稳定.

 

5.3.2测试报表

(1)运行的虚拟用户图

此图显示性能测试的每秒期间执行Vuser脚本的Vuser数量及其状态.通过此图可用于确定任何给定时刻的服务器上Vuser的负载情况.

(2)点击数图表

 

此图显示性能测试场景中运行期间的每一秒内HTTP向服务器发送的HTTP请求数.帮助我们根据点击次数对Vuser生成的负载量进行评估.

我们可以将此图与"平均事务响应时间"图进行比较,查看点击次数对事务的影响.请求数量增多的话,响应时间可能也会变长.

以下就是:平均事务响应时间-点击数图 

这里插播一下,如果想要将两个表合并成一个新表,通过这种方式

(3)吞吐量图

此图可以帮助我们根据服务器吞吐量对Vuser生成的负载量进行评估,对平均事务响应时间图进行比较,吞吐量对事务性能的影响.

​​​

因为吞吐量图和点击数图形状非常相似,所以我也把这两个图放到一起来分析

以下是:吞吐量-点击数图 

问题1:可以看到吞吐量图虽然和点击数图形状非常相似,但是吞吐量图会稍微滞后一点,这是为什么呢?

回答:因为吞吐量表示的是响应后返回的资源数量,所以肯定是先有请求再有返回

问题2:如果请求变多但是吞吐量没有什么反应,原因可能是什么?

回答:

(1)服务器响应慢了,来不及响应

(2)压力没有到服务器

(3)服务器设置了一定的阈值,超过多少请求就不返回响应

(4)平均事务响应图

 

此图显示Vuser在性能测试的每秒期间在服务器上进行的命中次数.可以帮助我们根据命中次数评估Vuser 生成的负载量

主要查看:

(1)平均事务响应图图形是否稳定

(2)平均事务响应时间是否达到预期

这里插播一条,如果想要查看更过图表,可以右键添加:

 

(5)系统资源使用情况图

 

 ​​​​​​​

是的,到这里我对LoadRunner性能测试的学习就暂时告一段落了,感谢我自己的陪伴~

 

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

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

相关文章

学习编程的五个关键点!你需要get它,并运用!

总体来说,学习如何编程是一件较难的事情。我最近发现大学里的计算机课程和各种编程训练营错过了编程的一些重要因素,对新手的教学用了不太恰当的方法。于是,我准备分享一个成功的编程课程应该具备的五大基本支柱。 菜鸟的目标是掌握编程的基…

form表单发送put、delete、patch请求的实现过程

关于发送put、delete、patch请求底层实现过程 对于put这些请求,我们无法直接通过form表单发送,form表单仅支持get和post请求; 虽然我们无法直接通过form表单发送这些请求,但我们可以以form表单为载体做二次请求:使用f…

[附源码]计算机毕业设计Node.js宠物商店管理系统(程序+LW)

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

48数据流中的中位数 49表达式 50两数之和

48数据流中的中位数 第一次没看到要求排序&#xff0c;还以为题目答案写错了&#xff0c;用排序的内置函数也正好是nlogn import java.util.ArrayList;public class Solution {ArrayList<Integer> list new ArrayList<>();public void Insert(Integer num) {list…

小满nestjs(第二十七章 nestjs typeOrm关系)

在我们开始的过程中&#xff0c;肯定不会把数据存在一个表里面&#xff0c;我们会进行分表&#xff0c;把数据分开存&#xff0c;然后通过关联关系&#xff0c;联合查询。 typeOrm 文档 一对一 | TypeORM 中文文档 前端代码还是复用上一章的 增加了一个添加Tag <template…

腾讯安全联合发布《2022游戏安全白皮书》:外挂对抗仍然激烈

2022年以来&#xff0c;各类游戏安全事件的发生给不断影响着游戏生态的健康发展。同时&#xff0c;随着游戏行业数字化进程的加快&#xff0c;以及游戏全球化布局的不断推进&#xff0c;游戏厂商对于游戏安全的投入越来越大&#xff0c;掌握最新的行业安全态势有利于其安全防护…

外汇天眼:WiKiEXPO亮相香港亚洲博览馆,史上最强大咖阵容坐镇

凛冬已至&#xff0c;在这个寒冷的冬天&#xff0c;WikiGlobal将于2022年12月16日至17日早9:00--晚18:00在香港的亚洲国际博览馆举办为期两天的“Wiki Finance EXPO Asia 2022”。目前展会已拉开帷幕。  此次展会展厅面积高达5000多平方米&#xff0c;经过WiKiEXPO科学的规划和…

【数据结构】线性表之单链表

目录 一、链表的概念 1、概念 2、分类 3、重点 二、单链表模拟实现 1、准备 2、头插法 3、尾插法 4、指定下标插入 5、遍历 6、删除第一次出现的元素key 7、删除所有的key 8、双指针删除所有的key 一、链表的概念 1、概念 是一种物理存储结构上非连续的存储结构&a…

PS-历史记录

目录 哪里能找到【历史记录】面板 1、窗口→历史记录 2、编辑→清理→历史记录 还原 1、点击【历史记录】面板 快捷键 【ctrlz】 【shiftctrlz】 从当前状态创建新文档 创建新快照 给快照起名 1、右击你要创建快照的步骤 2、点击面板菜单 3、先按住alt不动&#…

Java 对象和类

Java作为一种面向对象语言。支持以下基本概念&#xff1a; 多态继承封装抽象类对象实例方法重载 本节我们重点研究对象和类的概念。 对象&#xff1a;对象是类的一个实例&#xff08;对象不是找个女朋友&#xff09;&#xff0c;有状态和行为。例如&#xff0c;一条狗是一个对…

猿如意|chat GPT测评

文章目录猿如意猿如意传送门猿如意个人使用感受好的一面&#xff1a;可以改进的一面:什么是猿如意chat GPT测评chat GPT使用过程使用场景描述&#xff1a;问题1问题2问题3问题4&#xff1a;问题5&#xff1a;主观感受&#xff1a;认为此功能不足的地方&#xff1a;对此功能的期…

学习编程的过程中可能会走哪些弯路,有哪些经验可以参考?

很多人学习编程, 走的弯路可以总结为以下几点: 一言不合找视频&#xff0c;几十集视频刷半年。 很多人学习编程的时候&#xff0c;喜欢看视频学&#xff0c;我这里总结一下看视频学习编程的弊端。 1. 完善的视频资源往往稍稍过时&#xff0c;比如你会发现很多java的教学视频…

产品设计市场调研有哪些特点?

产品市场种类繁多&#xff0c;变化无常&#xff0c;消费者需求各异。在工业设计之初&#xff0c;需要对行业和区域环境进行调查分析&#xff0c;深入了解市场情况、市场供求关系、客户引导、趋势等&#xff0c;客观合理地对新产品进行适当定位。只有有了正确的新产品概念规划方…

三方接口签名验签简易设计与实现

本人水平有限&#xff0c;对密码学的理解相当浅显。错误与疏漏&#xff0c;欢迎各位指正。 〇、写在前面 接口安全防护是个永恒的话题&#xff0c;提供给前端的接口需要登录&#xff0c;提供给服务的接口(下文简称"三方接口")也需要鉴权&#xff1b;当前大环境下,ht…

chatgpt教我内存对齐,对齐了但没完全对齐?

文章目录内存对齐关于chatgpt的回答总结内存对齐 关于chatgpt的回答 我与chatgpt的对话如下&#xff1a; 我现在来描述与总结上述对话都干了啥以及我为什么要问这个。 我本来是在学习rapidjson源码里面的内存池实现&#xff0c;然后 RAPIDJSON_ALIGN 没有看懂&#xff0c;所…

JSP课设:家庭相册管理系统(附源码+调试)

JSP家庭相册管理系统 &#xff08;1&#xff09;登录模块&#xff1a;分为普通用户和管理员两种角色&#xff1b; &#xff08;2&#xff09;普通用户模块&#xff1a;相册管理&#xff1a;用户可以对自己相册进行编辑&#xff0c;可以进行批量删除相册、新增相册、编辑相册以…

【Golang】案例为基浅谈Go的变量与常量

&#x1f4d3;推荐网站(不断完善中)&#xff1a;个人博客 &#x1f4cc;个人主页&#xff1a;个人主页 &#x1f449;相关专栏&#xff1a;CSDN专栏、个人专栏 &#x1f3dd;立志赚钱&#xff0c;干活想躺&#xff0c;瞎分享的摸鱼工程师一枚 &#x1f352;前言 在上一篇文章中…

Python图像识别实战(三):基于OpenCV实现批量单图像超分辨重建(附源码和实现效果)

前面我介绍了可视化的一些方法以及机器学习在预测方面的应用&#xff0c;分为分类问题&#xff08;预测值是离散型&#xff09;和回归问题&#xff08;预测值是连续型&#xff09;&#xff08;具体见之前的文章&#xff09;。 从本期开始&#xff0c;我将做一个关于图像识别的…

“命悬一线”复试上岸浙大MBA的经验分享~

作为去年踩线上岸浙大MBA的幸运者&#xff0c;希望自己的一些经历和经验能够帮助到今年的考生。因为去年在联考初试准备的时间不是很充分&#xff0c;加上在职工作相对比较忙&#xff0c;真正能用到学习上时间真的不多。笔试成绩只拿到191分&#xff0c;在去年的复试考生里算是…

Qt+C++基本绘图(画线,画圆,矩形, 撤销,重做)

程序示例精选 QtC基本绘图(画线&#xff0c;圆&#xff0c;矩形画线&#xff09; 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《QtC基本绘图(画线&#xff0c;画圆&#xff0c;矩形, 撤销&am…