zoukankan      html  css  js  c++  java
  • QTP环境变量的动态生成与加载

    用过QTP的大概都知道,QTP里有不少内置环境变量,在我们自动化测试中,大概经常用到的内置环境变量有:

    ActionName 返回当前运行的是哪一个Action

    LocalHostName 返回当前QTP运行的计算机名称

    ResultDir 返回当前Test的测试报告的保存地址,不包括最后的”\”

    SystemTempDir 返回系统的临时目录的路径,不包括最后的”\”

    TestDir 返回当前测试的绝对路径,不包括最后的”\”

    TestName 返回当前运行的Test名称

    还有很多其他的内置环境变量,以上列举的都是我们测试中会经常用到的内置变量,但是测试中,更重要的是一些我们自己定义的环境变量,会给我们的测试带来很大的方便,下面我们看看怎样动态地创建跟加载自定义的环境变量(静态创建跟加载的方式我就不多说了,在File-Settings-Environment里可以操作)。 我总结了下,目前自己创建的外部的环境变量的文件格式一共有三种,最常见的是xml格式,其次是ini格式,最后还有txt格式。其实以上我列举的顺序也是QTP默认读取的顺序,我把它叫做优先级,如果这三种文件里都有一个叫URL的变量,QTP会优先读取xml格式里的URL的值。不懂没关系,看代码,然后测一下就可以验证了。

    代码如下,这里我主要实现了三种文件类型的生成与读写:

    '动态写入txt格式环境变量

    Public Function GenTxtEnvVar(byref txtVar,byval varName,byval varValue)

       txtVar = txtVar + _

       varName + "=" + varValue + vbcrlf

    End Function

    '动态写入ini格式环境变量

    Public Function GenIniEnvVar(byref iniVar,byval varName,byval varValue)

       iniVar = iniVar + _

       varName + "=" + varValue + vbcrlf

    End Function

    '动态写入xml格式环境变量

    Public Function GenXmlEnvVar(byref xmlVar,byval varName,byval varValue)

       xmlVar = xmlVar + _

                                                 "<Variable>" + vbcrlf + _

                                                            "<Name>" + varName + "</Name>" + vbcrlf + _

                                                            "<Value>" + varValue + "</Value>" + vbcrlf + _

                                                   "</Variable>" + vbcrlf

    End Function

    '动态生成环境变量文件

    Public Function GenEnvFile(pathName,strVar,fileType)

       Dim envStreamFile

       fileType = UCase(fileType)

       '自定义保留对象syFSO,创建对象Scripting.FileSystemObject

       '详情请参考我的上一篇文章

       Set envStreamFile = syFSO.CreateTextFile(pathName)

             Select Case fileType

                       Case "XML"

                                envStreamFile.Write "<Environment>" + vbcrlf + _

                                                                                                                             strVar + _

                                                                                                                             "</Environment>"

                       Case "INI","TXT"

                                envStreamFile.Write "[Environment]" + vbcrlf + strVar

                       Case Else

                                msgbox "File Type Wrong! Please make sure the file type in [txt,xml,ini]."

             End Select

             Set envStreamFile = nothing

             'Set syFSO = nothing

    End Function

    '以下是测试代码

    Dim txtVar

    Dim xmlVar

    Dim iniVar

    GenTxtEnvVar txtVar,"url","http://www.baidu.com"

    GenTxtEnvVar txtVar,"userAccount","sunyu_qinxi"

    GenXmlEnvVar xmlVar,"url","http://www.testdao.com"

    GenXmlEnvVar xmlVar,"userAccount","zzzzzsy"

    GenIniEnvVar iniVar,"url","http://www.cnblogs.com/ryansunyu/"

    GenIniEnvVar iniVar,"userAccount","态度决定测试"

    GenEnvFile "D:\test.txt",txtVar,"txt"

    GenEnvFile "D:\test.xml",xmlVar,"xml"

    GenEnvFile "D:\test.ini",iniVar,"ini"

    '加载环境变量文件,获取其中的值

    Environment.LoadFromFile "D:\test.txt"

    Environment.LoadFromFile "D:\test.ini"

    Environment.LoadFromFile "D:\test.xml"

    Print Environment.Value("url")

    这是我生成的结果,在D盘里的三个文件:

                           

    我的测试结果是 显示的URL的结果为” http://www.testdao.com

    进一步验证了我之前说的所谓的优先级,有兴趣的大家可以试试。

    要注意的是,ini格式的是在QTP早期版本使用的环境变量文件的格式,8.0版本之后就开始使用xml格式了,所以在8.0以后的版本中是无法静态加载ini格式的环境变量的。认真读代码的朋友也发现了,txt格式跟ini格式的文件必须具备一定的格式,就是一定要在文件头加”[Environment]”,否则程序会报错。

  • 相关阅读:
    【转】2008年中国.NET技术应用趋势分析
    VB计算器(给上学需要应付作业的应个急)
    创业失败的18个原因
    使用ChilkatDotNet组件构建网络爬虫程序
    使用文本编辑器开发和部署一个ASP.NET Web应用程序
    优化 SQL Server 查询性能
    【转】sql性能优化方法
    使用 SOS 对 Linux 中运行的 .NET Core 进行问题诊断
    MultiThread Of Member Functions
    汇编 中断调用表 (中断向量表)
  • 原文地址:https://www.cnblogs.com/ryansunyu/p/2646872.html
Copyright © 2011-2022 走看看