LoadRunner从零开始之接触LoadRunner

LoadRunner 是Mercury Interactive 公司开发的一款成熟的性能测试工具,LoadRuner 作为性能测试的实现者,涉及了性能测试流程、性能测试技术和软件 体系架构等众多方面的知识点,可以说,学习LoadRuner 是理解和学习性能测试 的非常好的切入点。在本章,我们将从架构上了解一下LoadRunner 的三大模块,

看看它们是如何共同协作完成一次软件性能测试的。

2. 1 从性能测试到 LoadRunner 的映射

可以想象,如果没有性能测试工具,那么我们靠手工將如何做性能测试:

首先,我们需要一个测试执行指挥官和一群测试人员,测试指择官负责指挥 和协调整个测试过程,而测试人员则按照指挥官的又令 一起去操作自己的终端。准备好之后,指挥官通知大家“开始” ,然后各个测试人员开始按照测试案例的步骤来执行操作,并把自己的操作时间记录下来,在性能测试完牛后,记录下水 汇报给测试指挥官,测试指挥官把结果数据进行计算,得出性能测试是否通过的 结果。

显然,这样做应该是最符合软件系统的实际使用情況的,但是实际上我们在 做性能测试的时候,我们必须要提前考患几个问题:

( 1)资源。显然,手工性能测试需要多个测试人员和多台终端设备,如果性 能需求中说明软件系统的用户可能来自不同网络配置,如局域网、ADSL、拨号等, 那么做性能测试还要考虑制造这些条件,这无疑会增加测试的成本。

(2)协调。指挥官需协调各个测试人员,让他们同时开始,如果出现了问题, 测试指挥官应该立即决断,是继续测试,还是立即中断,去解决问题。

(3)重复。性能测试不可能一蹴而就,需要至轮测试,那么如何在相同的条 件 下重复第一轮测试,手工测试必然会带来误差。

(4)分析。测试指挥官需要分析结果数据,得出性能测试结果是否通过,如 果没有通过,最好还要指出是软件系统的哪个节点出了问题,提供解决问题的线 索。

我们来看看MI 的LoadRuner 是怎样解决这些问题的,如图2-1 所示。

( 1 ) 测 试 人 员 被 L o a d R u n n e r 的 V u s e r 代 替 (虚 拟 用 户 ) , 测 试 人 员 执 行 的 操 作以VuserScript (虛拟用户脚本)的方式固化下来。而一台计算机上可以运行多 个Vuser,因此LoadRunner 又诚少了性能测试对硬件的要求。

提示:虚拟用户: 虚拟用户是性能测试自动化实现中一个普遍的概念,顾名恩义,虛拟用 户并不是一个个真实的人,但对被测试的服务器来说,这些虛拟用户和真实 用产的行为并无差别。可以说,被测服务器并不清楚哪些请求是来自真实的 人还是虛拟用户。在LoadRunner 中,虛拟用户的实现原理是VU脚本t nun- time setting.

虛拟用产的另外一个好处是,一台工作站只能容纳一个实际用户 ,而多个Vuser可以同时以进程/线程的形式运行在同一台工作站上。实际上,一个测试场景可以包含几十、几百甚至几千个Vuser 。

虛拟用户脚本:

Vuser 在方案中执行的操作是用Vuser 脚本描述的。运行场景时,每个Vuser 都去执行 Vus er 脚本。Vuse r 脚本记录 了用户的动作,并且包含一系列度量并记 录服务器性能的函数,从而方便计算性能指标。这就像 一个真实的用户一边做 操作, 一边拿着秒表记录时间一样。

操作, 一边拿着秒表记录时间一样。

(2)测试指挥官被LoadRunner 的Controller 替代,顾名思义,Controller 就 是运行性能测试的司令部,Controller 负责生成性能测试场景,管理和协调多个 虚拟用户,在实际运行时,Controller 运行任务分派给各个Loadgenerator,同时 还联机监测软件系统各个节点的性能,并收集结果数据,提供给LoadRunner 的 Analysis.

提示:

性能测试场景:

使用IoadRunner 可以将应用程序性能测试需求划分为多个场景。场景定义 并控制要模拟的用户的数量及其执行的操作,以及他们运行模拟操作所用的计 算机。简单说来,场景是把虛拟用户按 一定规则组织起来去模拟真实世界的业 务 行为。场景的组织通常和真实世界的业务规则有很大关系。

( 3 )An al ysis 会对数据进行整合,分析出它们之间的关系,并把这些关系以图 表和报告的形式展现出来,使得性能测试的结果一目了然。

提示:Analysis:

Anallysis,名副其实,就是LoadRunner 用来分析数据的工具。一个测试场景运 行结束后,会在指定的目录下生成一个Access 数据文件,这时启动Analysis,就可 以分析这些数据 了。

以分析这些数据 了。

这些概念之间的关系,可以用下面的比喻来形象地说明。

把性能测试比作一场盛大的演出,虚拟用户(vuser )就是演员,导演 (Controller )则规定了参加演出的有多少个演员,各自如何在舞台上表演,这种规 则就是剧本(性能测试场景)。导演要在各个方面保证剧情不能离谱、脱离现实, 杏则就要砸锅了。因此,导演不仅要确保演出能顺利结束,而且还要同时观察和 收集观众的反馈信息(联机监测功能),以分析 (Analysis)、确认这次演出是否 成 功 (性 能 需 求 是 否 到 达 ) 。

2.2 LoadRunner 工作原理

现实中,性能测试这场演出就是这么进行的,如图2- 2所示。

(1 ) 性 能 测 试 人 员 操 纵 运 行 Controller ,启 动 性 能 测 试 。

(2)大量的虚拟用户被“激活” ,和真实用户所做的一样,向被测系统发送 第 一次亲密接触LoadRunner 请求。

(3)Controller 通过monitor 能够实时捕获系统所有层面,包括服务器、网络 资源的性能数据,并显示在Controller 上。

(4)执行结果存放在数据库里,用户通过 Analysi s 生成报告并进行测试结果 分析。

实际上,LoadRunmner 为了保证这场“浩大演出” 的成功,除了三个模块的基 本功能之外,还提供了一些“细心而方便” 的功能,这使得LoadRunner 变得更加 强大。

1. vuser提供录制/回放功能

学 习 LoadRunner 很 容 易 上 手, 其 关 键 是 LoadRunner 的 VirtualUserGenerator 具有录制/回放功能。可以通过录制直接生成脚本,极大地节省了开发和调试脚本 的工作量。vU可以先记录下业务流程,然后将其转化为测试脚木。建立测试脚本 后,可以对其进行参数化操作,这样可以利用几套不同的实际发生数据来测试应 用程序。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单 号和客户名称,由可变值来代替。在这些交量内随意输入可能的订单号和客户名, 来匹配多个实际用户的操作行为。

2. Controller机智地创建性能测试方案

虚拟用户脚本生成后,使用LoadRunner 的Controller 可以根据需要设定负载 方案 、业务流程组合和虛拟用户数,创建不同的性能场景。

Controller 能够创建基于日标和手工的性能测试场景,前者可使用户关注于某 项他感兴趣的性能指标,后者可全面考察整个软件系统在既定负载下的性能表现。 实际上,我们可以通过手工和目标场景的设置来实现在上一章提到的性能测试策 略,如表2- 1所示。

3. 数据驱动

LoadRunner 做到了将业务流程和业务数据分离,并且很彻底。其中有一个很 有用的功能,就是Data Wizard。通过它的Data Wiz ard 米自动实现其测试数据的 参数化。Data Wizard 直按连于数据库服务器,从中可以获取所需的数据(如订单 号和用户名)并直接将其输入到测试脚本。这样避免了人工处理数据的需要。

4 . 服务器监测

LoadRunner 可检查出现性能延迟的地方:网络或客户端延迟、CPU性能、vo 延迟、数据库锁定和数据库服务器上的其他问题。这是因为LoadRunner 内含集成 的实时监测器,在负载测试过程的任何时候,都可以观察到应用系统的运行性能, 包括服务器、数据库、网络设备等。

5. 测试结果分析

一旦测试完牛后,LoadRunner 收集汇,总所有的测试数据,可以提供高级的分 析和报告工具,以便迅速查找到性能问题并追湖原由。使用LoadRunner 的Web 交易细节监测器可以了解到将所有的图像、框架和文本下载到每一个网页上所需 的时间。例如,这个交易细节分析机制能够分析是否因为一个大尺寸的图化文件 或是第三方的数据组件造成应用系统运行速度减慢。另外,web 交易细节监测器 分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找 真正出错的组件。例如可以將网络延时进行分解,以判断DNS解析时间,连接服 务器或sSL 认证所花费的时间。通过使用LoadRunner的分析工具,能很快地查找 到出错的位置和原因并做出相应的调整。 以上这些功能我们都将在后面的章节中详细地介绍。

2.3 安装LoadRunner

目前MI的LoadRunner 提供了Windows版本和UNIX版本,世就是説, ToadRunner 可法行在Windows 平台和UNIX平台下。返取決于被測軟件系統対客 戸端的要求。

而交装LoadRunner 対汁算机配置有要求,如表2-2所示。

随着计算机硬件成本的降低,上面的系统要求已经很容易达到。但是需要注 意的是,它们是最小的资源要求,我们在安装LoadRunner 的时候,往往要把这个 硬件要求提高一些,以保证性能测试的正常执行。具体安装步骤在本书就不花篇 幅 介 绍 了, 可 参看 L o a d R u n n e r 安 装 手 册。

2.4 揭开License的神秘面纱

License 又叫做授权,使用授权 ( License )是版权的拥有 者对作品的使用 者行为的 一种文档化的约束和规定。使用授权一般规定了用户使用该作品的条 件,是否能够修改或者重新发布。从法律意义上来讲,License 是一种契约或者 合同,具有法律效力。软件用户通过购买License 的方式水和软件厂商达成契 约关系。

一般地,软件的License 的实现方式分为硬件实现和软件实现两种。硬件实现 是将软件与硬件鄉定,通过硬件来实现对用户鉴权,代表性的做法有加密狗等: License 的软件实现则有序列号等。

目前,LoadRunner 的License 实现方式硬件和软件都有,应用在不同的功能 模块中。

可以通过LoadRunner Controller 来查看License 信息。

在Controller中,选择“帮助” >“关于LoadRunner”,查看Controller的版 本 信 息 。打 开 “ LoadRun nerController 版 本 信 息 ” 对 话 框 , 单 击 “ License Information” 按钮,即可显示许可证信息,如图2-3 所示。

在时间上,LoadRunner 有以下可用许可证类型:

。Per manent:这一类型的许可证没有有效期限限制。

• Timelimited:这

一类 型 的 许 可 证 有 期 限 限 制 。

• Temproray:这 一类型的许可证只能保证自产品安装后10 天的使用期。

• VUD-based:这一类型的许可证受虚拟用户天数(VUD)的限制。在24 小 时内,VUD 许可证允许用户使用该产品无限次。

• Plugged:这 一类型的许可证需要加密狗。

在空间上,LoadRunner 对可用虚拟用户类型也有限制,有以下内容:

• Global:Gilobal 许可证意味着只要不超过Vuser 总数限制值,可以运行任意 类型的Vuser。Global 后面跟着的数宇就是允许的Vuser 总数。

• Group ERP-1: 1 § SAP. Web. Oracle, MSSQL #I Siebel (GUI-Oracle)

虛拟用户协议。

• Group ERP-2:包含SAP、Siebel (GUL-Oracle)、Oracle、Oracle-NCA虚

拟用户协议。

• Group3:包含除SAP、Siebel (GU-Oracle)、Oracle、Oracle-NCA以外的 所有虚拟用户协议。

有以下可用监视器类型:系统资源、Web资源、web服务器资源、Wet 应用 程序服务器资源、数据库服务器资源、网络延迟、流媒体资源、防火墙服务器资 源及ERP 服务器资源。

当然包含越多功能的License 就越贵,我们使用LoadRunner 时,应该根据项 目 需 求, 选 择 合 适 的 L i c e n s e 。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elastic search入门

参考1:Elastic Search 入门 - 知乎 参考2:Ubuntu上安装ElasticSearch_ubuntu elasticsearch-CSDN博客 1、ElasticSearch安装 1.1安装JDK,省略,之前已安装过 1.2创建ES用户 创建用户:sudo useradd esuser 设置密码&…

大模型相关学习资料整理

1. 核心2框架 1. semantic-kernel【微软】 https://learn.microsoft.com/en-us/semantic-kernel/overview/ 2. LangChain https://www.langchain.asia/ https://python.langchain.com/docs/get_started/introduction 2. 技术点 1. Function Call https://platform.opena…

mac安装node多环境

安装node node安装包 查询node环境 一般都是最新稳定版本 切换node环境 一般有些项目需要老的node版本支持,但是新的项目老的版本又不支持,这个时候需要切换node版本来运行各个项目 这个时候需要一个npm包 n来管理这些node环境包 sudo npm i -g n注…

Linux与windows互相传输文件之rzsz命令

文章目录 关于rzsz安装软件使用命令方法一:直接拖拽方法二:直接在终端输入rz 关于rzsz 这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件 安装完毕之后可以通过拖拽的方式将文件上传过去 首先看一下我们的机器可以使用网络吗&#xff…

导出 MySQL 数据库表结构、数据字典word设计文档

一、第一种 :利用sql语句查询 需要说明的是该方法应该适用很多工具,博主用的是navicat SELECT TABLE_NAME 表名,( i : i 1 ) AS 序号,COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE…

linux性能优化-磁盘I_O优化

1.文件系统 1.1.文件系统的工作原理 文件系统是在磁盘的基础上,提供了一个用来管理文件的树状结构。 接下来我们就看看Linux 文件系统的工作原理。 1.1.1索引节点和目录项 在 Linux 中一切皆文件 ,文件系统,本身是对存储设备上的文件,进行组织管理的…

安裝火狐和穀歌流覽器插件FoxyProxy管理海外動態IP代理

代理生態系統擁有大量有用的實用程式,使海外代理IP代理設置的使用變得簡單起來。其中一種類型叫做代理管理工具,像FoxyProxy就是該工具集比較受歡迎的。 本文將全面解析FoxyProxy擴展的功能和特性、Foxyproxy怎麼下載、以及如何在穀歌流覽器和火狐流覽器…

[小程序]Http网络请求

一、数据请求限制 出于安全性(bushi)考虑,小程序请求的数据接口必须具备以下两个条件: ①只能请求Https类型 ②必须将接口域名添加到信任列表中 1.配置request合法域名 配置步骤如下:小程序管理后台->开发->开发设置->服务器域名-&g…

【GitHub项目推荐--12306 抢票助手 python】【转载】

这个项目名很干脆,不知道以为是 12306 网站的源码,其实不是这是全 GitHub最德高望重的抢票小助手,功能一直在更新,且现已支持 Python 3.6 以上版本。 开源地址:https://github.com/testerSunshine/12306

开源项目CuteSqlite开发笔记(八):Windows 64位/32位使用GetWindowLongPtr钩子函数

需求描述 在开发CuteSqlite的时候, 有一个功能需要实现,鼠标移到WTL::CStatic上后,发送消息通知CToolTipCtrl弹出。 遇到问题 WTL::CStatic控件没有相应 WM_MOUSEMOVE 消息,需要返回一个HTCLIENT消息来让窗口处理函数执行 WM_MO…

【征服redis16】收官-redis缓存一致性问题解决方案

今天我们来写redis最后一篇:redis作为缓存时如何与数据库实现数据一致的问题。 最近看redis看得有点麻了,这篇就简单描述吧 目录 1.什么是缓存与数据库一致性问题 1.1 缓存一致性的概念 1.2 缓存不一致的场景 2.缓存不一致的解决思路 1.什么是缓存…

ITSS认证有用吗❓属于gj级证书吗❓

🔥ITSS由中国电子技术标准化研究院推出,包括“IT 服务工程师”和“IT 服务经理”两种认证。该系列认证符合GB/T 28827.1 的评估和ITSS服务资质升级要求。 🎯ITSS是受到gj认可的,在全国范围内对IT服务管理人员从业资格为一的权威的…

docker运行redis,jdk,nginx

Redis 1.查询redis [rootlocalhost ~]# docker search redis NAME DESCRIPTION STARS OFFICIAL redis Redis is an open source key-value store that… 12620 …

BACnet网关 BL120BN实现楼宇自控设备统一接入系统,BACnet转Modbus

随着物联网技术的迅猛发展,人们深刻认识到在智能化生产和生活中,实时、可靠、安全的数据传输至关重要。在此背景下,高性能的物联网数据传输解决方案——协议转换网关应运而生,广泛应用于工业自动化和数字化工厂应用环境中。 钡铼…

OpenCV书签 #差值哈希算法的原理与相似图片搜索实验

1. 介绍 差值哈希算法(Difference Hash Algorithm,简称dHash) 是哈希算法的一种,主要可以用来做以图搜索/相似图片的搜索工作。 2. 原理 差值哈希算法通过计算相邻像素的差异来生成哈希,即通过缩小图像的每个像素与平…

uniapp中vue2项目导入高德地图

1、看官网新手入门链接导入原生高德地图: JS API 结合 Vue 使用-基础-进阶教程-地图 JS API 2.0|高德地图API (amap.com) 具体步骤: 第一步,安装插件 npm i amap/amap-jsapi-loader --save 第二步,在vue组件中写代码显示地图…

DEB方式安装elastic search7以及使用

参考:https://www.cnblogs.com/anech/p/15957607.html 1、安装elastic search7 #手动下载安装 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-amd64.deb wget https://artifacts.elastic.co/downloads/elasticsearch/elastics…

【linux】 查看 Linux 重启历史记录(reboot)

了解 Linux 重启日志 /var/log 目录隐藏着 Linux 日志机制的核心信息,它是记录系统活动的宝贵仓库。然而,仅仅有日志还不够,真正的难题在于,如何从大量数据中提炼出与系统重启相关的关键信息。 在 /var/log 目录中,可…

【XR806开发板试用】系列之一 - Linux环境下Ubuntu完全开发流程

前言 为了让极术社区开发者体验搭载安谋科技STAR-MC1处理器的面向IoT领域的全志XR806开发板,极术社区联合全志在线开发者社区共同推出XR806开发板免费试用活动。 极术社区特准备了200块XR806开发板作为2022年社区新年活动,申请的人数有600多&#xff0c…

【江科大】STM32:外部中断(Extern Interrupt)

文章目录 EXTI(Extern Interrupt)外部中断EXIT的基本结构EXIT框图 旋转编码器简介库函数:对射式红外传感器计次:代码展示:旋转编码器计次注意: EXTI(Extern Interrupt)外部中断 功能…