qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

在QTP中环境变量的使用

QTP使用环境变量

    为了在一次执行脚本过程中向数据库中插入多条数据,可以参数化,在Data Table中输入数值,但是现在我不想在Data Table中输入,而是通过VBS自动去生成。在这里声明的变量如何给下个ACTION使用呢?摸索了2天再参考网上的资料想出了一个解决方法,就拿目前测试的软件作为例子来讲解吧!

    想往数据库中插入多个产品(比如说10个),但又不想在Data Table中输入参数,想到一个下面的方法:分别录制一个登陆脚本和添加产品的脚本,然后在新建一空白test,call这两个脚本,其中登陆脚本只执行一次,而添加产品的脚本执行多次。在添加产品的脚本中对产品名称和产品编码参数化。产品名称暂时用“产品商标+空格+数字+字母”组成(形如:LG 221BWX),而产品编码就是产品名称去掉前面的商标跟空格。为了简单起见,只有数字这项作变动,其它的都不变。声明两个变量,用来拼组产品名称和产品编码。现在的问题是怎么将变量的值作为参数使得其在添加产品脚本中被使用。现在的脚本如下:

在QTP中环境变量的使用

在QTP中环境变量的使用

添加产品脚本一开始录制的脚本是这样的:

Browser("管理系统 | 主页").Page("管理系统 | 产品详细信息").WebEdit("productName").Set "LG 256BWX"
Browser("管理系统 | 主页").Page("管理系统 | 产品详细信息").WebEdit("productCode").Set "256BWX"

现在要做的就是把Dim productname,productcode 声明的两个变量的值传到这里供使用,为了实现这个目的,需做以下操作:

1.在File-Settings...中切换到Environment标签页,在Variable type下拉菜单中选择User_defined,如下图。

在QTP中环境变量的使用

然后点击“+”图标,会出现一个窗口,如下图,在这里我们只需填入Name即可。

在QTP中环境变量的使用

2.将声明变量的值传给环境变量,代码如下:

Environment("productname")=productname
Environment("productcode")=productcode

在QTP中环境变量的使用

3.修改添加产品脚本中以下代码

Browser("管理系统 | 主页").Page("管理系统 | 产品详细信息").WebEdit("productName").Set "LG 256BWX"
Browser("管理系统 | 主页").Page("管理系统 | 产品详细信息").WebEdit("productCode").Set "256BWX"

为:

Browser("管理系统 | 主页").Page("管理系统 | 产品详细信息").WebEdit("productName").Set Environment("productname")
Browser("管理系统 | 主页").Page("管理系统 | 产品详细信息").WebEdit("productCode").Set Environment("productcode")

4.保存,run脚本,测试通过

如何利用好qtp环境变量

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

注意:环境变量中的属性名是大小写敏感的,必须要注意。

QTP使用环境变量


QTP使用环境变量的方法有两种,一种是自己设置环境变量,这种方法有很多朋友介绍过,不过我在使用的时候,更喜欢把它写在脚本中,这样不管脚本是移植到哪台机器上,环境变量都不用重新设置了,是不是方便很多,例如某个项目的主控脚本具体代码如下:

Dim Excel,Workbook,WorkSheet,run_value,scrīpt_name
Dim filepath,bnpFileName

Environment.Value("file_pash") = "C:\Documents and Settings\robel.yi\Desktop\BNP_scrīptS"

filepath=environment("file_pash")
bnpFileName=filepath & "\Data_file\Main_DATA.xlsx"

Set Excel= CreateObject("Excel.Application")
Set Workbook= Excel.Workbooks.Open(bnpFileName)
Set WorkSheet= workbook.Worksheets("Sheet1")

For i = 2 To 6
        run_value=CStr(WorkSheet.Cells(i, 3))
        If run_value = "Y" Then
                RunAction CStr(WorkSheet.Cells(i, 2))
        End If
Next

Excel.Quit
Set Workbook = nothing
Set WorkSheet = nothing

    这样,每次如果你把脚本移植到了另外一个地方,把新的路径赋值给环境变量file_pash就行了,其实也可以把它写在主控脚本的EXCEL驱动表里面,每次有变量在EXCEL里面修改就行了,对于把脚本给其他黑盒工程师来执行的时候,更加容易使用,其实有时候我们在写脚本的时候,一些小小的改动就能使自动化变得更智能方便,大家还有什么关于环境变量的使用的好的心得也不妨一起分享分享。

posted on 2012-05-23 16:20 顺其自然EVO 阅读(3468) 评论(0)  编辑  收藏 所属分类: qtp


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜