QTP的一些常见问题
一、录制和运行测试
QuickTest 如何捕获网页中的用户进程?
QuickTest 挂钩浏览器(Netscape、Microsoft Internet Explorer 或AOL)。当用户浏览基于Web 的应用程序时,QuickTest 将录制用户操作。然后QuickTest 可以通过运行最初出现的步骤运行测试。
如何在QuickTest 不支持的对象或环境中录制?
您可以通过下列方式实现这一点:
默认情况下,QuickTest 支持多个开发环境。您还可以通过安装并加载任何可用于QuickTest Professional 的外部加载项,来启用其他的环境的支持,例如Java、Oracle、.NET、SAP 解决方案、Siebel、PeopleSoft、终端仿真器和Web Service。
可以将无法识别的或自定义的类的对象映射到标准的Windows 类。
可以为与测试对象行为相似的对象定义虚拟对象,然后在正常录制模式中录制。
可以基于低级录制模式或模拟模式中的坐标录制您的单击和键盘输入。
二、在专家视图中编程
是否可以在函数库中存储函数和子例程?
可以在单个测试中定义函数,或者创建包含函数的一个或多个外部VBscrīpt 库文件,然后从任意测试调用它们。
还可以将函数注册为QuickTest 测试对象的方法。在测试运行期间,您注册的方法可以覆盖现有测试对象的功能,或者您可以为测试对象类注册一个新方法。
三、使用动态内容
对于在两次查看之间动态更改的对象,如何在其上录制和运行测试?
有时,网页或应用程序中对象的内容会因动态内容而发生更改。可以创建这些对象的动态描述,以便QuickTest 可以在其运行测试时识别它们。
如何确定子窗口存在(或不存在)?
有时,一个窗口中的链接会创建另一个窗口。
可以使用 Exist属性检查窗口是否存在。例如:
Browser("Window_name").Exist
还可以使用 ChildObjects方法在桌面上或任何其他父对象内检索所有子对象(或者匹配某描述的子对象的子集)。
QuickTest 如何在动态生成的URL 和网页上进行录制?
QuickTest 会实际单击页面上显示的链接。因此,QuickTest 将记录如何查找特定对象,例如页面上的一个链接,而不是对象本身。例如,如果某个动态生成的URL 的链接是一个图像,QuickTest 便录制该“IMG”HTML 标记以及图像名。这样QuickTest 在将来就可以找到该图像并单击它。
QuickTest 如何捕获网页中的用户进程?
QuickTest 挂钩浏览器(Netscape、Microsoft Internet Explorer 或AOL)。当用户浏览基于Web 的应用程序时,QuickTest 将录制用户操作。然后QuickTest 可以通过运行最初出现的步骤运行测试。
如何在QuickTest 不支持的对象或环境中录制?
您可以通过下列方式实现这一点:
默认情况下,QuickTest 支持多个开发环境。您还可以通过安装并加载任何可用于QuickTest Professional 的外部加载项,来启用其他的环境的支持,例如Java、Oracle、.NET、SAP 解决方案、Siebel、PeopleSoft、终端仿真器和Web Service。
可以将无法识别的或自定义的类的对象映射到标准的Windows 类。
可以为与测试对象行为相似的对象定义虚拟对象,然后在正常录制模式中录制。
可以基于低级录制模式或模拟模式中的坐标录制您的单击和键盘输入。
二、在专家视图中编程
是否可以在函数库中存储函数和子例程?
可以在单个测试中定义函数,或者创建包含函数的一个或多个外部VBscrīpt 库文件,然后从任意测试调用它们。
还可以将函数注册为QuickTest 测试对象的方法。在测试运行期间,您注册的方法可以覆盖现有测试对象的功能,或者您可以为测试对象类注册一个新方法。
三、使用动态内容
对于在两次查看之间动态更改的对象,如何在其上录制和运行测试?
有时,网页或应用程序中对象的内容会因动态内容而发生更改。可以创建这些对象的动态描述,以便QuickTest 可以在其运行测试时识别它们。
如何确定子窗口存在(或不存在)?
有时,一个窗口中的链接会创建另一个窗口。
可以使用 Exist属性检查窗口是否存在。例如:
Browser("Window_name").Exist
还可以使用 ChildObjects方法在桌面上或任何其他父对象内检索所有子对象(或者匹配某描述的子对象的子集)。
QuickTest 如何在动态生成的URL 和网页上进行录制?
QuickTest 会实际单击页面上显示的链接。因此,QuickTest 将记录如何查找特定对象,例如页面上的一个链接,而不是对象本身。例如,如果某个动态生成的URL 的链接是一个图像,QuickTest 便录制该“IMG”HTML 标记以及图像名。这样QuickTest 在将来就可以找到该图像并单击它。
四、高级Web 问题
QuickTest 如何处理Cookie?
服务器端连接(例如CGI 脚本)可以使用Cookie 存储和检索连接的客户端的信息。
QuickTest 在内存中为每个用户存储Cookie,并且浏览器按正常方式处理这些Cookie。
QuickTest 如何处理会话ID?
处理会话ID 的是服务器,而不是浏览器,通常用Cookie 或在所有链接中嵌入会话ID 的方法。这不影响QuickTest。
QuickTest 如何处理服务器重定向?
当服务器重定向客户端时,客户端通常不会注意重定向,且一般不会出现错误定向。在大多数情况下,客户端重定向到服务器的另一个脚本上。其他脚本为要查看的后续页生成HTML 代码。这对QuickTest 或浏览器没有影响。
QuickTest 如何处理元标记?
元标记不影响页面的显示方式。通常,它们只包含有关页面的创建者、页面的更新频率、页面的内容和表示页面内容的关键词等方面的信息。因此,QuickTest 处理元标记没有任何问题。
QuickTest 是否使用.asp?
使用Active Server Page 技术动态创建的网页有一个.asp 扩展名。该技术完全是服务器端的,并且与QuickTest 无关。
QuickTest 是否使用COM?
QuickTest 符合COM 标准。
QuickTest 支持嵌入网页的COM 对象(现在只能通过Microsoft Internet Explorer 才能对其进行访问),并且您可以在VBscrīpt 中驱动COM 对象。
QuickTest 是否使用XML?
XML 是可扩展标记语言,它是SGML 用于Web 文档的缩减版本,Web 设计人员可以通过XML 创建自己自定义的标记。QuickTest 支持XML 并将XML 标记识别为对象。
还可以创建XML 检查点检查网页上XML 文档的内容、帧或文件。QuickTest 还支持XML 输出和架构验证。
五、测试维护
当应用程序发生更改时如何维护测试?
应用程序发生更改时维护测试的方法取决于应用程序更改的程度。这就是应创建一个小测试组而不是为整个应用程序创建一个大测试的主要原因之一。当应用程序发生更改时,可以重新录制部分测试。如果更改不重要,可以手动编辑测试将其更新。
还可以使用QuickTest 的操作功能设计更多模块和有效测试。进行录制时,可以基于功能将测试划分为多个操作。当应用程序发生更改时,可以重新录制特定操作,而无需更改其余测试。尽可能插入对可重用操作的调用,而不是在几个测试中创建相同的脚本。这样,对原始可重用操作的更改就自动应用到调用该操作的所有测试上。
如果有很多包含相同测试对象的测试和操作,建议使用共享对象库,这样就可以在一个集中位置更新对象信息。
要更新检查点、Active Screen 中的信息,或更新有关对象属性更改时测试对象属性的信息,或要在不重新录制步骤的情况下在Active Screen 中添加新的对象或步骤,请使用“更新运行”选项。
完成录制测试后是否可以增加或减少Active Screen 信息?
如果发现录制后保存在Active Screen 中的信息不能满足测试编辑需要,或者不再需要Active Screen 信息,并且要缩减测试的大小,有多种方法可以更改与测试一起保存的Active Screen 信息量。
要减少测试使用的磁盘区间,可以通过选择“另存为”删除Active Screen 信息,并清除“保存Active Screen 文件”复选框。
如果选择在测试Windows Applications 时不将所有信息保存在Active Screen 中,则可以使用多种方法之一增加Active Screen 中保存的信息。
确认“选项”对话框中“Active Screen”选项卡上的Active Screen 捕获首选项已设置为捕获所需要的信息量,然后执行下列操作:
执行“更新运行”操作,为所有现有步骤在Active Screen 中保存所需信息量。
重新录制包含要添加到Active Screen 中的对象的步骤。
要重新录制步骤,请选择要在其后录制步骤的步骤,放置应用程序以匹配测试中的选定位置,然后开始录制。或者,在测试中要在其前面添加步骤的步骤处放置一个断点,然后运行测试到断点。这将把应用程序放到正确的位置以便录制步骤。
QuickTest 如何处理Cookie?
服务器端连接(例如CGI 脚本)可以使用Cookie 存储和检索连接的客户端的信息。
QuickTest 在内存中为每个用户存储Cookie,并且浏览器按正常方式处理这些Cookie。
QuickTest 如何处理会话ID?
处理会话ID 的是服务器,而不是浏览器,通常用Cookie 或在所有链接中嵌入会话ID 的方法。这不影响QuickTest。
QuickTest 如何处理服务器重定向?
当服务器重定向客户端时,客户端通常不会注意重定向,且一般不会出现错误定向。在大多数情况下,客户端重定向到服务器的另一个脚本上。其他脚本为要查看的后续页生成HTML 代码。这对QuickTest 或浏览器没有影响。
QuickTest 如何处理元标记?
元标记不影响页面的显示方式。通常,它们只包含有关页面的创建者、页面的更新频率、页面的内容和表示页面内容的关键词等方面的信息。因此,QuickTest 处理元标记没有任何问题。
QuickTest 是否使用.asp?
使用Active Server Page 技术动态创建的网页有一个.asp 扩展名。该技术完全是服务器端的,并且与QuickTest 无关。
QuickTest 是否使用COM?
QuickTest 符合COM 标准。
QuickTest 支持嵌入网页的COM 对象(现在只能通过Microsoft Internet Explorer 才能对其进行访问),并且您可以在VBscrīpt 中驱动COM 对象。
QuickTest 是否使用XML?
XML 是可扩展标记语言,它是SGML 用于Web 文档的缩减版本,Web 设计人员可以通过XML 创建自己自定义的标记。QuickTest 支持XML 并将XML 标记识别为对象。
还可以创建XML 检查点检查网页上XML 文档的内容、帧或文件。QuickTest 还支持XML 输出和架构验证。
五、测试维护
当应用程序发生更改时如何维护测试?
应用程序发生更改时维护测试的方法取决于应用程序更改的程度。这就是应创建一个小测试组而不是为整个应用程序创建一个大测试的主要原因之一。当应用程序发生更改时,可以重新录制部分测试。如果更改不重要,可以手动编辑测试将其更新。
还可以使用QuickTest 的操作功能设计更多模块和有效测试。进行录制时,可以基于功能将测试划分为多个操作。当应用程序发生更改时,可以重新录制特定操作,而无需更改其余测试。尽可能插入对可重用操作的调用,而不是在几个测试中创建相同的脚本。这样,对原始可重用操作的更改就自动应用到调用该操作的所有测试上。
如果有很多包含相同测试对象的测试和操作,建议使用共享对象库,这样就可以在一个集中位置更新对象信息。
要更新检查点、Active Screen 中的信息,或更新有关对象属性更改时测试对象属性的信息,或要在不重新录制步骤的情况下在Active Screen 中添加新的对象或步骤,请使用“更新运行”选项。
完成录制测试后是否可以增加或减少Active Screen 信息?
如果发现录制后保存在Active Screen 中的信息不能满足测试编辑需要,或者不再需要Active Screen 信息,并且要缩减测试的大小,有多种方法可以更改与测试一起保存的Active Screen 信息量。
要减少测试使用的磁盘区间,可以通过选择“另存为”删除Active Screen 信息,并清除“保存Active Screen 文件”复选框。
如果选择在测试Windows Applications 时不将所有信息保存在Active Screen 中,则可以使用多种方法之一增加Active Screen 中保存的信息。
确认“选项”对话框中“Active Screen”选项卡上的Active Screen 捕获首选项已设置为捕获所需要的信息量,然后执行下列操作:
执行“更新运行”操作,为所有现有步骤在Active Screen 中保存所需信息量。
重新录制包含要添加到Active Screen 中的对象的步骤。
要重新录制步骤,请选择要在其后录制步骤的步骤,放置应用程序以匹配测试中的选定位置,然后开始录制。或者,在测试中要在其前面添加步骤的步骤处放置一个断点,然后运行测试到断点。这将把应用程序放到正确的位置以便录制步骤。
六、测试本地化应用程序
我正在测试单个应用程序的本地化版本,每个版本都有本地化用户界面字符串。如何在QuickTest 中创建有效的测试?
可以使用全局环境变量列表中的参数将这些用户界面字符串参数化。可以从任何测试访问该列表中的变量和相应值。
我正在测试单个应用程序的本地化版本。如何根据应用程序的语言,在测试中有效地输入不同的数据?
如果您正在运行测试的单个循环,或者如果您希望对于操作或测试的所有循环,值保持恒定,请使用环境变量,然后为每个测试运行更改活动环境变量文件。
如果您在运行测试或操作的多个循环,并且希望输入数据在每个循环中都发生更改,则可以为应用程序的每个本地化版本创建一个外部数据表。更改正在测试的应用程序的本地化版本时,可以只切换测试的数据表文件(在“测试设置”对话框的“资源”选项卡上)。
七、提高QuickTest 性能
如何提高QuickTest 的工作速度?
可以通过执行下列操作之一提高QuickTest 的工作速度:
QuickTest 启动时,不要在加载项管理器中加载不必要的加载项。这将缩短录制时间并提高测试运行性能。
在“快速模式”下运行测试。在“选项”对话框中的“运行”选项卡上,选择“快速”选项。这将指示QuickTest 运行测试而不为每个步骤显示执行箭头,从而加快测试运行速度。
如果编辑测试时没有使用Active Screen,请在编辑测试时隐藏Active Screen 以缩短编辑反应时间。选择“视图”>“Active Screen”,或切换Active Screen 工具栏按钮隐藏Active Screen。
确定是否需要在Active Screen 中捕获和保存信息,以及捕获和保存多少信息。捕获的信息越多,越容易使用多种Active Screen 选项向测试中添加步骤,但是更多的捕获信息还会导致录制速度变慢、编辑时间变长。可以从下列Active Screen 选项中选择以提高性能:
如果正在测试Windows Applications,可以选择在每一步保存所有的Active Screen 信息、只在某些步骤保存信息或完全禁用Active Screen 捕获。可以在“选项”对话框中的“Active Screen”选项卡上设置该首选项。
如果正在测试Web 应用程序,则可以禁用Active Screen 中所有步骤的屏幕捕获。在“选项”对话框中的“Active Screen”选项卡上,单击“自定义级别”打开“自定义Active Screen 捕获设置”对话框。
选择“禁止Active Screen 捕获”选项。这将缩短录制时间。
当保存一个新测试,或使用“另存为”用新名保存测试时,可以通过清除 “保存”或“另存为”对话框中的“保存Active Screen 文件”选项,选择不在测试中保存捕获的Active Screen 文件。如果已经完成了测试设计并且计划将测试只用于测试运行时,该操作尤其有用。没有Active Screen 文件的测试打开速度更快,并且使用的磁盘空间明显更少。
确定希望何时为测试结果捕获并保存应用程序图像。在“选项”对话框中的“运行”选项卡上,从“将步骤屏幕捕获内容保存到结果中”框中选择一个选项。可以通过保存屏幕捕获内容(仅在某些情况下),或根本不保存图像来缩短测试运行时间和减少磁盘空间。
提示:保存无Active Screen 文件的测试后,如果需要恢复Active Screen 文件,请重新录制必要的步骤或使用“更新运行”选项为测试中的所有步骤重新捕获屏幕。
如何减少QuickTest 使用的磁盘空间?
可以通过执行下列任一操作减少QuickTest 使用的磁盘空间:
确定希望何时为测试结果捕获并保存应用程序图像。在“选项”对话框中的“运行”选项卡上,从“将步骤屏幕捕获内容保存到结果中”框中选择一个选项。可以通过保存屏幕捕获内容(仅在某些情况下),或根本不保存图像来减少磁盘空间和缩短测试运行时间。
确定是否需要在Active Screen 中捕获和保存信息,以及捕获和保存多少信息。捕获的信息越多,越容易使用多种Active Screen 选项向测试中添加步骤,但是更多的捕获信息还会导致录制速度变慢、编辑时间变长。可以从下列Active Screen 选项中选择以提高性能:
如果正在测试Windows Applications,可以选择在每一步保存所有的Active Screen 信息、只在某些步骤保存信息或完全禁用Active Screen 捕获。可以在“选项”对话框中的“Active Screen”选项卡上设置该首选项。
如果正在测试Web 应用程序,则可以禁用Active Screen 中所有步骤的屏幕捕获。在“Active Screen”选项卡上,单击“自定义级别”打开“自定义Active Screen 捕获设置”对话框。选择“禁止Active Screen 捕获”选项。这将缩短录制时间。
当保存一个新测试,或使用“另存为”用新名保存测试时,可以通过清除 “保存”或“另存为”对话框中的“保存Active Screen 文件”选项,选择不在测试中保存捕获的Active Screen 文件。如果已经完成了测试设计并且计划将测试只用于测试运行时,该操作尤其有用。没有Active Screen 文件的测试使用的磁盘空间明显更少。
提示:保存无Active Screen 文件的测试后,如果需要恢复Active Screen 文件,请重新录制必要的步骤或使用“更新运行”选项为测试中的所有步骤重新捕获屏幕。
是否有建议的测试长度?
虽然对测试长度没有正式的限制,但是建议您将测试划分为操作,并且尽可能在测试中使用可重用的操作。一个操作中的步骤不能多于数百步,并且,理想情况是不多于数十步。
我正在测试单个应用程序的本地化版本,每个版本都有本地化用户界面字符串。如何在QuickTest 中创建有效的测试?
可以使用全局环境变量列表中的参数将这些用户界面字符串参数化。可以从任何测试访问该列表中的变量和相应值。
我正在测试单个应用程序的本地化版本。如何根据应用程序的语言,在测试中有效地输入不同的数据?
如果您正在运行测试的单个循环,或者如果您希望对于操作或测试的所有循环,值保持恒定,请使用环境变量,然后为每个测试运行更改活动环境变量文件。
如果您在运行测试或操作的多个循环,并且希望输入数据在每个循环中都发生更改,则可以为应用程序的每个本地化版本创建一个外部数据表。更改正在测试的应用程序的本地化版本时,可以只切换测试的数据表文件(在“测试设置”对话框的“资源”选项卡上)。
七、提高QuickTest 性能
如何提高QuickTest 的工作速度?
可以通过执行下列操作之一提高QuickTest 的工作速度:
QuickTest 启动时,不要在加载项管理器中加载不必要的加载项。这将缩短录制时间并提高测试运行性能。
在“快速模式”下运行测试。在“选项”对话框中的“运行”选项卡上,选择“快速”选项。这将指示QuickTest 运行测试而不为每个步骤显示执行箭头,从而加快测试运行速度。
如果编辑测试时没有使用Active Screen,请在编辑测试时隐藏Active Screen 以缩短编辑反应时间。选择“视图”>“Active Screen”,或切换Active Screen 工具栏按钮隐藏Active Screen。
确定是否需要在Active Screen 中捕获和保存信息,以及捕获和保存多少信息。捕获的信息越多,越容易使用多种Active Screen 选项向测试中添加步骤,但是更多的捕获信息还会导致录制速度变慢、编辑时间变长。可以从下列Active Screen 选项中选择以提高性能:
如果正在测试Windows Applications,可以选择在每一步保存所有的Active Screen 信息、只在某些步骤保存信息或完全禁用Active Screen 捕获。可以在“选项”对话框中的“Active Screen”选项卡上设置该首选项。
如果正在测试Web 应用程序,则可以禁用Active Screen 中所有步骤的屏幕捕获。在“选项”对话框中的“Active Screen”选项卡上,单击“自定义级别”打开“自定义Active Screen 捕获设置”对话框。
选择“禁止Active Screen 捕获”选项。这将缩短录制时间。
当保存一个新测试,或使用“另存为”用新名保存测试时,可以通过清除 “保存”或“另存为”对话框中的“保存Active Screen 文件”选项,选择不在测试中保存捕获的Active Screen 文件。如果已经完成了测试设计并且计划将测试只用于测试运行时,该操作尤其有用。没有Active Screen 文件的测试打开速度更快,并且使用的磁盘空间明显更少。
确定希望何时为测试结果捕获并保存应用程序图像。在“选项”对话框中的“运行”选项卡上,从“将步骤屏幕捕获内容保存到结果中”框中选择一个选项。可以通过保存屏幕捕获内容(仅在某些情况下),或根本不保存图像来缩短测试运行时间和减少磁盘空间。
提示:保存无Active Screen 文件的测试后,如果需要恢复Active Screen 文件,请重新录制必要的步骤或使用“更新运行”选项为测试中的所有步骤重新捕获屏幕。
如何减少QuickTest 使用的磁盘空间?
可以通过执行下列任一操作减少QuickTest 使用的磁盘空间:
确定希望何时为测试结果捕获并保存应用程序图像。在“选项”对话框中的“运行”选项卡上,从“将步骤屏幕捕获内容保存到结果中”框中选择一个选项。可以通过保存屏幕捕获内容(仅在某些情况下),或根本不保存图像来减少磁盘空间和缩短测试运行时间。
确定是否需要在Active Screen 中捕获和保存信息,以及捕获和保存多少信息。捕获的信息越多,越容易使用多种Active Screen 选项向测试中添加步骤,但是更多的捕获信息还会导致录制速度变慢、编辑时间变长。可以从下列Active Screen 选项中选择以提高性能:
如果正在测试Windows Applications,可以选择在每一步保存所有的Active Screen 信息、只在某些步骤保存信息或完全禁用Active Screen 捕获。可以在“选项”对话框中的“Active Screen”选项卡上设置该首选项。
如果正在测试Web 应用程序,则可以禁用Active Screen 中所有步骤的屏幕捕获。在“Active Screen”选项卡上,单击“自定义级别”打开“自定义Active Screen 捕获设置”对话框。选择“禁止Active Screen 捕获”选项。这将缩短录制时间。
当保存一个新测试,或使用“另存为”用新名保存测试时,可以通过清除 “保存”或“另存为”对话框中的“保存Active Screen 文件”选项,选择不在测试中保存捕获的Active Screen 文件。如果已经完成了测试设计并且计划将测试只用于测试运行时,该操作尤其有用。没有Active Screen 文件的测试使用的磁盘空间明显更少。
提示:保存无Active Screen 文件的测试后,如果需要恢复Active Screen 文件,请重新录制必要的步骤或使用“更新运行”选项为测试中的所有步骤重新捕获屏幕。
是否有建议的测试长度?
虽然对测试长度没有正式的限制,但是建议您将测试划分为操作,并且尽可能在测试中使用可重用的操作。一个操作中的步骤不能多于数百步,并且,理想情况是不多于数十步。