5.11 高级——脚本调试技巧
解释性语言的调试一直是一个棘手的问题。如果没有专门的debug工具,只能通过加入变量输出语句来查看每个变量值的变化。比如,在过去JavaScript调试的常用方法就是删除所有代码,然后一行行地增加直到错误出现,这是相当麻烦的。VU的C脚本虽然也像VC一样提供了断点、单步运行等功能,但并不能像VC一样在调试状态下查看变量、表达式和内存值。因此,个人认为VU的调试功能还有待增强。
下面是两种比较常用的调试脚本的方式,它们并不是真正意义上的调试,只能算作“土办法”,但比较有效。
5.11.1 动态运行(Animated run)与非动态运行(Non-Animated run)
脚本可以设置成为Animated运行模式和非Animated运行模式。在Animated运行模式下,VU会显亮当前正在执行的脚本语句。用户可以通过VU设置语句执行的延迟时间,以便观察每行代码执行的效果;相比之下,在非Animated运行模式下,VU在执行脚本时不会显亮语句,而一气执行下去。显然,Animated运行模式是我们调试脚本的一个很好的方法。
Animated的设置在VU“Tools”菜单下的“Options”中,选中“General Options”中的“Replay”选项卡,在此对话框中设置Animated的Replay时间,生效范围,如图5-54所示。
图5-54 在General Options中设定动态运行和非动态运行
然后在“View”菜单中勾选“Animated Run”方式,如图5-55所示,则脚本就能以Animated的模式运行了。
图5-55 在“View”菜单中勾选动态运行
提示:当执行脚本期间在输出窗口中显示错误消息时,我们可以双击该错误消息,Vugen将使光标跳到导致问题的测试行;如要得到更详细的出错信息,也可以将光标置于错误代码上并按F1键,查看该错误代码的联机帮助解释。
5.11.2 日志设置
对于软件开发人员来讲,日志无疑是跟踪和调试最好的线索。一般在日志中存放的是程序产生的各种信息,包括业务执行、警告和错误。一个优秀的软件应该有一套完备的日志系统,包括日志的内容、格式和级别等内容。在Java中,就有专门的log类来完成这些工作。同样地,VU也提供了一套日志系统,我们可以通过Run-time Settings的Log选项来设置日志的级别,如图5-56所示。
(1)仅在出错时发送消息(Send messages only when an error occurs):指示Vugen仅当出错时记录log。
(2)标准日志(Standard log):创建在脚本执行期间所发送的函数和消息的标准日志,供调试时使用。大型负载测试方案应禁用该选项。
(3)扩展日志(Extended log):创建扩展日志,包括警告和其他消息。大型负载测试方案禁用该选项。
图5-56 在Run-time Settings中设置日志级别