使用时最常见的问题Infragistics IG TestAutomation (以前称为TestAdvantage) 直接或间接与swfconfig.xml文件相关。那么这个文件是什么,它是做什么的?
什么是SwfConfig文件?
的SwfConfig文件,或.NET外接程序可扩展性配置文件,因为它有时被HP引用,是一个XML格式的配置文件。此文件始终位于以下位置: {$HPTestingSoftwareInstallDirectory }\dat \ SwfConfig.xml每当创建新测试或打开不同的现有测试时,HP的UI测试软件都会读取此配置文件。此文件用于将与您交互以记录和重播自动测试的UI控件映射到自定义服务器代理,例如IG TestAutomation对Infragistics Windows窗体UI控件所做的操作。
什么信息SwfConfig文件包含?
每次创建新脚本或打开现有脚本时,HP UI测试软件都会将此XML文件加载到内部表中。这个时间应该注意,一方面它为用户提供了改变SwfConfig文件不关闭测试软件,但如果不更改活动脚本,对文件的其他更改不会生效。此外,配置不依赖于脚本,现有的脚本可以正常工作,但更改为SwfConfig文件可以破坏脚本,即使脚本本身没有改变。上面提到的表映射a的文本类型名称。NET UI控件继承自System.Windows.Forms.Control用于控制记录功能、重播功能的DLL和类,以及用于告知测试软件哪些方法应公开的接口。此外,特定于代理的设置可以存储为参数,这些关于通过对应于控件的设置实用程序条目以及在脚本中公开。
如何SwfConfig文件工作?
在录制
过程中,HP会侦听低级windows消息,以确定您尝试与哪个控件进行交互。在键盘交互的情况下,它基于什么控件具有键盘焦点,在鼠标交互的情况下,如果您在该控件的边界内单击或移动,它基于它。当测试软件识别控件时,它首先检查对象存储库以查看它是否已经与控件交互。然后,它在基于SwfConfig的表。如果软件在表中找到类型名称,并且CustomRecord标记尚未加载,软件将尝试加载DLL。注意: UI测试软件可以响应鼠标悬停,鼠标移动和类似的间接操作。这些间接操作不会导致它触发自定义服务器代理的初始加载,只有单击,获得焦点或键盘输入将触发初始加载。
在重放
期间,每一行脚本都引用对象存储库中的一个或多个对象。在对象存储库内部,它存储类型名称,当您运行脚本行时,它将在基于SwfConfig的表。如果软件在表中找到类型名称,并且CustomReplay标记尚未加载,软件将尝试加载DLL。作为主要使用的
故障排除
SwfConfig文件是将测试中的UI控件与关联的自定义代理服务器DLL相匹配,并且由于该DLL包含该控件的所有记录和重播功能,因此SwfConfig将依次中断该控件的所有自定义记录和重播功能。 ,SwfConfig.xml问题的症状因根本原因以及通过记录或重播获得这些症状的时间而异。决议将根据症状而有所不同。在许多情况下,
在记录
过程中,您可以使用SwfConfig文件,当针对Infragistics控件进行记录时,在记录的脚本行中,对象继续进行Swf ,如SwfObject或SwfTable ,但记录的操作是单击 #,# 表示X和Y坐标或键入 “字符串值”。请注意,HP UI测试软件可能会记录除单击X、Y或键入 “string” 以外的操作,但SwfConfig文件。这是因为它们已经为Infragistics控件实现了一些功能。实现的功能是基于我们在实现时控制的有限子集完成的。具有支持的控件和功能集大致基于我们对其实现支持的时间,大约是NetAdvantage 2005第1卷版本的控件。最初创建IG TestAutomation时,其初始实现基于已提供的支持,因此可能记录的操作将类似于TestAdvantage记录的操作,但可能记录的操作将受到限制,并且不会像NetAdvantage控件多年来更改的那样按预期进行重放。根据HP UI测试软件处理记录的方式,您很少会遇到明显的错误,因为它们会定期吞下所有错误。通常,
在重播
期间,您将告诉您有重播问题的唯一方法是从先前成功录制的脚本。作为配置不当的SwfConfig文件意味着您将无法记录,这意味着您可能正在测试现有脚本,例如示例附带的脚本。您在重播过程中遇到的一些最常见问题是通过以下异常之一。
当TestAdvantage的版本与您用于被测应用程序 (AUT) 中的UI控件的NetAdvantage版本不匹配时,会发生这种情况。异常的性质是TestAdvantage具有对NetAdvantage程序集的引用,但版本与AUT中包含的版本不同。它试图找到它,在正常情况下,它会从AUT加载它,但由于它们是不同的,它无法找到它需要的程序集。
2.引发 “无法强制转换异常” 异常,以及相同的命名程序集,但来自两个不同的版本。
同样,当TestAdvantage的版本与您在被测应用程序 (AUT) 中用于UI控件的NetAdvantage版本不匹配时,也会发生这种情况,区别在于它找到它正在寻找的DLL,可能在全局程序集缓存 (GAC) 中,但是当它尝试将UI控件从AUT转换为它引用的UI控件时,它会抛出异常,因为它们是不同的。
3.抛出 “对象不支持此属性或方法” 或 “对象不支持此操作” 异常。但该方法或属性存在于对象的intellisense中。
这些异常是由于没有在SwfConfig中定义任何版本的TestAdvantage而导致的。通常由空的SwfConfig和/或将VersionUtility设置为disabled引起。但也可能是由DLL指向无效的文件位置引起的。