51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2515|回复: 1
打印 上一主题 下一主题

recovery system & Defaults.inc & invoke application automatically

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-4-1 14:08:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
  • TA的每日心情
    开心
    2016-3-19 10:50
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2005-4-8 08:59:19 | 只看该作者

    support

    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 21:17 , Processed in 0.071114 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表