VUGen是LoadRunner的四个核心组件之一。当您使用HP LoadRunner 开始使用性能测试时,它是您与之交互的第一个组件。
让我们了解一些与VUGen相关的显着特征
VUScripts: 如前所述,VUGen的目的是创建用于模拟真实虚拟用户的VUScripts。
操作:操作是在“负载下系统”中执行的用户事务的集合,以实现已定义的任务。可以将动作与其他编程语言中的函数进行比较。每个Vuser脚本都有3个默认函数
- Vuser_init(用于登录应用程序)
- 操作(用于记录业务流程)
- Vuser_end(用于注销应用程序)
VUGen不仅可以记录脚本,还可以重放它们(仅限1个VUser)以确保正确记录脚本。确保正确记录脚本后,将其合并到LoadRunner方案中
在本文中,您将学习
- VUGen中的脚本开发过程
- 比较QTP和Loadrunner之间的录制
- Web Tours应用程序简介
- 了解VUGen环境
- 创建你的第一个VUGen脚本
- 在记录师使用事物
- 在记录时插入评论
- 代码生成
- 决定协议和协议顾问
- 录制选项
- 播放脚本并了解日志
- 录制和播放期间生成的文件概述
VUGen中的脚本开发过程
1.记录脚本:通常,这是编写脚本的第一步,其中每个用户操作都记录在脚本中。
2.重播和验证:记录脚本后,回复脚本以确保其正常工作。通过应用程序前端或数据库验证任何影响。
3.增强脚本:验证记录后,通过添加检查点,验证数据,添加事务和集合点来增强脚本。
4.重播和验证:如前所述,重新播放脚本并验证一切是否按预期工作。
5.配置运行时设置:配置和控制调步持续时间,思考时间变化,代理设置以及是否要忽略任何外部资源。
6.用于加载方案:根据测试目标制定加载方案。使用负载分配和地理范围的代理来实现类似的场景。
比较QTP和LoadRunner之间的录制
VUGen无视UI对象:
与QTP脚本不同,LoadRunner脚本独立于GUI。这是因为生成的代码不能基于UI对象工作,而是工作在客户端对服务器的请求的主体上,并期望服务器响应回客户端。这就是为什么重放LoadRunner脚本始终与浏览器无关。VUser可以通过执行对服务器API的调用直接与服务器通信,而不依赖于客户端软件(SUL),这意味着如果对系统负载下的UI进行了更改,则不会对脚本产生影响。这告诉; 的性能测试是完全基于客户端/服务器通信(请求和响应),而不是GUI对象。
Web Tours应用程序简介
为了实现所有目的,我们将使用与LoadRunner捆绑在一起的Web Tours应用程序。
HP Web Tours需要依赖“Web浏览Apache服务器”才能运行。要运行Web Tours Apache Server,请转到“开始”菜单=> HP Software => Samples => Web,然后单击“启动HP Web Tour服务器”。
一旦“服务器”被激活,它将在控制台上打开一个shell并输出。
控制台应该看起来像下面的快照,在shell中查找您的IP地址:
注意:如果关闭此窗口,服务器将停止。
现在您可以访问Web Tours应用程序 -
一旦推出,它看起来像 -
了解VUGen环境
要运行VUGen,请从桌面双击VUGen快捷方式,或转到“开始”菜单=> HP软件=>,然后单击“虚拟用户生成器”。
VUGen闪屏将显示如下
启动屏幕随后将打开HP VUGen主页,如下所示:
从“文件”菜单中,您可以观察各种命令控件。这些控制的目的如下:
新脚本和解决方案:用于开始创建新脚本。或者,您可以从工具栏按钮创建新脚本。
打开>>脚本解决方案:用于从目录中打开现有的,先前创建的脚本或解决方案。
添加>>新脚本:用于将以前创建的脚本添加到当前解决方案中
当我们开始创建第一个脚本时,我们将熟悉其他控件。让我们继续学习吧。
创建您的第一个VUGen脚本
在录制之前,请确保Web Tours App正在运行。请记住,您需要保持服务器运行,所以不要关闭它。如果窗户困扰你,你可以尽量减少它。
提示: 在实际问题中,需要熟悉主题应用程序(SUL),尤其是涉及复杂的业务工作流程和数据阶段时。您还可以与HP Web Tours进行交互,以确保您可以在录制时重复确切的步骤。
在开始编写任何应用程序(SUL)脚本之前,需要熟悉应用程序流程。通过本教程,让我们熟悉随HP LoadRunner一起提供并自动安装的HP Web Tours。
步骤1)单击File => New Script and Solution,如下面的快照所示:
您可以使用快捷键(Ctrl + N)执行相同操作。
步骤2)显示选择协议的窗口。该列表与以前的版本略有不同
1.选择单一协议
2.网络
3.输入脚本名称
4.单击“创建”
注意:您可以使用Protocol Advisor确定应用程序用于通信的正确协议。对于HP Web Tours,我们已经知道它需要“Web-HTTP / HTML”协议。我们将在稍后阶段学习如何为您的SUL确定正确的协议。
提示:应用程序有时可能需要多于1个协议才能与其服务器通信。对于这种情况,请导航到窗口左侧的“多个协议”列表。
但是,在使用VUGen编写脚本时,HP Web Tours只需要一个协议。
提示:您无法轻松重命名脚本,因此在为脚本命名时要具有创造性。如果要重命名脚本,请使用“ 另存为”功能并指定新名称。一个好的命名法可能类似于WT01_Signup,其中WT是应用程序名称的简短形式,01是业务流程序列,而注册是指正在编写脚本的业务流程。另请注意,您不能在脚本名称中使用空格。
步骤3)一旦单击Create,HP VUGen将打开IDE(集成开发环境)或代码编辑器。除了Function Action的基本签名外,您可以注意到脚本文件是空白的。快照下面应该有助于更多地了解它:
步骤4)单击工具栏中的“录制”按钮。请参阅下面的快照:
步骤5)打开一个新窗口
1.如果我们研究上面的窗口,则在此弹出窗口的标题栏中提到脚本的名称。当您处理一次打开的多个脚本时,这将帮助您更改正确的脚本。
2.如果您没有看到其余控件,请单击“ 更少选项”按钮以确保您没有查看更少的选项。
3. 记录到操作字段中确定录制后代码的生成位置。VUGen有助于切换到其他操作或在录制期间和之后创建新操作。
4. 记录:字段告诉VUGen主题应用程序(SUL)是Web应用程序或桌面客户端。录制开始后,无法覆盖此选项。
5. 应用程序:字段告诉VUGen,哪个浏览器用于记录。如果您不使用Web - HTTP / HTML协议,则将使用此字段选择桌面客户端。
提示:与QTP脚本不同,LoadRunner脚本独立于GUI。这是因为生成的代码不能基于UI对象工作,而是根据客户端对服务器的请求原则并期望服务器响应回客户端 - 通常是以HTML的形式(因此是协议的名称) )
6. URL地址:此处输入SUL的URL。单击“开始录制”时,VUGen将调用此URL。如果与默认浏览器不同,使用的浏览器将是“ 记录: ”字段中提到的浏览器。
7. 开始录制:立即与延迟:如果您选择了立即录制模式,您会注意到VUGen在您点击“开始录制”按钮后立即开始录制事件。但是,如果选择延迟录制模式,VUGen将调用系统(SUL)但不会开始捕获事件,除非您单击浮动条上的录制按钮。
8. 工作目录:这是VUGen在捕获事件时将使用的临时目录。我们也会在这个位置提供您的脚本副本,以防您丢失文件夹:)
9. 录制选项:这些设置告诉VUGen要捕获的URL类型以及要使用的录制模式。
10. 开始录制:将开始录制。点击它
步骤6)一旦开始录制,VUGen将使用所选的浏览器调用HP Web Tours应用程序。
让我们在Web Tours应用程序中注册用户并记录基本脚本。
将出现一个浮动记录栏,它将提供对录制的各种控制。这告诉了经过的时间和自动捕获的一些事件。让我们仔细看看浮动栏。
在上面显示的快照中,自记录开始以来,SUL已经发射了56个事件,总共持续了0分25秒的持续时间。
您还会发现在键入时不会触发任何事件。问问自己为什么。你可以回答吗?
这是因为在您键入时不会发生客户端到服务器的通信。因此,不会触发任何事件,也不会生成有关键入的脚本。只有在您提交表单后才会生成代码(单击继续)
使用暂停按钮可以暂停录制。请注意,只要录制内容暂停,应用程序触发的所有事件都将被忽略。这也意味着即使您的应用程序正在发送请求和/或从SUL接收响应,只要您暂停录制,脚本就不会生成。
如果您暂停录制,则需要单击浮动条上的录制按钮才能恢复录制。
在vuser_init部分录制时,您会注意到未启用集合按钮。切换到操作(或创建新的操作)并继续录制。请参阅下面的快照以了解如何切换操作。
您会注意到切换到Action后, 将自动启用集合按钮。这是因为VUGen不允许在vuser_init中插入集合点。
在记录时使用事务
假设您希望在X个用户同时注册时评估响应时间。为了实现这一目标,让我们进一步阅读。
到目前为止,您已在vuser_init操作中记录了应用程序的打开。切换到Action后,输入SUL所需的用户信息。在点击“继续”按钮之前,请按照以下步骤操作:
单击浮动栏中的按钮启动事务。输入事务的名称,例如01_Signup。
提示:最好使用类似01_的前缀命名您的事务,以帮助保持它们的唯一性。
浮动栏看起来像这样:
单击“确定”关闭事务标签。
单击应用程序的“继续”按钮。
点击按钮结束交易。选择要关闭的事务的名称,例如,在这种情况下为01_Signup。请参阅下面的快照以进行说明。
如果您没有打开多个事务,则只会看到一个名称。但是,如果您有多个,则可以从列表中进行选择。
在记录时插入评论:
现在您已成功关闭了交易,您可以在记录时发表评论,以便在您稍后学习代码时给自己一个提醒。从浮动栏中,单击按钮以插入注释。浮动栏旁边会出现一个文本框,您可以在其中输入任何文本。
在您单击“确定”按钮之前刚刚完成的步骤(代码)之后,此注释将插入到代码中。
从应用程序中,您可以单击“继续”。您将看到应用程序的欢迎说明。
现在选择vuser_end操作,然后单击从应用程序中注销。关闭应用程序,然后单击 浮动栏中的停止按钮。
代码生成:
一旦录制停止,您将注意到VUGen后期生成活动。这包括根据您的录制生成代码,交易和评论。请参阅下面的快照。
在VUGen完成“执行后期生成操作”之后,它将立即开始“执行相关后期生成操作的扫描”。我们将更详细地看到相关性的含义。
完成后期生成操作后,您将看到Design Studio窗口。如果找到任何相关候选者,您将能够在此窗口中查看它们。
您可以安全地单击“关闭”按钮,VUGen将带您进入已生成的代码。
窗口看起来像这样:
如上图所示,编辑器包含易于理解,易读的代码。您可以查看录制时使用的参数。
VUGen的左侧称为Step Navigator,可让您在不查看代码粒度的情况下理解“脚本”。例如,您可以阅读步骤,打开URL,花费思考时间并提交表单。这封装了与每个请求关联的所有参数。
您的脚本已生成,单击“文件”菜单,然后单击“将脚本另存为”以浏览要保存脚本的位置。如果您之前已经保存过脚本,VUGen将自动建议最后使用的目录。建议的名称将是您开始录制时提到的名称。
全做完了。
现在,祝贺您自己成功生成并保存了第一个脚本。
决定协议和协议顾问
您可能已经质疑过我们为什么使用Web-HTTP / HTML协议。我们如何决定应该使用哪种协议?答案并非那么简单。
作为回答这个问题的先决条件,您需要具备一套建筑基础技能。如果您是初学者,您可以与具有可靠的客户端架构和开发技能的人配对。您可以与SUL的开发人员交谈,找出应用程序利用的接口。这将引导您进入将用于虚拟用户脚本开发和协议选择的接口的自然路径。
为满足初学者对架构技能知识不足的需求,LoadRunner在LoadRunner 9.1中引入了一项名为Protocol Advisor的功能。虽然这使许多人的生活更轻松,但是应该更多地依赖于架构和开发技能而不是协议顾问,并从开发团队接收有关底层开发技术的信息。在所有情况下,协议可能不建议正确的协议。
要使用Protocol Advisor,请转至Record => Protocol Advisor => Analyze Application
请参阅下面的快照:
这将打开Protocol Advisor的主窗口。如果你注意到,这与出现用于录制的窗口有点相似。我们来看看下面的窗口:
选择Web浏览器,因为我们使用的是基于Web的应用程序。
指定随后将调用的应用程序的URL。工作目录可以保留,因为这只是VUGen使用的临时目录。确保您对此目录具有读写权限。
单击“开始分析”按钮。
将出现一个浮动条,有点类似于记录时间浮动条。看看快照:
该过程将告知已过去的时间和一些事件。但是,此信息不是必需的。这个事件计数器的唯一好处是,您知道您的客户端SUL正在与服务器通信。
由于大型企业应用程序中的各种业务流程可能涉及各种协议,因此一次只分析一个业务流程是一种很好的做法。例如,某些应用程序中的仪表板可能具有Ajax或Flex等,但这不会出现在登录页面上。
完成特定业务流程后,可以点击“停止”按钮。VUGen协议顾问将提出有关协议建议的摘要报告。看看它的样子:
您可以从Protocol Advisor中查看建议。这些可能是也可能不是最佳选择。
您已经学会了使用Protocol Advisor。但是,这可能对初学者或您需要“另一种意见”的情况有所帮助 - 依赖于您的架构意识,编程知识,开发技能和从开发团队收到的信息来决定协议。
录制选项
每当VUGen生成脚本时,生成的代码基于可在“录制选项”下找到的各种配置 - 或者您可以按Ctrl + F7查看录制选项。
在讨论所有配置之前,让我们先看看录制选项窗口:
有各种类型的配置,如常规,关联,网络和数据格式扩展。让我们逐一了解其中最重要的一点。
一般=> 录制:
本主题需要详细了解。因此,这将单独讨论。
一般=> 脚本:
看一下快照,一瞥:
您会注意到语言下拉列表已被禁用。一个常见的误解是LoadRunner不会生成任何其他语言的代码。另一个误解是,它需要许可证才能使用其他语言。
两者都是假的。LoadRunner自己决定在生成脚本时使用哪种语言。在几乎所有情况下,您都会发现自己正在使用C语言。
对于某些Java应用程序(如Java applet),生成的代码将使用JavaScript语言。
VUGen将仅为在Visual Basic classic(MS Visual Studio 2002)中开发的应用程序生成VBScript语言的脚本
脚本选项:
您可以选择“在结束交易后生成固定的思考时间”。这意味着,无论用户等待多少,生成的思考时间(延迟)将等于指定的值。该值以秒为单位。
动作文件中的最大行数是指VUGen将生成动作的最大行数。如果脚本较大,VUGen将自动创建新操作。默认设置为60,000。可指定的最大值为65,000
在后端处理带有Oracle的桌面应用程序时,您可能会发现此配置很有用。
常规=>协议 为您提供选择和取消选择在录制开始时选择的任何协议的选项
基本上,只有在您希望重新生成脚本时才会使用它。
看看屏幕:
在录制脚本时使用多协议时,这很有用。您可以重新生成脚本并取消选择不希望的协议,并获取新脚本而无需重新录制。
一般 => 代码生成:
看看下面的快照:
此配置告诉VUGen在记录时找到相关的候选对象。如果您不希望自动关联,则可能希望关闭此功能。
相关 => 配置:
请查看下面的屏幕截图并熟悉屏幕。
虽然自动关联仅在5%到10%之间有用,但您可以选择“规则扫描”和“自动关联找到的值”。但是,如果您的脚本无法播放,您可以考虑通过单击按钮来恢复默认值。
相关 => 规则:
转到规则,在这里您可以看到VUGen用于查找相关候选项的各种规则。如果您知道应用程序(SUL)用作参数,则可以添加自定义规则。但是,这是记录时间设置的高级用法。如果您是初学者,可以安全地跳过此主题。
HTTP属性 => 高级:
此框架提供与HTTP绑定相关的各种设置。
重置每个操作的上下文,启用此选项可指示VUGen在记录之前将操作之间的所有HTP上下文重置为其初始状态,从而为记录会话提供干净的开始。默认情况下启用该选项。
除非必要,否则您可以保留其余配置。
网络 => 端口映射:
此框架应保持不变。如果您正在录制桌面应用程序,则可能必须选择WinINet级别数据。
您可以转到选项(只要您使用Socket级别数据)并选择各种选项,如SSL版本或其他类型的安全套接字层。如果您是初学者级别或不需要这些选项,则可以跳过。看看你是否熟悉屏幕。
现在您已完成大部分“记录时间”选项,让我们转到下一个主题,并了解HTML和基于URL的脚本之间的区别。
基于HTML和基于URL的脚本之间的区别
您可能已经注意到可以选择基于HTML的脚本或基于URL的脚本。看一下闪回的快照。
那么这个选项是什么以及选择哪一个?
基于HTML的脚本基于用户操作,脚本包含与所采取的操作直接对应的功能。让我们理解一小段代码的例子:
例:
web_link(“企业系统性能”,
“Text =企业系统性能”
“快照= t4.inf”,
持续);
基于URL的脚本基于用户操作发送到服务器的HTTP请求。
以下是与上述相同操作的URL模式代码示例(在HTML模式下)
例:
web_url(“企业系统性能”,
“URL = / esp.html”,
“TargetFrame =”,
“资源= 0”,
“RecContentType = text / html的”,
“Referer = / atc?...,
“快照= t4.inf”,
“模式= URL”,
持续);
提示:在你前进之前最好先试验自己。更改记录时间设置并记录两次相同的脚本,即一次使用HTML模式,一次使用URL模式 - 然后比较两者。保持脚本简短,以便您了解其中的差异。
我们如何决定使用哪种模式?
让我们了解两种模式的优缺点,以便了解哪种模式在某些情况下更合适:
HTML录制的好处
- 减少捕获动态值的需要
- 操作标记值和隐藏数据不是硬编码的
- 在播放期间从内存中检索它们
- 如果它们是动态的,则VUser仍然运行
- 脚本只与业务流程一样大 - 每页一步
HTML录制的缺点
- 脚本的可伸缩性较差
- 在播放期间搜索存储器(缓存)
- 需要更多的记忆
- 需要更多的CPU能力
URL记录的好处
- 灵活性
- 支持页面上的Java Applet和ActiveX对象
- 能够在UNIX上重放
- 可扩展性
- 脚本比HTML脚本更具可伸缩性,因为它们需要的资源更少
URL记录的缺点
- 脚本需要更多关联(从缓存中检索不到任何内容)
- 上下文相关的检查不起作用(解析器被禁用)*
- 脚本很大(所有图像和帧都记录为单独的步骤)
这是一个快速说明:
HTML模式 | 网址模式 |
直观且易于理解 | 不像HTML脚本那么直观 |
脚本较小,请求封装且易于理解 | 脚本很大,包含对每个图像,css,html等的调用,因此很难理解。 |
可扩展 | 更加可扩展且有效地创建负载测试 |
使用重新生成脚本
假设您想录制刚刚录制的相同脚本,但具有不同的录制时间设置。在这种情况下,您可以使用重新生成脚本功能。
您可以在Record => Regenerate Script或热键Ctrl + Shift + R下访问它
单击菜单后,VUGen将向您发出警告,指出现有脚本以及您对现有脚本所做的所有更改都将丢失。警告消息如下所示:
您也可以单击“选项”从此处打开“录制时间选项”。
单击“确定”继续重新生成脚本。
播放脚本并了解日志
保存脚本后,可以单击 工具栏中的重播或按F5。
您可以在工具栏中找到此按钮:
您需要确保服务器正在运行(这是应用程序正常工作所必需的)
当您重放脚本时,您会注意到与QuickTest Professional不同,它不会打开任何浏览器进行重放。请记住,此执行将仅模拟SUL上的1(单个)用户负载。此执行的目的是确保您的脚本正常工作。
提示:您需要验证应用程序本身的影响。例如,如果要创建记录,请转到应用程序并手动验证脚本是否实际创建了记录。您的脚本很可能不会被另一个测试或QA团队测试,因此您需要非常小心您的脚本并确保这些脚本经过全面测试。
您可以保持重播日志处于活动状态,因为这将有助于识别相关候选项以及您可能遇到的任何错误和警告。由于生成日志需要充足的资源,因此在完成脚本调试并将其用于场景时,最好将其关闭。
录制和播放期间生成的文件概述
让我们关闭VUGen并查看它在脚本文件夹中创建的文件。 5199 70686 软件测试学习交流群
VUGen创建了一系列配置文件,数据文件和源代码文件,其中包含VUser运行时和设置信息。脚本的每次迭代的结果都是单独存储的。如果您至少执行过一次脚本,则会注意到名称为result1的目录。该目录供系统使用,测试人员应忽略该目录。
您需要了解的重要文件:
VUGen将为每个动作创建一个.c(C语言代码文件)。因此,最后,您将拥有vuser_init.c和vuser_end.c以及Action.c - 如果您创建了更多操作,您也将看到相应的文件。例如,myAction.c
重播日志保存在名为output.txt的文件中。如果您多次替换它,output.txt将包含最后一个执行日志,而output.bak将包含在上一次运行之前。
<script_name> .usr文件将包含您自定义的所有运行时配置。即使您已将所有配置保留为默认值,此usr文件也将包含该信息。此文件还包含用于创建脚本的LoadRunner版本。如果您正在阅读无法调用版本号的旧脚本,则此信息很有用。
您将看到名为“data”的文件夹。此文件夹保留事件的图像以及代码的副本。当您“重新生成”代码时,VUGen会使用这些文件。
更多推荐
LoadRunner中的VuGen(虚拟用户生成器)脚本记录示例
发布评论