在测试web应用时,我们常常需要面对web页面对象变化频繁,并且使用预定义方式识别对象慢的困难。为了解决这些问题,SilkTest引入了dynamic object recognition技术,它使用xpath来查找和识别界面上的对象。它可以使用Find和FindAll方法来识别这些对象,从而避免了在页面更改后不得不频繁改变frame.inc的问题。下面我用一个简单的项目来演示一下如何使用dynamic object recognition技术来测试borland提供的web gmo应用。 1. 新建一个xbrowser的project名为gmo 2. 打开IE输入我们要测试的web页http://demo.borland.com/gmopost/ 3. 在silktest中,点击工具栏上的enable extensions,在出现的enable extensions对话框中,选择iexplorer应用的Welcome to Green Mountain Outpost条目。 silktest会自动为其选中win32和xbrowser等extensions功能,你需要点击”enable extensions”按钮来激活它。然后点击close按钮关闭该对话框。 4. 点击basic workflow工具栏上的set recovery system按钮为系统设置一个appstate GMO。这是silktest会自动为你生成一个frame.inc文件,内容如下所示: [ ] const wMainWindow = InternetExplorer [ ] // const lwLeaveOpen = {?} 5.现在你需要手工加入一个appstate GMO 6. 新建一个testcase文件gmo_test.t,用record菜单下面的window identifiers来识别页面上的enter GMO online按钮,这个时候你会采集到如下的dynamic object recognition “.//DomButton[@language=’JavaScript’ and @type=’button’ and @name=’bSubmit’ and @value=’Enter GMO OnLine’]”,这个就是该按钮的的XPath,我们并不需要所有的内容,只需要能够唯一标识该按钮的一部分内容,这里我们选择.//DomButton[@name=’bSubmit’]即可。 7. 在gmo_test.t中输入下面的内容,该测试用例用来进入gmo online page [-] testcase goto_online() appstate GMO 8. 运行一下,看看测试用例是否带我们进入了http://demo.borland.com/gmopost/online-catalog.htm页面 |