51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1789|回复: 6
打印 上一主题 下一主题

[原创] 请教各位高手关于引入vbs的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-17 14:39:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题是这样的:
Private Function QTP_WriteFile(words)
        Dim fileSystemObj,fileSpec,logFile
        Set fileSystemObj = CreateObject("Scripting.FileSystemObject")
        fileSpec = "C:\" &"测试报告QTP"& ".txt"
        Set logFile = fileSystemObj.OpenTextFile(fileSpec, 8, true)
        logFile.WriteLine (CStr(words))
       
        logFile.Close
        Set logFile = Nothing
End Function

QTP_WriteFile("ddd")

以上这段代码我在QTP下输入并且运行是正确的,并且能写入文件

但是我把
Private Sub QTP_WriteFile(words)
        Dim fileSystemObj,fileSpec,logFile
        Set fileSystemObj = CreateObject("Scripting.FileSystemObject")
        fileSpec = "C:\" &"测试报告QTP"& ".txt"
        Set logFile = fileSystemObj.OpenTextFile(fileSpec, 8, true)
        logFile.WriteLine (CStr(words))
       
        logFile.Close
        Set logFile = Nothing
End Sub
这个函数写到了外部的vbs文件
再在QTP中引入vbs文件,
在QTP中执行:  QTP_WriteFile("ddd")
竟然报错“类型不匹配:QTP_WriteFile”

郁闷啊~~老半天找不到为什么,请各位高手帮忙啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-8-17 14:46:51 | 只看该作者
原帖由 yuandjing 于 2007-8-17 14:39 发表
问题是这样的:
Private Function QTP_WriteFile(words)
        Dim fileSystemObj,fileSpec,logFile
        Set fileSystemObj = CreateObject("Scripting.FileSystemObject")
        fileSpec = "C:\" &"测试报告QTP"& ".tx ...

如果你从Test -> Settings中引用这个VBS文件,就会失败。因为在VBS里面声明函数用了Private,这是私有类型。那个函数将不能被外部调用,正确的应该是Public。

如果用ExecuteFile方式引入这个VBS文件就不会有问题了。比如:
ExecuteFile "C:\" & "***.vbs"
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-8-17 14:48:21 | 只看该作者
原帖由 yuandjing 于 2007-8-17 14:39 发表
问题是这样的:
Private Function QTP_WriteFile(words)
        Dim fileSystemObj,fileSpec,logFile
        Set fileSystemObj = CreateObject("Scripting.FileSystemObject")
        fileSpec = "C:\" &"测试报告QTP"& ".tx ...



Privatesdlkfj3
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-8-17 14:59:34 | 只看该作者
俄~~我晕了,唉,下午昏昏沉沉的,谢谢大家了
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-8-17 15:12:11 | 只看该作者
恩,上面说的是正确的
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-8-17 15:35:52 | 只看该作者
呵呵,最近想把QTP和ROBOT常用的函数都写成自己的vbs文件,以后就可以方便调用了
觉得QTP生成的随机函数不够随机
哈哈
我自己写了个
'随机函数生成
'输入值:生成值范围 i~j
'返回值:随机数
Public Function Get_RandNum(fromNum,toNum)
        Dim RunTime
        Randomize   
        RunTime = Int((10 * Rnd) + 1)
        Dim MyValue,i
        For i = 1 To RunTime
                Randomize  
                MyValue = Int(((toNum) * Rnd) + (fromNum))
        Next
   Get_randNum=Myvalue
End Function
哈哈,这样就随机很多了
嗯嗯,继续去写了,谢谢各位帮助
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2007-8-18 22:27:37 | 只看该作者
    谢谢yuandjing 共享了自己写的随机函数,这个的确比原来的函数好用多了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-15 11:15 , Processed in 0.074522 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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