51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 677|回复: 0
打印 上一主题 下一主题

SillkTest中SYS_FileOpen和FileOpen的区别!!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-11-30 13:08:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近常有人问我这两个的区别,在自动化论坛里有一个人发贴是这样问的:

**************************************************************
在写class的时候需要用到SYS_FileOpen这个方法,
题目是在F:\盘中打开已经存在的"a.txt"文件
我写的程序如下:
    if SYS_FileExists("F:\a.txt")
       File_Open("F:\a.txt",FM_READ)
为什么这里找不到我的文件
**************************************************************

首先要明白SYS_FileOpen和File_Open的作用范围
SYS_FileOpen的对象是target machine。
File_Open的对象是host machine.
从他的问题中我们我们可以看出,他要做的操作是在另外一台机器上。因为用的是
File_Open("F:\a.txt",FM_READ),并且找不到a.txt文件。
所以程序应改为:
    if SYS_FileExists("F:\a.txt")
       SYS_File_Open("F:\a.txt",FM_READ)
这样就可以找到文件,并且读取了。

此外可以引申出其它两个问题:
1、将File_Open("F:\a.txt",FM_READ)
     改为File_Open("F:\a.txt",FM_WRITE)
则不会出现文件找不到的错误,出现pass。但要注意的是,这样做还是错的。因为改成FM_WRITE后,虽然本机上没有a.txt这个文件,但是程序会create一个新的文件。
但我怀疑这是silktest的一个bug,因为在本机没开agent的情况下,还是会在本机上创建一个a.txt文件。正确的结果我认为还是应该报出找不到文件的错误。

2、所谓的target machine指的是目标机,可以是另一台机器,也可以是本机,所以尽量用SYS_FileOpen而不要用FileOpen

[ 本帖最后由 xinyu2119 于 2006-11-30 13:11 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-22 06:58 , Processed in 0.062651 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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