LoadRunner性能测试系统学习教程:脚本编写(1)

在这里插入图片描述

LoadRunner录制结束后会自动生成一段脚本。这段脚本虽然很简单,但很实用,适合初学者学习。但是在真正进行项目性能测试时,只靠LoadRunner自动生成的脚本还是不够,很难达到业务的要求。因此,在录制脚本结束后,要对脚本进行完善,使其能达到业务模拟的要求,这样尽可能地使虚拟用户模拟时更接近用户的实际使用。

本章将从以下几个方面介绍完善脚本的技巧:
插入检查点
Block(块)技术
参数化技术
关联技术

标题检查点

在进行压力测试时,经常会有页面间数据传递的操作。如果在测试过程中传递数据的次数逐渐增多,页面就有可能会发生传递混乱,或者客户端与服务器端数据传输被中断、传输过程中产生了错误的数据等情况。为了判断数据传递的正确性,更重要的是为了节省人工检查的步骤和时间

LoadRunner提供了在脚本中插入检查点的方法,在每次运行时都检查服务器返回页面的信息是否正确,这样可以大大提高测试效率。

检查点的原理是通过检查点函数将返回值的结果反映在Controller的状态面板上和Analysis统计结果中。这个原理是基于LoadRunner中很多的API函数的返回值会改变脚本的运行结果。比如,检查点函数web_find,如果它检查到的结果为空,它的返回值就为LR_FAIL,这样整个结果置为FAIL;反之,检查到的结果为成功,则web_find返回值是LR_PASS,整个结果置为PASS。

为什么需要插入检查点
通常在测试过程中使用到两种检查点,文本检查点和图片检查点。那么为什么需要插入检查点呢?以飞机订票系统的登录功能为例,我们来观察在不插入检查点回放,事务结束状态的情况。

首先录制登录的脚本,脚本如下(部分核心代码):
web_reg_save_param(“WCSParam2”,
“LB/IC=userSessionvalue=”,
“RB/IC=>”,
“Ord=1”,
“Search=Body”,
“RelFrameId=1”,
LAST);
web_url(“nav.pl”,
“URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home”,
“Resource=0”,
“RecContentType=text/html”,
“Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true”,
“Snapshot=t7.inf”,
“Mode=HTTP”,
LAST);
web_concurrent_end(NULL);
web_url(“mer_login.gif”,
“URL=http://127.0.0.1:1080/WebTours/images/mer_login.gif”,
“Resource=1”,
“RecContentType=image/gif”,
“Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home”,
“Snapshot=t8.inf”,
LAST);
lr_start_transaction(“Login”);
lr_think_time(14);
web_submit_data(“login.pl”,
“Action=http://127.0.0.1:1080/WebTours/login.pl”,
“Method=POST”,
“RecContentType=text/html”,
“Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home”,
“Snapshot=t9.inf”,
“Mode=HTTP”,
ITEMDATA,
“Name=userSession”,“Value={WCSParam2}”,ENDITEM,
“Name=username”,“Value=test1”,ENDITEM,
“Name=password”,“Value=1”,ENDITEM,
“Name=JSFormSubmit”,“Value=off”,ENDITEM,
“Name=login.x”,“Value=46”,ENDITEM,
“Name=login.y”,“Value=6”,ENDITEM,
LAST);
web_concurrent_start(NULL);
web_url(“nav.pl_2”,
“URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home”,
“Resource=0”,
“RecContentType=text/html”,
“Referer=http://127.0.0.1:1080/WebTours/login.pl”,
“Snapshot=t10.inf”,
“Mode=HTTP”,
LAST);
web_url(“login.pl_2”,
“URL=http://127.0.0.1:1080/WebTours/login.pl?intro=true”,
“Resource=0”,
“RecContentType=text/html”,
“Referer=http://127.0.0.1:1080/WebTours/login.pl”,
“Snapshot=t11.inf”,
“Mode=HTTP”,
LAST);
web_concurrent_end(NULL);
在这个脚本中并没有插入检查点,回放脚本,日志文件如图所示。
在这里插入图片描述

从回放日志中可以看出,登录事务是正确的,用户成功登录,这没有问题,现在将web_submit_data函数用户名和密码的参考修改一下,将其修改为如下代码:
web_submit_data(“login.pl”,
“Action=http://127.0.0.1:1080/WebTours/login.pl”,
“Method=POST”,
“RecContentType=text/html”,
“Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home”,
“Snapshot=t9.inf”,
“Mode=HTTP”,
ITEMDATA,
“Name=userSession”,“Value={WCSParam2}”,ENDITEM,
“Name=username”,“Value=abcdef00133”,ENDITEM,
“Name=password”,“Value=ddaa”,ENDITEM,
“Name=JSFormSubmit”,“Value=off”,ENDITEM,
“Name=login.x”,“Value=46”,ENDITEM,
“Name=login.y”,“Value=6”,ENDITEM,
LAST);
重新回放脚本,回放日志如图所示。
在这里插入图片描述

从回放日志中可以清晰的看到,登录还是成功的,但实际情况下使用用户名为abcdef00133,密码为ddaa是不可能登录成功的。从LoadRunner的Run-Time Viewer视图中也可以看出,Run-Time Viewer视图结果如图所示。
在这里插入图片描述

登录成功后正常的情况是,Welcome后面会显示出登录的用户名。
这个例子说明一个问题,当事务的结束状态为成功时,并不能说明业务真的做成功了,那么同理,当在分析器中看到事务的成功率为100%时,平均事务响应时间也是在期望范围内时,也不能说明系统没有问题,也有可能出现这种情况,业务没有做成功,但事务的结束状态都被置为成功了,这样分析到的结果就完全错了。

那么LoadRunner是如何确定事务结束状态为PASS的呢?其实LoadRunner本身无法实际去判断业务是否做成功,其判断事务是否成功的依据是结束事务函数(lr_end_transaction)是否被执行,如果结束事务函数执行成功,那么LoadRunner则会将事务的结束状态设置为PASS。

从这个例子可以看出,如果需要确定事务是否成功,其实首先应该判断是否登录成功,只有当登录成功时,才能确定登录事务是成功的,所以其实检查点的根本目的是验证测试过程中的步骤是否被正确的执行,也可以理解为业务是否被正确的执行,只有这样才能保证后期分析的数据是正确的。
uc2hpeHg=,size_16,color_FFFFFF,t_70#pic_center)

插入检查点

插入检查点的方法,在工作原理上是在VuGen中插入Text/Image检查点。插入检查点的步骤如下:

1.将视图模式设置为Tree View,如图所示。
VuGen中包含Tree View(树视图)和Script View两种视图模式。一般情况下都是使用Script View,但在插入检查点时,一般都将视图模式切换为Tree View,这样方便找到要插入检查点的页面,对于初学者来说这是一种很好的方式,这样可以保证插入检查点的位置正确。
在这里插入图片描述

2.在Tree View中选择要插入检查点的位置。
选中要插入检查点的位置后,点击鼠标右键,选择检查点插入的方式,可以选择插在前面,也可以选择插在后面,如图所示。

3.选择检查点类型和插入函数。
插入检查点有文本检查点(Text Check)和图片检查点(Image Check)两种,选择的检查点函数也有两个,分别为:web_find和web_reg_find。
插入文本检查点(Text Check),使用web_find检查点函数的情况,如图所示,点击OK按钮后会弹出Text Check Properties对话框,如图所示。
在这里插入图片描述
在这里插入图片描述

在Specification选项卡,设置检查参数信息,主要有以下三个属性需要设置:
Searchfor:设置要检查的字符串,可以点击对检查的内容进行参数化。

Rightof:设置右边界值,也就是设置要检查字符串右边的内容,如Howareyou,如果要检查的内容为“are”,那么右边界值为“you”,也可以设置为空。

Leftof:设置左边界值,也就是设置要检查字符串左边的内容,如Howareyou,如果要检查的内容为“are”,那么左边界值为“How”,也可以设置为空。
在这里插入图片描述

然后切换到General选项卡,如图所示,在Step Name文本框中输入该操作的步骤名称,命名时名称最好能反映该操作要搜索的对象。
在这里插入图片描述

插入文本检查点(Text Check),使用web_reg_find检查点函数的情况,如图所示,点击OK按钮弹出Find Text对话框。
在这里插入图片描述

在Find Text对话框中设置搜索的属性配置,如图所示。
在这里插入图片描述

在Find Text对话框设置检查点属性时,有以下几个需要注意的地方:
1.Search for specific Text:和web_find检查点函数一样,同样需要对待检查的字符串进行设置,也可以对检查点的内容进行参数化,但web_reg_find检查点函数还可以对检查的内容进行是否区分大小写、是否为二进制数据、是否使用“#”代替任意阿拉伯数字和是否使用“^”作为通配符进行设置。

2.Search in:设置查找范围,关于查找范围为三个选项:All、Body和Headers,缺省值为Body。
那么如何来确定查找范围呢?以飞机订票系统登录成功,如图所示。
在这里插入图片描述

那么在使用这种方式来插入检查点时,需要检查的用户名(test1)应该是在哪里查找呢?在检查点函数web_reg_find中可以看到,通常有三种范围选择,那么在实际测试过程中可以依次在这三种范围中进行查找,检查用户名所在的地方就是需要设置的范围。

在树模型中找到登录成功的页面,并单击HTTP View选项卡,在该选项卡中可以看到录制的过程LoadRunner所抓到客户端向服务器发送的请求和服务器向客户端返回的请求。

在Response Body和Headers选项卡中依次查找待检查的用户名(test1),该实例在Response Body中可以查找到待检查的用户名,如图所示。
在这里插入图片描述

这样检查范围就应该设置为Body,那么一般在实际测试过程中待查找的内容都会在Body中,所以缺省值为Body。

3.Save count:定义查找计数器变量名称,该变量会自动统计检查内容出现的次数。在检查点类型和函数中,选择检查点类型为Image Check,检查点函数为web_image_check,如图所示。
在这里插入图片描述

点击OK按钮,弹出Image Check Properties对话框,在该对话框中设置图片的提示信息和图片的相对路径,如图所示。
在这里插入图片描述

如果Web窗体中包含有JavaScript脚本,那么在TreeView中显示可能会有问题,这时要在GeneralOptions中进行设置,如图所示。
在这里插入图片描述

进入General Options对话框,如图所示,切换到Correlation选项卡,选中Enable Scripting and Java applets on Snapshots viewer复选框,点击OK按钮,设置完毕。
在这里插入图片描述

4.参数化:检查点也可以进行参数化,因为检查点的内容可有会出现经常变化的情况,因此在一定的时候需要对检查点的内容进行参数化操作。在检查点属性设置对话框中点击按钮,弹出参数设置对话框,如图所示。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LoadRunner是一款功能强大的性能测试工具,以下是一份loadrunner性能测试计划的示例: 1. 测试目标:测试目标是确保应用程序在高负载情况下能够正常运行,同时满足性能指标。 2. 测试环境:测试环境将包括应用程序和服务器的硬件和软件环境。以下是测试环境的详细信息: - 应用程序:xxxx应用程序 - 服务器:Windows Server 2016 - 数据库:Microsoft SQL Server 2016 - Web服务器:IIS 10.0 - 浏览器:Chrome,Firefox,Internet Explorer 3. 测试场景:测试场景将模拟用户在应用程序中执行的主要业务流程。以下是测试场景的详细信息: - 用户登录:模拟用户登录应用程序。 - 数据查询:模拟用户执行数据查询操作。 - 数据输入:模拟用户执行数据输入操作。 - 数据保存:模拟用户执行数据保存操作。 - 数据导出:模拟用户执行数据导出操作。 4. 性能指标:性能指标将用于评估应用程序的性能。以下是性能指标的详细信息: - 响应时间:应用程序响应用户请求的时间。 - 吞吐量:应用程序每秒钟可以处理的请求量。 - 并发用户数:应用程序可以同时处理的用户数量。 - CPU利用率:服务器CPU的利用率。 - 内存利用率:服务器内存的利用率。 - 磁盘I / O利用率:服务器磁盘I / O的利用率。 5. 测试计划:以下是测试计划的详细信息: - 数据准备:准备足够的数据,以便在测试期间使用。 - 脚本录制:使用LoadRunner录制脚本以模拟用户行为。 - 脚本调整:根据测试场景和性能指标,调整脚本以确保测试的准确性和可靠性。 - 负载测试:使用不同的负载模拟用户并发访问应用程序,以测试性能指标。 - 性能测试:对测试结果进行分析,评估应用程序的性能,并确定是否达到性能指标。 - 报告撰写:根据测试结果,编写测试报告,包括测试概述、测试结果、分析结论和建议。 6. 测试人员:以下是测试人员的详细信息: - 测试经理:负责计划、管理和监督整个测试过程。 - 性能测试工程师:负责录制脚本、调整脚本、执行测试和分析测试结果。 - 应用程序开发人员:负责协助测试工程师调整脚本和分析测试结果。 - 系统管理员:负责提供测试环境并确保其稳定性。 以上是一个loadrunner性能测试计划的示例,具体计划可能因应用程序和测试需求的不同而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值