51Testing软件测试论坛

标题: recovery system & Defaults.inc & invoke application automatically [打印本页]

作者: asks_zhuang    时间: 2005-4-1 14:08
标题: recovery system & Defaults.inc & invoke application automatically
Default recovery system:

The default recovery system specifies what SilkTest does to restore your application’s BaseState. It also specifies what SilkTest does whenever:

· A script file is first accessed

· A script file is exited

· A testcase is about to begin

· A testcase is about to exit

defaults.inc

The defaults.inc file is provided by SilkTest and implements the recovery system for a single application test. That is, it contains the DefaultBaseState function that performs any cleanup needed after an operation under test fails and returns the application to its base state.

具体一句话: Default recovery system的功能是在defaults.inc里面实现的


测试过程中,如果silktest遇到情况,无法继续执行,比如测试程序崩溃,silktest会尝试把测试对象的状态恢复到最开始的BaseState,这个过程就叫recovery system.
默认情况下的recovery system需要做的工作是在default.inc里面记录的。而default.inc里面同时提供了silktest运行script/testcase的具体操作;
这里拿defaultTestCaseEnter来作说明,每个TestCase被触发时候就会寻找本身对应的TestCaseEnter函数,如果没有找到这个函数,就运行defaults.inc里面的
defaultTestCaseEnter函数;该函数的内容如下:

[-] DefaultTestCaseEnter ()
[ ] SetAppState ()
DefaultTestCaseEnter函数就尝试首先恢复AppState,而所有的Appstate,归根究底,都是从BaseState延伸出来的,所以会首先运行到BaseState,即default.inc里面的appstate DefaultBaseState ()函数,这个函数的作用简单说就是启动主窗口;

如果最终不能找到主窗口,会尝试执行主window里面的Invoke()方法;所以如果用户需要自己启动测试程序,就可以在重写在主window的Invoke()方法

[-] window MainWin   MyFirstWindow
  [ ] tag "Dummy Window"

  [ ] /********************** Methods *********************/
  [-] BOOLEAN Invoke          (INTEGER iInit optional)
   [ ] string sCmdLine ="c:\Setup.exe"
   [-] if SYS_FileExists(sCmdLine)
   [-] do
    [ ] MyFirstWindow.Start (sCmdLine)
    [ ] return true
   [-] except
     [ ] return false

那么就剩下最后一个问题了,testcase一运行,就进入了defaults.inc,那么它怎么知道哪个window是主window呢?defaults.inc里面的内容是固定的阿。
呵呵,简单说,如果没有特殊的设置,defaults.inc里面的DefaultBaseState函数会运行到:MainWin = @ "wMainWindow",
所以只要设置了wMainWindow就可以,在inc里面增加一个global变量
mywin.inc:
    const wMainWindow = MyFirstWindow
作者: beiyue    时间: 2005-4-8 08:59
标题: support





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2