调试查看器

当测试脚本运行过程中在运行至断点处停止,或者当一个操作步骤执行失败时,可以通过选择“调试”选项来调试脚本。选择菜单栏中【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)

发送步骤的警告状态,但不会导致测试脚本停止运行。

本文转自hblxp32151CTO博客,原文链接:http://blog.51cto.com/starpoint/1287743,如需转载请自行联系原作者

细品慢酌QuickTest关键视图(5)脚本调试相关推荐

  1. 细品慢酌QuickTest关键视图(4)

    无论是在关键字视图中添加对象.添加操作步骤,还是在关键字视图中使用循环与条件语句,编辑完成后都需要调试测试脚本,以验证测试脚本是否存在逻辑及语法错误,从而保证脚本的正确运行.QuickTest是否能够 ...

  2. 细品慢酌QuickTest关键视图(1)

    作为接触自动化的测试工程师都会接触到关键字视图,好多崇拜自动化的测试工程师,说真正搞大了,搞牛了自动化不需要接触关键字视图.其实真正参与过自动化,反过来思考一下,其实什么都不是绝对的,实际过程中往往许 ...

  3. 原生 遍历_细品原生JS从初级到高级知识点汇总(三)

    作者:火狼1 转发链接:https://juejin.im/post/5daeefc8e51d4524f007fb15 目录 细品原生JS从初级到高级知识点汇总(一) 细品原生JS从初级到高级知识点汇 ...

  4. css就近原则_细品100道CSS知识点(上)「干货满满」

    作者:hh_phoebe 转发链接:https://juejin.im/post/5ee0cf335188254ec9505381 目录 细品100道CSS知识点(上)[干货满满]本篇 细品100道C ...

  5. URP SMAA 细品

    URP SMAA 细品 目录 URP SMAA 细品 1 SMAA 大致思路 2 SMAA 具体实现流程 2.1 边缘检测 2.1.1 顶点着色器 SMAAEdgeDetectionVS 2.1.2 ...

  6. css为什么要用浮动_细品100道CSS知识点(上)「干货满满」

    作者:hh_phoebe 转发链接:https://juejin.im/post/5ee0cf335188254ec9505381 目录 细品100道CSS知识点(上)[干货满满]本篇 细品100道C ...

  7. 细品java封装继承多态

    目录: 1.封装 2.继承 3.多态 1.封装 封装的作用:封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没 ...

  8. 不允许使用java方式启动_细品 Java 中启动线程的正确和错误方式

    细品 Java 中启动线程的正确和错误方式 前文回顾详细分析 Java 中实现多线程的方法有几种?(从本质上出发) start 方法和 run 方法的比较 代码演示:/** * * start() 和 ...

  9. android平板接口,初学者必读 细品平板接口的百般滋味

    1历史悠久 原来接口学问多 1831年法拉第发现当磁铁穿过一个闭合电路便会有电流产生.这项伟大的发现使人类制造出世界上第一台能产生连续电流的发电机.有了持续电能供应,从此人类进入电器应用时代,电器的接 ...

最新文章

  1. 使用 Bundle在Activity间传递数据
  2. 1411区间内的真素数2
  3. 互联网协议入门(二)
  4. 化工原理 蒸馏(上)
  5. 【Linux】一步一步学Linux——groups命令(93)
  6. mysql set 常用参数_mysql常见配置参数
  7. 不相关子查询的工作方式是_课题组工作|Nucleic Acids Research|基于表达密度谱的特征子空间分离及相关单细胞转录组分群新算法...
  8. php如何使用高阶函数
  9. oracle conneciton properties,在WAS Liberty连接池中,我可以验证借用连接吗?
  10. 教你如何将二进制文件导入到数据库
  11. hdu2069(Coin Change)
  12. 《南溪的目标检测学习笔记》——主干网络backbone设计的学习笔记
  13. tornado和subprocess实现程序的非堵塞异步处理
  14. 函数嵌套,关键字,闭包和装饰器
  15. nodejs注册为windows服务实现开机自启动
  16. 光盘安装 windowns 10 系统 与 Win10 英文系统修改成中文系统
  17. 自旋锁原理及java自旋锁
  18. 项目引用android-support-v7-appcompat,如何使用android-support-v7-appcompat
  19. woocommerce修改商品详情页
  20. 在线一元二次方程式计算器 源码

热门文章

  1. c语言共有几种运算符_【填空题】C语言一共有 ()个关键字,()中控制语句,()种运算符...
  2. linux字体栅格化,响应式开发---网页的布局方式、媒体查询、栅格化布局、less语言...
  3. python绘图教程_pyplot绘图教程
  4. mysql命令集合,MySql常用命令集合
  5. java表单上下左右滚动_怎么在网页中实现表格上下左右滚动
  6. shiro原理_java:shiro高级篇——1
  7. 全球及中国洗发护发市场品牌营销调研与投资竞争策略研究报告2022版
  8. 【VB.NET】自定义控件(一)属性说明
  9. 发展农业对话国际农民丰收节贸易会 菲律宾学中国还是印度?
  10. Linux中设置vi编辑器的编码格式以及使用