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

注意:1. 环境变量中的属性名是大小写敏感的

   2. xml必须按照上述格式

环境变量的动态生成与秘密加载

动态生成 —- 使用FSO把我们需要的变量动态的写入一个XML文件

这边主要是通过两个函数:

第一个函数getVariable是可以让我们添加环境变量并通过指针变量进行迭代增加,

第二个函数generateEnvFile是根据指针变量生成环境变量XML文件。

'**************************  初始化环境变量 ******************************

getVariable allEnvVar,"url","http://www.baidu.com"
getVariable allEnvVar,"username","emilyzhang88"
getVariable allEnvVar,"password","123456"

'******************** 生成外部环境变量XML文件 ****************************

generateEnvFile "C:\readXML\Login.xml",allEnvVar

'********************************************************************
'Description:获取所有环境变量字符串
'Parameters:XmlVar(指针变量,环境变量字符),arName(环境变量名),varValue(环境变量值),
'Return Value:无
'********************************************************************
Function getVariable(byRef xmlVar,byVal varName,byVal varValue)
xmlVar = xmlVar + _
"<Variable>" + vbCrLf + _
"<Name>" + varName + "</Name>" + vbCrLf + _
"<Value>" + varValue + "</Value>" + vbCrLf + _
"</Variable>" + vbCrLf
msgbox xmlVar
End Function

'********************************************************************
'Description:生成环境变量XML文件
'Parameters:envPathName(路径名),getVar(获取的环境变量字符)
'Return Value:无
'********************************************************************
Function generateEnvFile(envPathName,getVar)
envStream = _
"<Environment>" + vbCrLf + _
getVar + _
"</Environment>"
Set fso = CreateObject("scripting.filesystemobject")
Set envStreamFile = fso.CreateTextFile(envPathName)
envStreamFile.Write envStream
Set envStreamFile = Nothing
Set fso = Nothing
End Function

调用上面自动生成的xml文档,动态加载环境变量

Environment.LoadFromFile "C:\readXML\Login.xml"
msgbox Environment.Value("username")

注意:

  • 动态加载可以有两种文件类型:  [*.xml] 和 [*.ini]
  • 静态只能加载一种文件类型:  [*.xml]

最早在QTP 5.X和6.X的时候QTP是使用INI文件作为外部环境变量来使用的,到了后来8.0以后开始就使用了XML的形式来储存,因此静态的加载方式已经被屏蔽了,但是动态加载还是可以使用INI文件来在加载,不过文件必须遵循一定的格式.

格式如下:

[Environment]

username = xxx12345

password = 123456

最近再写paypal系统的自动化测试脚本,想声明一个全局变量,可以在另外一个action中使用。
也就是在action1中,在一个weblist中选择一个值value后,通过insert->call to copy of action添加一个action2,想在action2中使用action1中选择的value。
具体步骤如下:

1.在action1中,file->Settings->Environment在用户自定义变量中添加一个环境变量"batch”,代码如下:

2.在action2中引用该环境变量,如下:

3.运行脚本,通过。

原文地址:https://www.cnblogs.com/emilyzhang68/p/2266089.html