技术只有在交流分享中才能更上一层楼!
复杂的事简单做。
简单的事认真做。
认真的事重复做。
重复的事创造性做。
TestComplete,调用DotNet Assemblies(一)
上一篇 /
下一篇 2008-05-13 22:43:35
/ 个人分类:TestComplete
大家平时用得比较多得是DotNet里面提供的各种方法或者程序集,又或者是第三方DotNet应用程序,而在TestComplete,也提供对DotNet程序集强大支持,很方便我们在TC的scrīpt调用DotNet封装好的各种方法,TC里提供了两种方式调用这些方法:51Testing软件测试网K!D~Q2\%^ aB_
1. 通过dotNET对象调用
Uv6`/J#D2i02. 通过应用程序域调用51Testing软件测试网/StC(M/W[#Yhe
51Testing软件测试网(G6v!UD!Ai?
通过dotNET对象调用51Testing软件测试网Gl"F*K/?/d{\
m!xq|r0TC提供了对特别的对象:dotNET,用来调用访问.NET程序集的成员(方法),要使用dotNET对象,要在TC里安装支持.NET类的插件(tcClrOpenApp.pls),在TC安装的本地目录下<TestComplete>\Bin\Extensions下可以找到),默认时应该已经安装,如果没有安装,可以在控制面板的添加/删除程序里找到TC,然后选择更改或删除功能进行安装该插件。
Ci%D[%Y3Y&V7wn0以下是两种查看插件是否安装的方法:
y9Z?-lJ%X iF01. 通过TC主菜单(File | Install Extensions)查看是否安装了插件。51Testing软件测试网%w'O{u1mQ+Es$\1Y
2. 在脚本中调用方法查询BuiltIn.IsPluginInstalled('.NET Classes Support')。
k yg-[R0 51Testing软件测试网Q?7kD4L&e5H
为了能通过dotNET对象调用.NET assembly程序集里的方法,首先要把.NET程序集添加到TC的Project中的CLR Bridge(CLR指通用语言运行环境),CLR Bridge专门用来管理程序集对象。右键点击Project,选择编辑(Edit)Projcet属性(Properties),在页面中选择CLR Bridge。其中又包括两种方法加载程序集,一是通过GAC(global assembly cache)加载,二是通过浏览文件方式。51Testing软件测试网mLzc0N1uB#l
51Testing软件测试网-H5C%ZY/CN7Aq加载程序集后,在脚本编辑区使用TC的Code Completion功能,查看dotNET对象就可以浏览目前可用的程序集及其成员和方法了,如下:
:\'ov#K }HCs%_H0
4RO8G6z.Tv(@]#R&am0在脚本中如何调用呢?如下:51Testing软件测试网!@4zW$R+Y(m m3t&t
调用方法:dotNET.namespace.class.subclass.method(parameters)51Testing软件测试网b2^:X(|p.tK0^
调用属性:dotNET.namespace.class.subclass.property(parameters)
!l^h;E3XY?"j%C0值得注意的是,当要使用一个非静态的方法或者属性时,必须先通过调用类构造器或者一个静态成员(通过一个新类实例创建)创建这个类的实例。另外,一般情况下,类构造器的名称是_ctor()
,也可能有几个,如_ctor(),_ctor2(),_ctor3()
等等,而在VBscrīpt语法中是不能一下滑线开头的,为了能使用,把下滑线换成字母z,例如,_ctor3
,应该写出zctor_3。如下是一个简单的例子:
51Testing软件测试网7]5@
x!v3B$? [
proceduredotNET_Test;51Testing软件测试网.ES#X+}a7W
H
varstr, i : OleVariant;51Testing软件测试网9X K)e GRu[
begin51Testing软件测试网.k(U{%E6zy6~B
//调用string class构造器的实例51Testing软件测试网(uW0U5vNL8l
str := dotNET.System.String.zctor_8($41, 3);
xW8_bG4n X0 Log.Message(str.OleValue);//使用OleValue属性51Testing软件测试网 a|L8cO {7k
//调用一个静态方法51Testing软件测试网 cm/i-q6~qSU:_~!W
str := dotNET.System.String.Copy('Hello, world!');
d6V
p&Ew'O:BF0 //调用一个类实例(非静态)方法51Testing软件测试网[o~L x#F
i := str.IndexOf('w');
+yu(C4d,R"B9`G5JR!S0 Log.Message(i);51Testing软件测试网"kx{I8xau;T%C
end;
@3HF"\DFh;r0
相关阅读:
- TC检查点 (ZERONG.HE, 2008-5-04)
- TestComplete从Excel取值实例 (qiguojie, 2008-5-05)
- TC,HISUtils对象 (ZERONG.HE, 2008-5-05)
- TestComplete从Excel取值实例 (jely, 2008-5-06)
- TC检查点 (jely, 2008-5-06)
- TC中Regions对象的使用介绍(转载) (jely, 2008-5-06)
- TC中如何添加对象及比较对象(转载) (jely, 2008-5-06)
- TC中Add File & Compare File使用介绍(转载) (jely, 2008-5-06)
- TestComplete测试计算器实例(转载) (jely, 2008-5-06)
- TestComplete中创建ADOCommand (ZERONG.HE, 2008-5-07)
收藏
举报
TAG:
DotNet
TestComplete