LoaRunner性能测试系统学习教程:场景设计实践之功能测试脚本(4)

上期我们讲到LoaRunner性能测试场景设计实践之负载均衡技术,这期我们讲LoaRunner性能测试场景设计实践之功能测试脚本。

在LoadRunner中使用功能测试脚本

LoadRunner能够将GUIVuser脚本形式的功能测试脚本集成到负载测试场景中。这样就可以使用LoadRunner来测试和监控负载对应用程序功能的影响。LoadRunner可以将GUIVuser脚本形式的这些功能测试脚本集成到负载测试场景中,在QuickTest或WinRunner中设计并调试过的这些脚本可用作负载测试的基础。  

在LoadRunner中运行功能测试脚本主要有以下几个优点:  

1.可检查高负载对应用程序的功能带来的影响。  

2.可以度量应用程序在负载下运行时,典型用户在客户端等待的响应时间(端到端的响应时间)。  

3.通过GUIVuser可以度量并监控客户端/服务器系统在负载下端到端的用户响应时间。端到端的响应时间表示用户在提交请求后等待响应的总时间。端到端的响应时间包括GUI响应时间、网络和服务器响应时间,如图所示。

QuickTest创建GUI Vuser脚本

在QuickTest中创建用于LoadRunner测试场景中的GUI Vuser脚本时,需要遵循特定的准则以确保能够平衡集成脚本。QuickTest具有多项与LoadRunner集成设计的功能。但部分QuickTest功能可能在与LoadRunner集成时不可用。QuickTest与LoadRunner集成要注意以下几个方面。

1.事务

在一些时候为了知道服务器对某一个业务的处理能力,需要定义事务。在Vuser脚本中可以通过嵌入适当的开始和结束事务语句脚本段来定义事务。但要注意的是LoadRunner仅提供事务中数据性能信息。因此,QuickTest测试必须包括LoadRunner要使用的事务。通常在QuickTest中也使用插入开始事务和插入结束事务来插入事务。这样可以确保事务被正确地集成到LoadRunner中。

2.将集成数据与测试一起保存

QuickTest为了能与LoadRunner虚拟用户技术集成,必须生成特殊的集成文件。在默认情况下,生成这些数据的选项都是处于开启状态,但有时为了保留磁盘空间而禁用该选项。这样在录制时就要确保该选项处于开启状态。

在QuickTest中,选择Tools→Options对话框,打开Run选项卡,如图所示。在这里一定要保证Allow other Mercury products to run tests and components选项处于选中的状态,如果没有选中,则将其选中并保存设置。

3.添加语句  

可以使用Services对象及其相关方法来插入与性能测试相关的语句,主要包括:

AbortGetEnvironmentAttributeLogMessageSetTransactionStatus,ThinkTime,UserDataPointStartTransaction

及EndTransaction。  

4.为LoadRunner设计测试  

在设计要用于LoadRunner的测试时,需要考虑以下设计准则:  

LoadRunner中使用的QuickTest测试应该简单,并专门针对特定的操作。  

LoadRunner无法运行嵌入式操作迭代。  

请勿引用外部操作或其他外部资源,如外部数据表文件、环境变量文件和共享对象库等。 

 WinRunner创建GUI Vuser脚本

WinRunner是一个基于Windows平台,用于创建、编辑和调试GUIVuser脚本的完整开发环境。通过WinRunner可记录真实用户在应用程序中的操作。  

WinRunner的GUIVuser脚本是使用TSL(MercuryInteractive的测试脚本语言)编写的。TSL是一种与C类似的高级编程语言。它结合了传统编程语言的功能和灵活性以及专为测试设计的功能。但是WinRunner中创建的Vuser脚本是不能在UNIX计算机上运行的。  

同样,使用WinRunner创建GUIVuser脚本时,要注意以下几个方面:  

1.插入事务和集合点  

插入事务和QuickTest一样,直接使用事务函数插入开始事务与结束事务,集合点方面将Rendezvous语句插入到Vuser脚本中即可。 


2.向Controller发送消息  

运行场景时,Controller的“输出”窗口显示有关脚本执行情况的重要信息。除了WinRunner自动发送的消息外,还可以在每个脚本中插入向Controller发送错误消息和通知消息的语句。  

error_message函数用于向Controller的“输出”窗口或Console发送错误消息。此函数的语法为:  

error_message(message);  

其中message为文本字符串。  

output_message函数用于发送不是错误消息的特殊通知。此函数的语法为:  

output_message(message);  

其中message为文本字符串。  

在执行场景或会话步骤间,可以识别以下对象:  

某特定时刻在场景中执行任务的Vuser。  

执行脚本的负载发生器。  

运行Controller的计算机。  

而有关Vuser和负载发生器的信息可以通过以下函数来获取:  

lr_whoami:返回Vuser名称及其所属的Vuser组。  

get_host_name:返回执行脚本的计算机名称。  

get_master_host_name:返回运行Controller或Console的计算机名称。  

场景中使用GUIVuser脚本  

在QuickTest或WinRunner中创建GUIVuser脚本后,便可以将该脚本集成到LoadRunner场景中。在将GUIVuser脚本添加到LoadRunner场景前,要注意以下几个问题:  

1.每台计算机上每次只能运行一个GUIVuser。  

2.请确保在运行场景前关闭QuickTest或WinRunner。  

3.在Run-timeSettingsforscript设置对话框中,只有General类中的RunLogic和ThinkTime与QuickTest和WinRunner测试有关,如图所示。  

接下来就是要将GUIVuser添加到LoadRunner场景中,在控制器界面,选择File→Open,在弹出的对话框中选择要添加的GUIVuser脚本。也可以选择File→New,在弹出的NewScenario对话框中点击按钮,弹出OpenTest对话框,选择要添加的GUIVuser脚本。这里有一个“文件类型”框,如图所示。对于WinRunner来说,选择“GUIScripts”文件类型。对于QuickTest来说,选择“AstraTests”文件类型。确定文件类型后,选择合适的脚本并进行添加即可。

总结

介绍场景设计的相关内容,介绍了集合点的使用和集合点与事务的关系;IP欺骗技术在实际测试过程中的使用,特别是跨局域网的IP欺骗技术;负载均衡技术,确保测试机不出现瓶颈的情况;RTS设置技术主要需要注意每个场景都必须设置其相应的RTS设置项,不能使用缺省设置;最后介绍了路径转换技术和功能测试脚本在性能测试中的使用。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342