• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

自动化测试工具QuickTest Professional(QTP)使用需要掌握的技巧

发布: 2011-3-19 18:42 | 作者: 网络转载 | 来源: 领测软件测试网采编 | 查看: 473次 | 进入软件测试论坛讨论

领测软件测试网

 7.Q:WSH的应用方法

  A:WSH 实际上是一个脚本语言的运行环境,它之所以具备强大的功能,是在于其充分挖掘了脚本语言的潜力。因此,如果抛开脚本语言而空谈 WSH ,那实际上就没有了意义。而如果再展开来讲述脚本语言,显然就离开了今天的主题。

  在这种情况下,只好采取一种折衷的方法:给大家推荐几个脚本文件利用 WSH 执行任务的实例,希望大家能通过这些例子对 WSH 的使用有一个初步的认识。

  脚本文件的编写十分方便,你可以选用任意一个文字编辑软件进行编写,编写完成后,只需将它保存为 WSH 所支持的文件名就可以了(如.js 文件和.vbs 文件)。最常用的就是记事本编辑器,下面的实例都是以它作为工具编写的。

  打开记事本编辑器,在上面编写如下内容:

  Wscrīpt.Echo(“走近 WSH”)

  将它保存为以 .vbs 或 .js 为后缀名(千万不要写成了 .txt)的文件并退出记事本。双击执行这个文件。

  这一次,我们要利用 WSH 完成一次创建十个文件夹的工作。代码如下:

dim objdir
set ōbjdir=wscrīpt.createobject("scrīpting.filesystemobject")
for k=1 to 10
anewfolder="c:\chapter" & k
objdir.createfolder(anewfolder)
next

  同样,将它存为 .vbs 文件并退出。运行后,我们会发现,C 盘根目录下一次性多出了十个新文件夹。

  最后,再举一个在服务器上的运用。下面的代码将帮助你重新启动指定的 IIS 服务:

' define a constant for stopped services
  Const ADS_SERVICE_STOPPED = 1

' get an ADSI object for a computer
  Set ōbjComputer = GetObject("WinNT://MYCOMPUTER,computer")

' get an object for a service
  Set ōbjService = objComputer.GetObject("Service","MYSERVICE")

' check to see if the service is stopped
  If (objService.Status = ADS_SERVICE_STOPPED) Then

' if the service is stopped, then start it
  objService.Start

  End If

  将它以 startsvc.vbs 为名保存在 C: 盘根目录。并通过如下命令执行:Cscrīpt C:\STARTSVC.VBS。运行后,经你指定的 IIS 服务项将被重新开启。

  其实,在 Windows 的 samples 目录下,有个 WSH 文件夹,那里面有不少很具代表性的 .vbs 和. js 脚本文件。

  此外,利用 WSH 还可以自己编写脚本文件来提高网络管理方面的效率。

  8.Q;从EXCEL中导出数据进行测试

datatable.AddSheet("51sheet")
datatable.ImportSheet "f:\test.xls","testsheet","51sheet"

Dim i,RowCount '定义两个变量
i=0
RowCount=datatable.GetSheet("51sheet").GetRowCount '设置RowCount等于51sheet中的行数。
msgbox RowCount
Do while i<rowcount
i=i+1 '第一次进入循环,执行这句后,i=1

  'datatable.getsheet("51sheet").setcurrentrow(i) 这句话被我注释掉了,正确的写法应该是下面这样,分开写。

datatable.getsheet("51sheet")
datatable.setcurrentrow(i)

  '执行过上面两句后,CurrentRow是第一行。

tempData=DataTable.GetSheet("51sheet").GetParameter("Name").Value

  '现在,我们调用msgbox看看下面这种调用方法得到的是什么值?没错,是第一行的值,下一次循环呢?

  '得到的是第二行的值么?

  msgbox "GetParameter-Name:"&tempData '这里弹出我们要看的值。

  '下面我们用另外一种方法来得到。

  msgbox "GetParameter-i:"&DataTable.GetSheet("51sheet").GetParameter(1).Value '这里我用GetParameter(1)去得到sheet中第一列的值。

  loop

  9.Q:关于dtGlobalsheet与dtGlobalsheet

  1) dtGlobalsheet只有一个,它的index值比较特殊,它有两个index值,一个是1还有一个是内置的默认的1000。

  你可以用1或者1000去引用它都是正确的。当然了,如果你用dtGlobalsheet来引用它也是正确的。这个sheet的Name叫做"Global"。注意:SheetName是区分大小写的。

  2) dtLocalsheet可以用index:1001来引用,当然,也可以用2来引用。至于其它自定义的sheet嘛,你就只能用index:3来引用了。

  它没有内置的默认的类似前两个那样的index值。

  3) datatable这个对象只有一个。就是所有sheet的集合。或许你把它理解为excel文件比较好。

  dtsheet呢?就是其中的每个sheet。所不同的就是MI为他们做了一些默认值。在我们的应用中,可能会有多个action,如:actiion1,actiion2,actiion3

  这些action也分别对应有各自默认的LoaclSheet.即:actiion1,actiion2,actiion3。

  如果每个action中,我们都只用到一个sheet,那就好办了,在每个action中都可以用localsheet来引用,但是如果我们有两个及两个以上的sheet.那么就比较容易乱套了。

 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

63/6<123456>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网