5.5 脚本视图和树视图
VU提供两种视图来查看脚本的内容,一个是脚本视图,另一个是基于图标的树视图(内有快照)。
所有类型的Vuser都有文本脚本视图,但是只有特定的Vuser才会有树视图。
5.5.1 树视图(Tree View)
Tree View也叫做基于icon的View,也就是说,脚本的每个函数在Tree View中都以一个带有icon的节点来代替。可以点击工具栏中的“Tree”按钮或者在“View”菜单下选择“Tree View”,显示VU树视图,如图5-20所示。
图5-20 VU树视图
Tree View的好处是使用户更方便地修改脚本,Tree View支持拖拽,用户可以把任意一个节点拖拽到他想要的地方,从而达到修改脚本的目的。用户可以右键单击节点,进行修改/删除当前函数参数属性,增加函数等操作,通过Tree View能够增加LoadRunner提供的部分常用通用函数和协议相关函数。比如Web Service Vuser就不能通过Tree View参数化一些复杂的数据类型,在这种情况下,就需要Script View了。
5.5.2 脚本视图(Script View)
在Script View中能够看到一行行的API函数,Script View适合一些高级用户,通过Script View向脚本中增加一些其他API函数。可以单击工具栏上的“Script”按钮或者在“View”菜单下选择“Script View”,显示VU脚本视图,如图5-21所示。
注意:当用户在Script View中对脚本做了修改之后,Tree View也会做相应的变化。如果脚本有语法错误,Script View将不能转化为Tree View或缩略图。
图5-21 VU脚本视图
5.5.3 理解Snapshot
Snapshot,顾名思义,就是快照,代表当前的step,Snapshot显示了客户端在执行完当前step后的样子。在Tree Ciew右侧的frame中可以查看Snapshot,在LoadRunner 8.0中,Snapshot包含Page View、Client Request和Server Response。Snapshot有两种生成方式,一种是在record的时候生成,另一种是在replay的时候生成。你可以对比两种方式生成的Snapshot,以发现哪些是动态值,需要参数化。
5.6 事务、同步点和思考时间
5.6.1 Transaction(事务)
事务是计算机程序设计中一个很重要的概念。一个事务应该具有原子性、一致性、隔离性和持久性。这4个属性的详细解释在网上都可以找到。在LoadRunner里,我们定义事务主要是为了度量服务器的性能。每个事务度量服务器响应指定的Vuser请求所用的时间,这些请求可以是简单任务(例如等待对单个查询的响应),也可以是复杂任务(例如提交多个查询和生成报告)。
要度量事务,需要插入Vuser函数以标记任务的开始和结束。在脚本内,可以标记的事务不受数量限制,每个事务的名称都不同。
在场景执行期间,Controller将度量执行每个事务所用的时间。场景运行后,可使用LoadRunner的图和报告来分析各个事务的服务器性能。
设置Transaction的方法如下:
选择新Transaction开始点,在被度量脚本段之前插入lr_start_transaction。
选择新Transaction结束点,在被度量脚本段之后插入lr_end_transaction。
下面的脚本例子中将登录操作设为一个名为“login”的事务:
Lr_start_transaction("login"); web_submit_form("auth", "Snapshot=t2.inf", ITEMDATA, "Name=ssousername", "Value=robin", ENDITEM, "Name=password", "Value=123456", ENDITEM, "Name=remember", "Value=<OFF>", ENDITEM, LAST); Lr_end_transaction("login”); |
如果上面手工插入Transaction函数看作是“显式事务”的话,那么LoadRunner还提供了一种“隐式事务”的机制,在VU的Run-time Settings中又称为“自动事务”。
在Run-time Settings中,在Miscellaneous选项卡的Automatic Transactions中定义自动事务。
可以设置LoadRunner直接按事务处理Vuser中的每个Action或step。这里,Action指的是vuser_init、Action和vuser_end三大函数,而step指的是LoadRunner执行的每个函数。LoadRunner将Action名或step名指定为事务名。在默认情况下,将启用按Action使用自动事务的功能,如图5-22所示。
图5-22 VU定义自动Transaction
要禁用按操作使用自动事务的功能,清除“Define each action as a transaction”复选框(默认情况下启用)。
要启用按步骤使用自动事务的功能,选中“Define each step as a transaction”复选框(默认情况下禁用)。
提示:Transaction的开始点和结束点必须在一个Action中,跨越多个Action是不允许的。
Transaction的名字在脚本中必须是唯一的,当然也包括在多Action的脚本中。
你也可以在一个Transaction中创建另外一个Transaction,叫做Nested Transaction。详细使用方法可参看LoadRunner函数手册。