johnjinwei 发表于 2006-10-13 21:14:12

环境变量的作用域问题

QTP的测试由Action组成。那么不同的测试的环境变量是否可以共用自定义的环境变量?

我试了一下好象不行:
TestA设置用户自定义环境变量AEnvironment("A").value="test",但TestB无法用这个环境变量。Msgbox是一个空值!


另外:我在QTP的帮助文件中,好象提到内部的自定义环境变量只能在本测试中用,外部的自定义环境变量不能修改。但论坛上有人说环境变量是全局的。
谁能帮我确定一下,内部的自定义环境变量的作用域?

denisye 发表于 2006-10-13 21:32:45

环境变量的作用域是整个脚本,不管是拆分的Action还是调用的Action都可以用此来共享数据
你说的TestA和TestB是不同的两个脚本吧?这样当然是不能用这个方法来共享数据的了。
在不同的脚本间共享数据的话可以使用数据库的方式吧

johnjinwei 发表于 2006-10-14 16:19:46

是的。我的意思是不同脚本间是否可以共享各自的环境变量?

hiyizhiyu 发表于 2006-10-16 11:48:43

将需要共享的环境变量写成xml文件
然后被不同的脚本load
这样不能实现吗

johnjinwei 发表于 2006-10-16 12:02:08

但我的那些变量的值是变化的。XML文件的用户自定义的外部环境变量是不能修改的

denisye 发表于 2006-10-16 12:31:52

把值存放到SQL数据库里
实现数据共享

walker1020 发表于 2006-10-16 13:32:38

把需要共用的自定义环境变量放在一个vbs 文件里面,然后 让TestA 和TestB 调用 这个文件 就可以使用 自定义环境变量了。

hiyizhiyu 发表于 2006-10-16 13:46:27

那一定要用environment来实现吗?
也可以考虑用共享datatable的方式来做

johnjinwei 发表于 2006-10-17 11:02:07

不好意思。
environmen是可以跨测试的,但必须引用脚本
比如:测试A,有一个ActionA,有一个环境变量是B
=============
测试A,ACTIONA内脚本:
Environment.value("B")=“new"
=============
测试B
Call RUNACTION a
msgbox(Environment("B"))
=============
结果对话框的值是NEW


可以跨测试的,但必须引用脚本

5555 发表于 2007-9-23 14:05:03

不错,学习了~

AFlyRabbitPig 发表于 2010-9-27 10:00:40

不错 俺也知道了怎么用喽:hug:
页: [1]
查看完整版本: 环境变量的作用域问题