技术只有在交流分享中才能更上一层楼! 复杂的事简单做。 简单的事认真做。 认真的事重复做。 重复的事创造性做。

TestComplete,调用DotNet Assemblies(一)

上一篇 / 下一篇  2008-05-13 22:43:35 / 个人分类:TestComplete

大家平时用得比较多得是DotNet里面提供的各种方法或者程序集,又或者是第三方DotNet应用程序,而在TestComplete,也提供对DotNet程序集强大支持,很方便我们在TCscrīpt调用DotNet封装好的各种方法,TC里提供了两种方式调用这些方法:51Testing软件测试网 J9h9Xm @

1.      通过dotNET对象调用

.OH ]K'|8@!o[q0

2.      通过应用程序域调用51Testing软件测试网0A{8H;x.F[

 51Testing软件测试网,{E;x/u!M,O8{ r sH

通过dotNET对象调用51Testing软件测试网-\)k(W%_9q,r,e9]+B

 51Testing软件测试网I1f'\%A7?3n

TC提供了对特别的对象:dotNET,用来调用访问.NET程序集的成员(方法),要使用dotNET对象,要在TC里安装支持.NET类的插件(tcClrOpenApp.pls),在TC安装的本地目录下<TestComplete>\Bin\Extensions下可以找到),默认时应该已经安装,如果没有安装,可以在控制面板的添加/删除程序里找到TC,然后选择更改或删除功能进行安装该插件。51Testing软件测试网SIgG [

以下是两种查看插件是否安装的方法:

g9B k#C?-vec [s0

1.      通过TC主菜单(File | Install Extensions)查看是否安装了插件。51Testing软件测试网W@O;u8V

2.      在脚本中调用方法查询BuiltIn.IsPluginInstalled('.NET Classes Support')

,v1Vm;b$I vZ)qp0

 

I8v3P ta!og+Rh&D0

为了能通过dotNET对象调用.NET assembly程序集里的方法,首先要把.NET程序集添加到TCProject中的CLR BridgeCLR指通用语言运行环境),CLR Bridge专门用来管理程序集对象。右键点击Project,选择编辑(Edit)Projcet属性(Properties),在页面中选择CLR Bridge。其中又包括两种方法加载程序集,一是通过GACglobal assembly cache)加载,二是通过浏览文件方式。51Testing软件测试网WrjbK4F r

\wm^Xd0加载程序集后,在脚本编辑区使用TCCode Completion功能,查看dotNET对象就可以浏览目前可用的程序集及其成员和方法了,如下:

0F0S%\ Q"in[0

3K4wg9d(g8kG0v,`0

在脚本中如何调用呢?如下:

+Y_w1pvK0

调用方法:dotNET.namespace.class.subclass.method(parameters)51Testing软件测试网8{+{Q0YZ)B

调用属性:dotNET.namespace.class.subclass.property(parameters)

C;??P1T a0

值得注意的是,当要使用一个非静态的方法或者属性时,必须先通过调用类构造器或者一个静态成员(通过一个新类实例创建)创建这个类的实例。另外,一般情况下,类构造器的名称是_ctor(),也可能有几个,如_ctor(),_ctor2(),_ctor3()等等,而在VBscrīpt语法中是不能一下滑线开头的,为了能使用,把下滑线换成字母z,例如,_ctor3,应该写出zctor_3。如下是一个简单的例子:51Testing软件测试网8_%@Vx k3Ry-hH

proceduredotNET_Test;51Testing软件测试网8A8T8taBw3JkQ
varstr, i : OleVariant;
x0g%N5i,N7kC&V7K0begin51Testing软件测试网nBZ;j(MY5VR%T
  //
调用string class构造器的实例
C"|(a,u'^)x W0  str := dotNET.System.String.zctor_8($41, 3);51Testing软件测试网&|+W!j)N;n|lYHdb
  Log.Message(str.OleValue);//
使用OleValue属性
Z&|Qgv/e4K0  //
调用一个静态方法
,r DQ ER-h'k/g0  str := dotNET.System.String.Copy('Hello, world!');51Testing软件测试网(c*~V7Ak R
  //
调用一个类实例(非静态)方法
tOC.};QzU1`0  i := str.IndexOf('w');
^R8P ~Z'Y~"eW+y0  Log.Message(i);
h6?/LbT4v0end;
51Testing软件测试网g v.E[8Z#eL#HL


TAG: DotNet TestComplete

 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 22073
  • 日志数: 36
  • 文件数: 1
  • 建立时间: 2007-11-13
  • 更新时间: 2008-09-21

RSS订阅

Open Toolbar