51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4010|回复: 7
打印 上一主题 下一主题

[原创] qtp是如何调用外部文件的

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-9-9 14:29:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
接触QTP已经有一段时间了,近几天主要在研究QTP的编程问题。在这里想问一下:QTP是怎样调用外部文件的,如:*.txt,或者*.xls。
这里我参照了一些资料,写了一个程序,但是不是很清楚在QTP中是如何调用它的,麻烦大家帮忙解答一下。
这里以*.txt为例子,该文件中我放着一个登陆账号,形式如:aaa,aaa
Function writeorderno(orderno)
Dim fso, myfile,username,passwd
Set fso=CreateObject("scrīpting.FileSystemObject")'包含在 Scripting 类型库 (Scrrun.dll) 中的 FSO 对象模型,支持通过 TextStream 对象来创建和操作文本文件
Set myfile=fso.openTextFile("E:\testscript\QTP\parameter_deepen\transfer_data.txt",1,false)
'打开指定的文件并返回一个 TextStream 对象,可以通过这个对象对文件进行读、写或追加。"1"是指以只读方式打开文件。false是指不创建新文件
tmp=split(myfile.readline,",")'将一个字符串分割为子字符串,然后将结果作为字符串数组返回。ReadLine 方法返回一个字符串
username=tmp(0)
passwd=tmp(1)
myfile.close
End Function
---------------------下面是我参数化登陆账号的代码,我的目的是想通过调用外部文件的多个登陆账号,参数化实现模拟多用户的登陆,
同时想让文件中的内容显示在datatable中。不知道在QTP中是如何应用外部文件??????
DataTable.value("username","global")=username '这个username变量应该是上面获取到的值
DataTable.value("password","global")=passwd   '这个passwd变量应该是获取到的密码值
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set DataTable("username", "Global")
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure DataTable("password", "Global")
'Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "47e4ac6069f986deb07938028cc9adf70cb750cc"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 30,5
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 67,8
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Sync
Browser("Welcome: Mercury Tours").Close
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-9-9 14:59:43 | 只看该作者
你不是都做的差不多了么?
密码用set 就行了,SetSecure是需要做加密处理的
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-9-11 15:15:36 | 只看该作者
文本文件一般通过FileSystemObject对象来访问,Excel数据可以通过COM接口访问也可以作为数据库通过ADO访问
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2015-10-19 13:26
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    4#
    发表于 2010-9-11 19:13:30 | 只看该作者
    其实不能说是QTP调用,应该是QTP支持通过VBS调用外部对象
    QTP本身自己做的主要事情是对象识别,也就是把不同的对象,用自己的方法和属性重新包装后让你来调用
    所以QTP识别需要各种不同的插件,因为不同插件包装手段不一样
    当然DataTable、场景恢复等也是QTP自己的特色功能。
    其他的我感觉都是VBS的功能,可以调用ado、fso、COM等来帮助处理

    以上是我的一点愚见,不知道理解的对不对

    [ 本帖最后由 kavensyw 于 2010-9-11 19:25 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-22 12:50
  • 签到天数: 393 天

    连续签到: 1 天

    [LV.9]测试副司令

    5#
    发表于 2010-9-12 11:47:45 | 只看该作者
    呵呵,楼主既然实现数据从外部文件读,为何还在写到datatable里呢?
    另外可以将数据放到excel里,而不是txt文本里,这样好维护些
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-28 18:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]测试团长

    6#
    发表于 2010-9-28 15:10:55 | 只看该作者
    同意4楼的说法。

    其实不能说是QTP调用,应该是QTP支持通过VBS调用外部对象
    QTP本身自己做的主要事情是对象识别,也就是把不 ...
    kavensyw 发表于 2010-9-11 19:13
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2011-6-28 17:49:29 | 只看该作者
    我问一个在深圳工作了20年的朋友:“如果你死后,你的墓志铭打算写点啥?”他说:“我希望我的生活没有Bug!”
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2011-6-28 17:49:48 | 只看该作者
    我问一个在深圳工作了20年的朋友:“如果你死后,你的墓志铭打算写点啥?”他说:“我希望我的生活没有Bug!”
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-14 23:58 , Processed in 0.076267 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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