调试查看器
当测试脚本运行过程中在运行至断点处停止,或者当一个操作步骤执行失败时,可以通过选择“调试”选项来调试脚本。选择菜单栏中【View】―【Debug Viewer】调用调试查看器,通过调试查看器查看、设置或修改测试或组件中的对象及变量的值(值只限于当前调试过程中有效)。
查看(Watch)选项卡
使用“查看”选项卡,可查看已在查看列表中输入的任何变量或 VBScript 对象的当前值。“查看”选项卡下,将对象或变量输入到“Name”列中,按回车键来查看“Value”列中的当前值。如果对象或变量的值在脚本后续运行时发生了变化,则“查看”选项卡中的值会一并变化。当测试脚本在断点暂停时,还可以手动设置更改变量的值。
变量(Variables)选项卡
使用“变量”选项卡可查看脚本中所有变量的当前值。
命令(Command)选项卡
通过“命令”选项卡,可执行一行脚本,进行查看、设置或修改测试脚本中变量或 VBScript 对象的当前值。
以场景1创建简单的测试脚本,学习调试查看器的使用方法。
1. 录制测试场景1,并将测试脚本保存为单步调试(Flight)。
2. 如图所示,在场景1测试脚本的关键字视图中,新建一操作行,其中Item列,通过下拉设定为Statement(声明),Value列设置为Dim UserName。再新建一操作行,其中Item列,通过下拉设定为Statement(声明),Value列设置为UserName = "mercury"。然后将新建的两行操作,拖拽到操作前最前面。
3. 如图所示,在关键视图中的第4行(AgentName),将当前操作步骤设定为断点。
4. 如图所示,运行测试脚本,测试脚本运行至断点暂停,菜单栏中选择【View】―【Debug Viewer】,打开调试查看器。
5. 如图所示,点击调试查看器中的Watch选项卡,并在Name一列键入username(第1步中定义的变量名),同时按下回车键,可观察到username的值变为了mercury。
6. 如图所示,修改username的值,使其变为MER。按F11运行单步执行,可观察到被测应用程序(Flight登录框)中,被测对象Agent Name对象输入的值也相应的变为MER。
7. 如图所示,停止测试脚本运行,删除查看(Watch)选线卡中的变量。然后再次回放测试脚本(测试脚本仍在断点出停止),点击“Variables”选项卡,可以看到“Variables”中取到了username变量的值。
8. 如图所示,第6步脚本回放过程运行在断点处停止后,点击“Command”选项卡,在命令选项卡内输入username = “MER”,并按下回车。按F11运行单步执行,观察到被测应用程序(Flight登录框)中,被测对象Agent Name对象输入的值也相应的变为MER。结果与在查看(Watch)选项卡一样。
错误信息
如图所示,在开展自动化测试过程中,QuickTest调试\运行测试脚本过程中经常遇到弹出错误信息的对话框,通过弹出的错误信息对话框,可以获得哪些信息呢?那又该对测试脚本执行哪些维护呢?
1. 停止(stop)― 停止运行测试脚本。
如果 QuickTest 配置为在运行后显示测试结果,在测试脚本停止运行后将显示测试结果信息。
2. 重试(Retry)― 尝试再次执行当前操作步骤。
如果QuickTest对某操作步骤重新运行后,运行通过,则后续操作步骤将继续执行。
3. 跳过(Skip)― 跳过引发错误的操作步骤。
QuickTest跳过引发错误的步骤,然后从下一操作步骤继续运行。
4. 调试(Debug)― 暂停脚本,对测试脚本进行调试。
暂停测试脚本运行,点击Debug进入调试模式,对测试脚本进行调试。在调试模式下可执行单步调试、单步执行等任何调试操作。在调试结束之后,可从测试脚本停止的那一步开始继续运行会话,也可以使用单步执行命令来控制测试脚本的其余部分。
5. 帮助(Help)― 打开帮助文档
对于显示的错误消息,打开 QuickTest相关的问题帮助。
发送测试报告
前面提到当某个测试对象不存在时,可以使用条件语句控制测试流程,让脚本停止运行。如果脚本停止运行后,如何在测试结果中确定是由于那个对象的不存在而停止脚本运行的呢?可以将测试脚本停止运行的原因,写入测试结果中,在测试结果中查看脚本运行失败的原因,能够为后续脚本的维护提供帮助。而此项技术称为发送报告(Report)。测试报告将大大提高确定问题解决问题的效率。
通过关键字视图或专家视图中都可设置测试报告(Report)的发送。本章在关键字视图中,以场景1录制的测试脚本为例讲解消息发送(测试脚本存放于本章脚本目录下――发送消息(Flight))。
1. 录制场景1并保存,将场景1测试脚本命名为发送消息(Flight)。
2. 如图所示,在场景1(发送消息(Flight)脚本)测试脚本关键字视图中,点击【Insert】―【Conditional Statement】或右键选择【Insert Step】―【Conditional Statement】IF…..Then条件语句,并将Agent Name作为条件。
IF条件操作所在操作行,Item列下拉列表中选择Agent Name对象,Operation列设置为Exist,Value列设置为1(测试脚本中检测Agent Name是否存在,检测时间为1秒)。
3. 如图所示,在关键字视图中,右击第1步插入的IF操作行,点击【Insert】―【Conditional Statement】或右键选择【Insert Step】―【Conditional Statement】选择Else。
4. 如图所示,关键字视图中插入使用步骤生成器插入报告(Report)。步骤生成器对话框中,将报告操作(Operation)选择为ReportEvent,状态(EventStatus)选择为micFail。
5. 如图所示,拖拽添加报告操作行至Else操作行下。
6. 如图所示,进入对象库,将Agent Name对象的attached text属性值由Agent Name修改为Name(修改后脚本回放将失败)。运行测试脚本,可在测试结果中观察到失败的原因。
消息(Report)的状态列表除了micFail,还有其他状态。如下表所示。
消息(Report)的状态表
状态 |
描述 |
通过(micPass) |
该步骤通过后,将设定消息发送到测试报告中。 |
失败(micFail) |
该步骤执行失败后,将设定消息发送到测试报告中。 |
完成(micDone) |
将设定消息发送到测试报告中,而不影响步骤的通过/失败状态。 |
警告(micWarining) |
发送步骤的警告状态,但不会导致测试脚本停止运行。 |