6、录制过程描述。所有的录制都是通过下面的工具条进行的,脚本的录制可以有很多方式,这里只介绍我比较喜欢的一种。每次操作之前都点击红框显示的按钮,给操作起一个名字,比如zoomin、zoomout等。添加了注释以后,录制过程很简单,比如放大操作,只要点击地图页面上的相应工具,然后拉框放大即可,LoadRunner会自动记录下这些事件。录制完成以后点击按钮退出。
3.2 编辑脚本 ArcGIS Server 的Web ADF程序是AJAX驱动的,它的页面只有一个,与服务器的交互是通过脚本进行的。每个Web ADF程序的使用都可以归结为以下两个过程:
? 初始化:页面第一次加载时进行的操作,包括服务器端session
的创建,从浏览器下载一些脚本和图片资源等。 ? 常规使用:页面加载完成以后的所有操作。
前一节我们录制脚本的时候并没有对这些过程加以区分,每个操作都是录制在一个单独Action中,区分起来非常容。 3.2.1 定义自己的事务 做压力测试的时候,很重要的一个参数就是事务响应时间,即度量特定业务过程持续的时间。用咱们的话讲,就是执行一次地图放大操作需要多久。
这些操作通常是由脚本里的一个或多个步骤(称为step)或行为(称为action)组成的。在LoadRunner里,你可以把想要度量的一系列事件标记成事务(称为transaction)。LoadRunner会收集事务响应时间的信息并显示在图表里,你可以用这些信息来判断系统是否满足预定需求。定义一个事务比较简单,你可以在脚本的任何地方插入start transaction和end transaction标记,这两个标记之间的内容就是一个事务。定义事务的时候要非常小心,因为它直接影响测试的结果。 清单 1 定义自己的事务 /*zoomin2*/ web_concurrent_start(NULL); web_concurrent_end(NULL); /*pan*/ lr_end_transaction(\ web_url(\ \web_url(\ \web_url(\ \web_url(\ \web_submit_data(…); web_submit_data(…); web_submit_data(…); lr_start_transaction(\lr_think_time(13); C000000ed.jpg\ C000000ed.jpg\ C000000ee.jpg\ C000000ee.jpg\ 上面这段代码中蓝色字体标注的就是事务标记,lr_start_transaction和lr_end_transaction。橙色字体标注的是在收到服务器端响应以后,客户端重新请求cache图片的脚本。这些脚本包含在web_concurrent_start和web_concurrent_end的标记之间,表示这些请求是同时发出的。注意,标记事务的时候千万不要把lr_think_time()也包含进去,因为这是LoadRunner记录的用户思考时间,如果事务中包含了思考时间,将会显著地增加测试结果中的平均事务响应时间。
现在可以看到,在放大操作中脚本记录了三次ajax请求事件,并且在服务器返回响应后又发出了四个请求去获取图片。如果我们要度量放大操作的响应时间,就可以把这些操作标记成一个事务。
创建了自定义的事务以后需要修改LoadRunner默认的事务设置,菜单打开Vuser > Run-time Settings > General > Miscellaneous,把Automatic Transactions默认打勾的选项都取消。这样就可以用我们自己定义的事务了。
3.2.2 高级选项 把提交的请求参数中的固定值替换成变量。比如拉框或点击查询,录制脚本的时候记录下来的是某次点击的坐标,实际在模拟并发用户时如果每次查询都提交固定的参数,显然不能反映真实情况。因此可以设置变量来替换这些固定值。比较常用的变量有:时间/日期、随机数、文件(用来存放一些枚举型变量的选项)等。
比如我们要做一个拉框查询的操作,录制的查询脚本中可以看到如下
的一个请求: …… web_submit_data(\lNJBSBq!910991248_21\ \ \ \argetFrame=\ \ \ \ \ ITEMDATA, \ \ \ \ \ \ \ \ \ \ \ LAST); …… 其中蓝色字体标注的就是这次拉框查询操作提交的核心参数: ? Map0_mode = rectQuery,说明操作的类型 ? Map0_minx = 374,矩形框的x最小值 ? Map0_miny = 211,矩形框的y最小值 ? Map0_maxx = 427,矩形框的x最大值 ? Map0_maxy = 258,矩形框的y最大值
如果在做压力测试的时候就用这个脚本,那么每次拉框查询都是查询这个特定范围的地物。为了更好地模拟真实情况,可以把这些固定值都替换成随机数。选中其中的一个数字,比如374,点击右键,选择“Replace with a Parameter”。
相关推荐: