摘要: WshShell提供对本地 Windows 外壳程序的访问。可以通过WshShell 对象模拟键盘,向激活窗口发送键值实现选择,弹出定时提示框,注册表的读写,程序的启动,系统等待,添加Event Log,创建快捷方式等与windows联系比较紧密的操作。这些操作如果使用QTP来操作可能不是最佳方案,甚至可能QTP根本无法完成,此时就可以用WSH对象来帮助解决此类问题。首先了解下跟对象Wscript:Windows Script Host Object model简单的说Wscript就是一个windows脚本宿主对象模型,而Wscript是一个基于windows脚本宿主对象的根对象。利用它可以 阅读全文
posted @ 2012-09-26 16:31 平静缓和用胸音说爱 阅读(3090) 评论(0) 推荐(0) 编辑
摘要: 接上一篇,我把Excel读取的出来的数据封装成一个Dictionary对象,这样调用起来比较方便。调用的时候根据输入的所需要第几行数据取得数据下面是代码:Class ExcelDic Public Dic 'Dictionary对象存放查询到指定行的Excel结果集 'Public DicDictionary '存放所有的行记录,以行号作为Key值 Public FilePath 'Excel文件存放路径 Public SheetName '要查询的Sheet名称,即表名 Private RowIndex '要查询的数据所在行 Public De 阅读全文
posted @ 2012-09-14 16:29 平静缓和用胸音说爱 阅读(825) 评论(0) 推荐(1) 编辑
摘要: 1. EOM -> Excel Automation Object Model 即Excel自动化模型对象在自动化测试中,我们常利用Excel对数据跟脚本进行分离,也就是平常所说的数据驱动。当然了,QTP自带的dataTable也很好用,但是作为一个自动化攻城狮怎么能不会EOM呢。下面看一段我写的代码,里面包含了一些基本操作。我写的注释也比较详细,相信通过阅读代码一定不难理解:Dim fileName,filePathDim excelApp,fso,sheet,shellSet excelApp = CreateObject("excel.Application") 阅读全文
posted @ 2012-09-13 17:05 平静缓和用胸音说爱 阅读(4647) 评论(0) 推荐(0) 编辑
摘要: 1. ADO->Microsoft’s ActiveX Data ObjectsADO是一个可以访问并操作数据源的一个COM组建。包括三个主要对象:Connection对象:主要掌握数据库的连接和关闭功能,有了它可以通过对应字符串来连接数据库。Command对象:主要完成SQL语句执行,包括增删改查以及存储过程。RecordSet对象:主要存放执行后的数据结果集。当一个执行语句被执行返回给RecordSet之后,此时RecordSet对象就包括了当前所有执行结果集,并且可以通过EOF方法循环遍历。2. 构建数据库连接字符串的方式以下是一个简单的用QTP连接MySql的例子:代码不难懂,只 阅读全文
posted @ 2012-09-06 17:24 平静缓和用胸音说爱 阅读(4259) 评论(2) 推荐(2) 编辑
摘要: DOM全称”Document Object Model”,字面上叫做”文档对象模型”,它是一款主要用于Web Html中的一种独立语言。Html Dom主要通过定义一套标准的对象通道接口,使得我们能够轻松访问并控制Html对象元素,它是一种用于Html和Xml文档的编程接口。DOM的表现方法是一种树状结构。有些时候QTP只对标准控件支持比较好,而对特殊的控件无法识别。DOM是一种罪底层的对象操作模型,使用它来控制对象不但速度快,而且可以访问很多QTP无法访问的东西。1. 修改控件自身接口QTP本身无法修改控件自身接口属性,但通过DOM我们可以访问并修改自身接口属性2. DOM对象下Curren 阅读全文
posted @ 2012-09-03 07:57 平静缓和用胸音说爱 阅读(4225) 评论(0) 推荐(0) 编辑
摘要: 正则表达式是一种通过特殊的符号来匹配对应模式下的字符串的方法。QTP中常用的情形为以下四种:1. 对象动态属性自动化测试中,测试对象的识别举足轻重,一旦对象无法识别,整个测试就会失败。若某个对象的属性是动态的,我们就需要正则表达式来对此种动态属性进行参数化,这样就可以很好的避免动态属性变更导致对象无法识别的情况。2. 相似对象的识别比如一个页面上很多相似的对象,例如文本框,他们的name属性都很相似,可能只是最后一位的数字不同,此时就可以用正则表达式来描述。3. 对象动态验证在做某些对象属性验证时,若遇到动态的校验过程,最好的解决方式就是直接用正则表达式来匹配相应的动态属性值。例如验证对象的属 阅读全文
posted @ 2012-08-28 17:47 平静缓和用胸音说爱 阅读(6543) 评论(0) 推荐(0) 编辑
摘要: 当然了,除了上一篇所讲的操作,对这三种文件的操作还包括了增删改查。幸运的是,txt格式跟ini格式因为保存的文件的样式是一样的,所以可以用相同的函数去操作,具体如下:'读取txt格式环境变量文件里的所有值,存储到Dictionary对象里Public Function ReadTxtIniEnvVars(fileName) Dim txtStream,txtStr,txtArray,txtDic,i Set txtStream = syFSO.OpenTextFile(fileName) Set txtDic = CreateObject("Scripting.Diction 阅读全文
posted @ 2012-08-20 22:55 平静缓和用胸音说爱 阅读(667) 评论(0) 推荐(0) 编辑
摘要: 用过QTP的大概都知道,QTP里有不少内置环境变量,在我们自动化测试中,大概经常用到的内置环境变量有:ActionName 返回当前运行的是哪一个ActionLocalHostName 返回当前QTP运行的计算机名称ResultDir 返回当前Test的测试报告的保存地址,不包括最后的”\”SystemTempDir 返回系统的临时目录的路径,不包括最后的”\”TestDir 返回当前测试的绝对路径,不包括最后的”\”TestName 返回当前运行的Test名称还有很多其他的内置环境变量,以上列举的都是我们测试中会经常用到的内置变量,但是测试中,更重要的是一些我们自己定义的环境变量,会给我们的 阅读全文
posted @ 2012-08-19 22:41 平静缓和用胸音说爱 阅读(1351) 评论(0) 推荐(0) 编辑
摘要: 最近一直在研究QTP的Reporter对象,自己也写了一个reporter的封装类,当然网上有现成的,我也参考了其中一些东西,但是自己写下来一遍还是有很多收获的。不多说了,谈谈收获。1.LogEventReporter.LogEvent ("User",syDictionary,Reporter.GetContext())这句话的作用是在report里生成一个新的节点我在网上看到很多现成的代码里都有用到上面这句话,起初不是很在意第一个参数"User",以为是一个类似于report里标题之类的东西,然后我就随便改了一个标题。但是出问题了,改变之后我甚至不能 阅读全文
posted @ 2012-08-14 15:40 平静缓和用胸音说爱 阅读(1556) 评论(2) 推荐(0) 编辑
摘要: 最近看了些QTP的书,加上平时自己注意的小细节,总结了几点小技巧。1.QTP在win7上无法抓取web应用程序对象?我工作的时候从来没有遇到过这种情况,但是最近新换了一台笔记本,win7 64位的机器,装了QTP10,去识别IE上的对象的时候,IE总是假死,根本无法识别到对象。后来发现,需要在运行QTP跟IE的时候都要右键点击“以管理员身份运行”才可以,问题解决了。后来我又装了QTP11,却又不能识别了,我怀疑是因为QTP11没有能破解的缘故(11似乎目前不能破解成为无限期使用,只能破解成试用多少天)。暂时我还没找到什么解决办法,有达人知道的话指点我一下。2.QTP IDE中的垂直分割选取用过 阅读全文
posted @ 2012-08-05 23:12 平静缓和用胸音说爱 阅读(2592) 评论(0) 推荐(0) 编辑