收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
软件测试 > QTP > 正文

首页 | 领域细分: 游戏测试 安全测试 手机测试 Web测试 | 技术研究: 单元测试 入门教程 用例设计 性能测试 功能测试 | 测试职场: 面试精选 职场发展 面试试题

测试管理: 配置及流程 - 需求管理 - 质量验收 - 缺陷管理 - 其它管理相关 | 开发语言: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码

测试工具: LoadRunner JiRa QuickTestPro RoBot WinRunner TestDirector 其它测试工具 | 数据库: Mysql数据库 Oracle数据库 CSS/DIV基础 HTML基础

QTP相关的25个小技巧(上)

来源:互联网 日期:2013-09-22 20:00

  1、Q:runaction后面能不能接变量(动态调用action,所以从数据库取数据做action名字了,但是调用总是找不到)?

  A:脚本中原有RunAction "testbase [case1]", oneIteration把引号中的内容放到Global表中的第22行,然后将代码修改为:

datatable.getsheet("Global")
datatable.setcurrentrow(22)

strLogin=DataTable("ActionName","Global")
RunAction strLogin, oneIteration

  help中也有相关帮助,如:

Syntax
RunAction ActionName, [IterationMode , IterationRange , Parameters]
ActionName : String : The name of the action

  2.Q:QTP8.2中调用VB函数的问题(用VBscrīpt写了一些测试脚本需要的几个通用函数,有没有办法可以用类似include的方式进行调用,而不需要每次都把这些函数Copy到新的脚本中)?

  A:程序开头加上ExecuteFile “......projectDeVariable.vbs”

  3.Q:QTP如何做回归测试(300多个TestCase,TD是否可以管理) ?

  A:TD可以实现,可以生成测试集,一个测试集可以包含若干个测试脚本

  QTP8.2本身提供一个工具Test Batch Runner但是运行完没有报告。

  MI有另一个工具叫MTM(multitestmanager)

  4.Q:qtp自动截图功能

  A:具体可参考此帖:http://www.51testing.com/cgi-bin ... d=17663&fpage=1

  5.Q:在QTP中如何设置使用别的浏览器(XP系统,用IE访问程序时,每次总提示屏蔽安装ActiveX插件,需要手动安装.但把这个过程录制到QTP后,回放一次是成功的。当我给某个输入框参数化了好多数据后,回放过程中,某些就会失败.

  可能有两个方面可以解决这问题1、每个动作设置延迟时间 2、设置为用别的浏览器。)

  (失败的提示信息是 object not visible)

  A:1.延迟可用WAIT X(X单位是秒)

  2.可以安装插件添加新的浏览器

  SystemUtil.Run “file” “params” “dir” “op'' “mode”

  QTP运行可执行文件的方法及其参数

  ps: 建议是用IE浏览器,或者IE内核浏览器做测试

  6.Q:checkpoint 检查网页,是否能实现只要网页出现乱码就返回错误报告?

  A:Text not displayed能解决问题

  关于 Text Checkpoint 的总结。

  1)Text Checkpoint 的检查部分分为三个部分。Checked Text 、Text Before 、Text After。在默认的情况下,Checked Text执行的是精确检查,其余两个部分执行的是模糊检查。Text Before(After)检查的内容可以比实际的内容少。但是不能有和是实际内容不相符的地方,否则就失败。

  2) Exact match选项。如果选择了这个选项,三部分完全都进行精确检查。个人觉得和只检查checked Text部分没有区别。

  3) Text not displayed。这个选项本质上就是一个结果取反的过程。就是把检查的结果给反过来,把pass变成Fail,Fail变成pass。我觉得这样就很容易理解。

  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.那么就比较容易乱套了。

  10、Q:移动当前位置的行

For i=1 to 3
datatable.getsheet("Global")
datatable.setcurrentrow(i)
DataTable("C","Global") = DataTable("nodename","Global") ‘把表Global中的nodename字段中的内容取出来。
Next

  11、Q:如何能记录到页面的校验码?(Output value能不能得到web页面的校验码,一般的校验码是由图片随即生成的 ,用QTP怎么录脚本在登陆前得到校验码并输入到校验码一栏)

  A:1)一个很简单的方法:测试时叫开发屏蔽掉检验码的功能后,再录制脚本。检验码的功能可以手工很简单测试出来。

  2)想得到图片的校验码,唯一的方法就是跟程序员拿程序,然后自己在脚本里面写FUCNTION!

  其它就要手动输入了!

  12、Q:QTP正则表达式的帮助

  A: QTP regular expression usage.doc (到Google里勾吧)

  13、自动测试实施计划

  1)分析实施自动化测试可能存在的风险:就是决定是否实施, 用成本 时间 效果 。。

  2)制定实施的时机:也就是在什么阶段

  3)研究所要测试的功能 性能

  4)分析在测试中可能遇到的问题 和困难

  5)预估所需要的人时和相应的硬件

  7)确定负责人员和相关测试人员

  6)制定详细的测试计划 方案

  7)最后是执行计划

  14、Q:一个Action里如何调用在另一个Action中定义的函数、过程(或变量、常量)

  例如:

  -----------------------------------

  'Action_A

  Public strURL

  ...... ......

  Function QueryList()

  ...... ......

  ...... ......

  End Function

  ------------------------------------

  'Action_B

  '如何调用 QueryList函数和strURL

  A:1)可以把这些变量和Function放在vbs文件作为resource文件共享,在每个Action中添加该文件.

  如果function中出现控件调用,那么必须确保该控件在相应的Action的object repository中是存在的.

  2)定义一个可被调用的ACTION里面唯一的放一个FUNCTION

本周排行

别人正在浏览

强悍的草根IT技术社区,这里应该有您想要的!
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号