性能测试之场景设计.docx

上传人:b****7 文档编号:9156072 上传时间:2023-02-03 格式:DOCX 页数:18 大小:410.59KB
下载 相关 举报
性能测试之场景设计.docx_第1页
第1页 / 共18页
性能测试之场景设计.docx_第2页
第2页 / 共18页
性能测试之场景设计.docx_第3页
第3页 / 共18页
性能测试之场景设计.docx_第4页
第4页 / 共18页
性能测试之场景设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

性能测试之场景设计.docx

《性能测试之场景设计.docx》由会员分享,可在线阅读,更多相关《性能测试之场景设计.docx(18页珍藏版)》请在冰豆网上搜索。

性能测试之场景设计.docx

性能测试之场景设计

性能测试之场景设计

前言

性能测试中的场景设计是实施性能测试的基础,只有合理的设计测试场景才能获得有价值的测试数据,为接下来的确认瓶颈、系统调优打下基础。

场景(Scenario)是一种用来模拟大量用户操作的技术手段,通过配置和执行场景向服务器产生负载,验证系统的各项性能指标是否达到用户要求,而Controller可以帮助我们对场景的设计、执行以及监控进行管理。

LoadrunnerController来管理和维护场景,可以在一台工作站控制一个场景中的所有虚拟用户(Vuser)。

执行场景时,Controller会将该场景中的每个Vuser分配给一个负载生成器。

负载生成器执行Vuser脚本,从而使Vuser可以模拟真实用户操作的计算机。

场景的分类

1.人工场景(手动场景)

所谓人工场景,实际就是自定义模式,各因素完全由我们来设置的创建场景的方法。

相比面向目标场景,人工场景在实际工作中应用的更为广泛。

用赛车游戏来比喻,这种方法类似常规比赛,不同的汽车从同一起点出发,到同一终点结束,最终按照时间排出名次。

2.面向目标场景

面向目标场景则与人工场景有所不同,它预先定义了一个测试目标,LoadRunner将根据这个目标自动构建场景,有点类似向导模式。

这种方法对于验证在项目性能说明书中列出、需要达到的性能目标很方便。

还是用赛车游戏来比喻,面向目标场景有点类似计时赛或者追逐赛,不同的汽车从同一起点出发,在规定的时间内,走的最远者获胜。

在面向目标场景的“向导模式”中,设定了一个或者多个测试目标,比如要求系统达到每秒处理5个事务,LoadRunner再根据这些目标自动创建场景。

目前,LoadRunner支持的测试目标有如下几种:

Ø虚拟用户数量。

Ø每秒点击次数(只对WebVuser有效)

Ø每秒事务数量

Ø每分钟访问页面数量(也仅对WebVuser有效)

Ø事务响应时间

场景设置描述

1.新场景设置对话框

字段解释:

ØSelectScenarioType(选择场景类型):

此选项区域列出了场景的两种类型:

1ManualScenario(手动场景或人工场景):

手动场景设置我们可以设置不同的业务组用户数量,同时编辑计划指定相关的运行时刻,虚拟用户加载策略等完成场景设计工作。

在创建脚本的过程中若选择了“UsethePercentageModetodistributetheVusersamongthescripts”选项,则可以指定虚拟用户总体数量,而后针对每个业务组设置用户数百分比的形式完成场景设置。

未勾选UsethePercentageModetodistributetheVusersamongthescripts:

勾选UsethePercentageModetodistributetheVusersamongthescripts:

②Goal-OrientedScenario(面向目标场景):

允许LoadRunner控制器根据具体的目标创建一个场景

Ø

脚本选择

由于Web应用比较复杂,在实际工作中需要创建一系列的脚本,比如登陆脚本、订票脚本、回复帖子脚本等。

因此,可以通过选择不同的脚本组合来模拟不同虚拟用户的不同操作。

ØAvailableScript(可用脚本):

首先可以从此处选择可用的脚本。

ØScriptsinScenario(场景中的脚本):

选择一个可用脚本后通过【Add】按钮将其添加到此处。

ØRemove(移除):

在ScriptsinScenario中选中一个在场景中的脚本,然后单击【Remove】按钮从ScriptsinScenario列表中移除。

ØBrowse(浏览):

单击【Browse】按钮可以选择脚本。

ØRecord(录制):

单击【Record】按钮可以录制脚本,弹出脚本录制界面:

ØQualityCenter…:

连接服务器

2.手动设置场景

Ø图的最下方,有两个选项卡,分别是Design(设计)和Run(运行)。

它们清楚地描述了手动场景的设置步骤就是:

先设计,再执行。

在此我们只讨论场景的设计。

Ø左上方界面显示ScenarioGroups为场景用户组设置界面

.

开始执行场景

.

场景中的虚拟用户设置

.

增加用户组

.

删除用户组

.

运行时设置

.

详细信息设置

.

查看脚本

Ø右上方界面显示ServiceLevelAgreement为服务协议界面

Ø左下方界面显示ScenarioSchedule为场景计划界面

①首先看此界面的主菜单设置:

.

NewScenario可以新建一个场景

.

DeleteScenario删除一个场景

.

Savenewname保存更改的场景名

.

StartTime场景开始时间

包括:

Withoutdelay(立刻执行)、Withadelayof(延时执行)可以设置具体时间之后再运行场景、At(定时执行)可以设置在何时(具体日期、小时)运行场景。

②场景计划主体包括:

Ø

更改场景名

Ø

计划按场景或用户组

1.场景方式中所有用户组虚拟用户增长方式一致,用学校活动来比喻,类似全校所有班级参加团体体操比赛。

2.用户组方式中各用户组中的虚拟用户增长方式可以不同,类似全校各班级自报节目的汇演。

Ø

运行方式选择

1.真实情况计划这种方式可以修改持续运行(Duration)与停止虚拟用户(StopVuser)这两种在启动虚拟用户之后发生的场景操作属性,它相对第二种执行方式更接近真实情况。

2.按脚本设置运行直到结束,这种方式则无法设置用户组启动后的各操作属性数值,脚本运行开始后,用户组的属性就维持不变了。

以上三个为设置执行场景的总体规则

以下为设置执行场景过程中各个分步操作的属性

Ø主菜单分别为“添加”、“编辑”、“删除”、“上移”、“下移”Action

Ø编辑Initialize初始化操作属性:

包括:

.InitializeallVuserssimultaneously(同时初始化所有的虚拟用户)

.Initialize–Vusersevery---(每隔一段时间初始化一定数目的虚拟用户)

.InitializeeachVuserjustbeforeitruns(在运行之前初始化每一个虚拟用户)

Ø编辑StartVusers启动虚拟用户操作属性:

包括:

Start—Vusers:

总共启动多少个虚拟用户

然后选择这些需要启动的虚拟用户的启动方式:

.Simultaneously:

同时启动

.--VuserseveryHH:

MM:

SS:

每隔一段时间加载一定数目的虚拟用户

Ø编辑Duration持续时间操作属性

包括:

.Rununtilcompletion:

场景持续运行直到完成

.Runfor–dayandHH:

MM:

SS:

场景运行指定的时间

Ø编辑StopVusers停止虚拟用户操作属性

包括:

Stop—Vusers:

总共停止多少个虚拟用户

然后选择这些需要停止的虚拟用户的停止方式:

.Simultaneously:

同时停止

.--VuserseveryHH:

MM:

SS:

每隔一段时间停止指定数目的虚拟用户

Ø右下方界面显示InteractiveScheduleGraph为运行当前场景,达到场景目标所历经的过程趋势图

3.面向目标的场景设置

Ø左上方界面显示ScenarioScripts为当前场景中的脚本列表

Ø右上方界面显示ServiceLevelAgreement为服务协议界面

Ø右下方界面显示图片区域为运行当前场景,达到场景目标所经历的过程趋势图

Ø左下方界面显示ScenarioGoal为场景目标信息显示和编辑(EditScenarioGoal)区域

由图可知:

系统默认选择了场景目标为-----每秒点击次数100

其他属性为:

.MinNumberofVusers:

50

最小虚拟用户50

.MaxNumberofVusers:

150

最大虚拟用户150

.ScenarioDuration:

30minafterthetargethasbeenachieved

场景持续时间:

目标完成后30min

.LoadBehavior:

Reachtargethitspersecondusingautomaticrampup

性能负载:

目标每秒点击自动增加

ØEditScenarioGoal编辑场景目标

……

ØGoalProfileName选择不同的目标:

ØDefineScenarioGoal修改场景目标具体数值:

包括:

GoalType:

目标类型

Reachgoalof…hitspersecond:

目标每秒点击数

Usingaminimumof…andamaximumof…Vuser:

虚拟用户的最小值和最大值

ØScenarioSetting场景设置

.

此为达到目标后系统继续运行时间

.

此为【如果目标无法达到,系统的处理方式:

(Iftargetcannotbereached)】

Stopscenarioandsaveresults停止场景并保存结果

Continuescenariowithoutreachinggoal继续运行场景、无须达到目标

另外,还可以选中接受通知(Receivenotification)使得测试人员了解测试目标无法达到这一情况

ØLoadBehavior负载行为设置为达到当前目标而增加负载

负载增加的行为方式有3种:

.Automatic自动:

默认方式,无须设置

.Reachtargetnumberofhitspersecondafter..时间间隔:

这种方式可以设置当前场景在达到目标之前需要运行多长时间,以小时:

分钟:

秒为单位。

.Stepupby…hitspersecondevery…:

渐进式:

这种方式可以采取一种渐进增加的策略执行场景,比如上图为每隔2分钟增加20个虚拟用户。

其他的目标具体设置内容和数值有所不同。

ØDonotchangerecordedthinktime不修改录制的思考时间

思考时间是用户在Web应用各操作之间的时间。

因此,在与事务相关的场景目标设置中,若维持每秒事务数量不变,如果选中了此项,则虚拟用户数量要相应的增加。

Ø面向目标的场景设置,同样可以设置场景的启动时间:

与手动场景设置一样同样包括:

Withoutdelay(立刻执行)、Withadelayof(延时执行)可以设置具体时间之后再运行场景、At(定时执行)可以设置在何时(具体日期、小时)运行场景。

㈣.控制器的全局设置

前面了解的是创建手动场景和面向目标的场景的各种设置,这些设置都是针对具体的特定测试场景的,如果场景不同或者测试类型不同,数值一般不同。

此处描述的控制器的全局设置则有些特殊,其中的数值对于该控制器下管理和实现的所有场景都有效。

Ø打开控制器全局设置的方法:

 

Tools-----Options打开如图

ØTimeout超时设置

当网络状况不好、场景中机器较多时,可以修改窗体中各个微调框的数值(单位均为秒)以免LoadRunner返回错误。

此为控制器与虚拟用户初始化等活动的超时设置

1可选框Enabletimeoutchecks为允许超时设置,如果禁用超时限制,LoadRunner将无限长地等待负载生成器进行连接和断开连接,并等待其执行“初始化”、“运行”、“暂停”和“停止”命令。

②LoadGenerator负载产生器:

可以设置连接(Connect)和断开连接(Disconnect)超时时间。

连接超时可以输入等待其他连接到任何负载生成器的时间限制。

如果在指定的时间内连接不成功,负载生成器的状态将变为“失败”。

断开连接超时可以输入等待从其他任何负载生成器断开连接的时间限制。

如果在指定的时间内断开连接不成功,负载生成器的状态将变为“失败”。

③还可以输入Init、Run、Pause、Stop命令的最长时间限制

每4刷新虚拟用户状态一次。

ØRun-TimeSettings运行时设置

虚拟用户配额(VuserQuote):

要防止系统过载,可以为Vuser活动设置配额,用来设置负载生成器一次可以初始化的最大Vuser数。

停止运行时虚拟用户执行策略(WhenstoppingVusers):

1.等待当前脚本迭代结束

2.等待当前脚本操作结束

3.立即结束

允许使用种子值来产生随机顺序。

每个种子值代表一个用于测试执行的随机值顺序。

只要使用同一个种子值,就会为场景中的Vuser分配相同顺序的值。

该设置将应用于使用Random方法从数据文件分配值的参数化Vuser脚本。

ØRun-TimeFileStorage运行时文件存储位置

可以设置脚本和结果存储的位置:

1.保存在本机

2.保存在共享网路驱动盘(利于别人查看和分析)

ØPathTranslationTable路径转换表

路径转换表是一种映射,将控制器上的文件路径转换为远程主机上的文件路径。

这样的设置对于网路中包含异类系统(比如既有Windows,也有Unix)是很有用的。

选择“ConverttoUNC”复选框,指示LoadRunner忽略路径转换表并将所有路径都转换为通用命名约定格式。

路径翻译表中的每一条记录应该类似如下的语句:

[]

ØMonitors监视器

监视器好像公路上的电子眼,用于随时报告场景的各项信息,他可以按照规定的时间(也叫做数据采样率,单位为秒)获得服务器资源信息,并反映到控制器界面当中。

事务数据(TransactionData)

启用事务监视器(EnableTransactionmonitor):

指在场景开始时开始监控事务。

频率(Frequency):

用来选择联机监视器为生成“事务”、“数据点”、“Web资源”联机图而采集数据的频率(以秒为单位)。

默认值为5秒。

对于小型场景,建议使用频率1;对于大型场景,建议使用频率3-5。

频率越高,网络流量越低。

服务器资源采样率(ServerResourceSampling):

采样速率是连续采样之间的时间间隔(以秒为单位)。

用来输入LoadRunner在场景中采集监控数据的速率。

如果增大采样速率,则数据的监控频率就会降低。

错误处理:

可以将错误发送到输出窗口或者以提示信息框的形式显示出来(可能打断执行过程,对希望性能测试自动执行不利)。

调试信息与调试级别0-9:

把与调试有关的消息发送至输出日志。

ØExecution执行页

默认的场景计划:

1.真实情况计划这种方式可以修改持续运行(Duration)与停止虚拟用户(StopVuser)这两种在启动虚拟用户之后发生的场景操作属性,它相对第二种执行方式更接近真实情况。

2.按脚本设置运行直到结束,这种方式则无法设置用户组启动后的各操作属性数值,脚本运行开始后,用户组的属性就维持不变了。

ØWAN Emulation 网络竞争页

排除来自于网络的主机(ExcludehostsfromWANemulation)

接下来是添加主机名和IP地址。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1