File – test setting 配置 转载
File – test setting-Environment属性
如何利用好qtp环境变量(转载)
By zzxxbb112 | Published: 2011年04月19日
在qtp自动化测试过程中,经常会需要一些预先的配置信息文件来用于不同的测试环境下。环境变量也就这样应运而生了。在qtp中存在着两种类型的环境变量:
•内置环境变量
•自定义内部环境变量
•自定义外部环境变量
内置环境变量
介绍:它是qtp内部已经事先封装好.
方式:直接进入到Settings–> Environment中选择built-in选项即可查询到所有的内置环境变量。并且这些环境变量的值都是qtp已经封装好的。
举例:Msgbox Environment.Value(“TestName”)
结果:直接可以获取到当前测试脚本名称。
自定义内部环境变量
介绍:它是qtp中的一种可以在qtp内部进行自定义的环境变量
方式:直接进入到Settings–> Environment中选择User-defined选项,点击旁边的”+”,即可定义name和value
举例:Msgbox Environment.Value(“自定义名称”)
结果:直接可以获取到当前自定义环境变量的值
自定义外部环境变量
介绍:直接从xml格式文件中进行读取环境变量
方式:进入Settings–> Environment中选中Load variables and values from external file并给出xml的文件路径
举例:xml文件
<Environment>
<Variable>
<Name>Url</Name>
<Value>http://www.iquicktest.com</Value>
</Variable>
</Environment>
Msgbox Environment.Value(“Url”)
结果:直接打印结果为http://www.iquicktest.com
注意:环境变量中的属性名是大小写敏感的,必须要注意。
File – test setting-resource属性
QTP加载外部文件函数VBS,三种方法比较
方式1:Executefile
方式2:加到QTP的Resorece
方式3:ExecuteGlobal方法
在比较之前先简明叙述一下使用方法,以给初学者由浅入深的理解
比如我们有一个函数Terry.vbs放在了C:盘下,其中有如下函数(获取本机的IP地址):
Function GetIPAddr() Set bjWMI = GetObject("winmgmts://./root/cimv2") Set colIP = objWMI.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") For Each IP In colIP temp = IP.IPAddress(0) Exit For Next GetIPAddr = temp End Function |
方式1的使用方法:
直接在QTP中打:
Executefile "c:\Terry.vbs"
随后就可以引用wally.vbs中的任意函数了,如msgbox GetIPAddr()
方式2的使用方法:
点击QTP菜单的File->Settings->Resources,之后添加Terry.vbs到QTP的resource中
随后就可以引用Terry.vbs中的任意函数了,如msgbox GetIPAddr()
方式3的使用方式:
ExecuteGlobal是VBS的函数而非QTP特有的函数,ExecuteGlobal的功能可以引入其它vbs文件的函数,就和C++的include,Java的import一样。使用范例:
dim fso : set fso = createobject("scripting.filesystemobject")
executeglobal fso.opentextfile("c:\Terry.vbs", 1).readall
set fso = nothing
大家可以看到其实它是把Terry.vbs全部读入内存中
随后就可以引用Terry.vbs中的任意函数了,如msgbox GetIPAddr()
下面是一些我使用中的心得:
方式1:Executefile的好处:
QTP可以使用这个函数方便了自己写语句来引入函数,灵活性非常高
方式1:Executefile的缺点和解决方案:
1.会使得QTP的语句执行的黄色指针工作异常,狂跳
2.Debug很头疼。我以前的上周有一段经历,一个很小的Bug,调试的时候Step into不进正确的函数体,竟然跳到了一行空行。后来这个小Bug竟然足足花了我3整天的时间。这个应该是QTP的Bug,希望它后续的版本可以改进
3.会莫名其妙的执行一些本不应该有的操作,大大降低QTP执行时间效率,之间屏幕在闪,但是不知道在执行些什么。我曾经遇到过这样的情况:任其自然执行,屏幕狂闪,执行了半小时;我单步执行,只花了5分钟执行完毕。可见这会使得原本就受质疑的QTP的Performance更受谴责
解决方案:
以上三点我找不出解决方案,属于Hp的严重Bug还是需要HP来完善
方式2:加到QTP的Resorece的好处:
毕竟是QTP自带的引用外部VBS函数的,非常稳定
TAG: