5.2.2 规划脚本结构
在录制时,用户可以选择哪些操作生成脚本在vuser_init、Action和vuser_end中,同时,也可以在录制时随时加入transaction的定义、注释和同步点。VU录制工具条如图5-3所示。
图5-3 VU录制工具条
5.2.3 HTTP Vuser中的URL mode和HTML mode
在录制之前,我们需要设置录制选项,如图5-4所示。
图5-4 VU录制设置选项
在默认情况下,选择“HTML-based script”,说明脚本中采用HTML页面的形式来表示,这种方式的Script脚本容易维护,容易理解,推荐以这种方式录制。
“URL-based script”说明脚本中的表示采用基于URL的方式,所有的HTTP的请求都会被录制下来,单独生成函数,所以URL模式生成的脚本会显得有些杂乱。
实例
以HTML模式录制,访问“http://newtours.demoaut.com/”网站会生成下面的脚本:
Action()
{
web_url("newtours.demoaut.com",
"URL=http://newtours.demoaut.com/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
return 0;
}
以URL模式录制同样的操作,会生成如下脚本:
Action()
{
web_url("newtours.demoaut.com",
"URL=http://newtours.demoaut.com/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
web_url("logo.gif",
"URL=http://newtours.demoaut.com/images/nav/logo.gif",
"Resource=1",
"RecContentType=image/gif",
"Referer=http://newtours.demoaut.com/",
"Snapshot=t2.inf",
LAST);
web_url("html.gif",
"URL=http://newtours.demoaut.com/images/nav/html.gif",
"Resource=1",
"RecContentType=image/gif",
"Referer=http://newtours.demoaut.com/",
"Snapshot=t3.inf",
LAST);
web_url("boxad1.gif",
"URL=http://newtours.demoaut.com/images/nav/boxad1.gif",
"Resource=1",
"RecContentType=image/gif",
"Referer=http://newtours.demoaut.com/",
"Snapshot=t4.inf",
LAST);
........................................
..........................................
//经统计,录制生成的web_url函数有20个
return 0;
}
是选择HTML还是URL录制,有以下参考原则:
(1)基于浏览器的应用程序推荐使用HTML-based script。
(2)不是基于浏览器的应用程序推荐使用URL-based script。
(3)如果基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-based script方式录制。
(4)基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based script方式录制。
5.2.4 查看日志
在录制和回放的时候,VU会分别把发生的事件记录成日志文件,这些日志有利于我们跟踪VU和服务器的交互过程。我们可以通过VU输出窗口观察日志,也可以到脚本目录中直接查看文件。其中有三个主要的日志对我们的录制很有用:
1.执行日志(Execution Log)
脚本运行时的输出都记在这个Log里。
“输出”窗口的“执行日志”显示的消息用于描述Vuser运行时执行的操作。该信息可说明在方案中执行脚本时,该脚本的运行方式。
脚本执行完成后,可以检查“执行日志”中的消息,以查看脚本在运行时是否发生错误。
“执行日志”中使用了不同颜色的文本。
黑色:标准输出消息。
红色:标准错误消息。
绿色:用引号括起来的文字字符串(例如URL)。
蓝色:事务信息(开始、结束、状态和持续时间)。
如果双击以操作名开始的行,光标将会跳到生成的脚本中的相应步骤上。
图5-5显示了Web Vuser脚本运行时的“执行日志”消息。
执行日志是我们调试脚本时最有用的信息。有关设置执行日志级别调试脚本的技巧,在本章“高级——脚本调试技巧”一节中有详细介绍。
2.录制日志(Recording Log)
当录制脚本时,Vugen会拦截Client端(浏览器)与Server端(服务器)之间的对话,并且通通记录下来,产生脚本。在Vugen的Recording Log中,我们可以找到浏览器与服务器之间所有的对话,包含通信内容、日期、时间、浏览器的请求、服务器的响应内容等,如图5-6所示。脚本和Recording Log最大的差别在于,脚本只记录了Client端要对Server端所说的话,而Recording Log则是完整记录二者的对话。因此通过录制日志,我们能够更加清楚地看到客户端与服务器的交互,这对我们开发和debug脚本非常有帮助。
图5-5 VU脚本执行日志
图5-6 VU脚本录制日志
3.产生日志(Generation Log)
产生日志记录了脚本录制的设置、网络事件到脚本函数的转化过程。
提示:这里同样需要注意的是:脚本能正常运行后应禁用日志。因为产生及写入日志需占用一定资源。