软件测试工具QTP经验总结

上一篇 / 下一篇  2011-09-21 23:42:25 / 个人分类:自动化测试QTP

软件测试工具QTP经验总结

  Mercury QuickTest 企业级自动化测试工具! 目前已经被惠普收购,正式名字为HP QuickTest Professional software ,最新的版本为HP QuickTest Professional 10.0. HP QuickTest Professional 提供符合所有主要应用软件环境的功能测试和回回测试的自动化。采用关键字驱动的理念已简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操纵流程,自动天生功能测试或者回回测试用例。专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。

  1、拆分语句split

  例:取得当前日期后拆分

  riqi=date()

  my=split(riqi,"-")

  riqi=my(1)&"月"&my(2)&"日"

  datatable("riqi",DtGlobalSheet)=riqi

  本地表:DataTable("a", dtLocalSheet)

  riqi= year(date)& "-" & Right("0"& month(date),2) & "-"&Right("0"& Day(Date),2)

  2、取得表格中某行某列的值GetCellData

  例:飞机票取票价

  shuA=Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebTable("New York to Zurich").GetCellData(3,3)

  3、取距某年某月某日的天数datediff

  例:计算距2008-08-08奥运天数

  datediff("d",now,"2008-8-8")

  4、描述性编程text:=

  例:取得某页面上某文字的链接

  Browser("").Page("").Link("text:=娱乐").Click

  或

  neirong="娱乐"

  Browser("").Page("").Link("text:="&neirong).Click

  5、网页中HTML编辑器的录制

  功能:验证126邮箱的发信功能正确

  操纵步骤:

  a.录制脚本,动作包括整个发信的过程。

  b.修改脚本,在输进信件主题代码后加wait 10语句

  c.回放脚本,观察在邮件正文中输进的内容,回放时QTP是否写进

  d.重新修改脚本,保证回放时QTP在邮件正文中写进内容

  英文解决方案:

  Browser("网易126免费邮--你的专业电子邮局").Page("网易电子邮箱 - ").Frame("indexFrame").WebEdi t("subject").Click

  wait 1

  Setting.WebPackage( "ReplayType")=2 '配置使用浏览器事件或鼠标运行鼠标操纵的'方式.1 - 使用浏览器事件运行鼠标操纵,2 - 使用鼠标运行鼠标操纵。

  Set ōbj=createobject("wscrīpt.shell")

  obj.sendkeys "{TAB}"

  wait 2

  obj.sendkeys "abc1111"

  wait 1

  Setting.WebPackage( "ReplayType")=1

  中文解决方案

  strCopy = "软件测试."

  Set ōbjIE = CreateObject("InternetExplorer.Application")

  objIE.Navigate("about:blank")

  objIE.document.parentwindow.clipboardData.SetData "text", strCopy

  objIE.Quit

  wait 1

  Setting.WebPackage( "ReplayType")=2

  Set ōbj=createobject("wscrīpt.shell")

  obj.sendkeys "{TAB}"

  wait 2

  obj.sendkeys "^v"

  wait 1

  Setting.WebPackage( "ReplayType")=1

  6.使用Multi Test Manager添加文件时可以直接往里拖的哦。

  7.函数:新建记事本,改名为public.vbs例:

  function ZHIRSS

  ZHIRSS="RSS行业资讯分类维护"

  end function

  使用语句executefile "d:\zhaopin\case\denglu.vbs"或设置QTP test/settings/resources/+函数目录

  8.设置动作循环:右击/actiong call properties/run on all rows

  9.设置动作答应被调用:右击/action properties/general/reusable action打勾

  10.QTP与MTM连接:Tools/option/run/allow other mercury products to run...

  11.插进已存在的动作1)insert/call to copy of action...复制可修改

  2)insert/call to existing of action...复制不可修改

  12.QTP报告自动跳出设置:Options>Run>View results when run session ends

  13.判定表格是否存在:

  If Browser("数商3.0后台治理系统").Page("Page").Frame("main_5").WebTable("标题").Exist then

  reporter.ReportEvent 0,"pass","系统显示了所有的资讯列表!"

  else

  reporter.ReportEvent 1,"fail","系统没有显示资讯列表!"

  end if

  14.获取表格行数:Browser("数商3.0后台治理系统").Page("Page").Frame("main_5").WebTable("标题").RowCount

  15.注释脚本存在位置:qtp/dat/ActionTemplate.mst

  16取本地文件名称Function ShowFileList(folderspec)

  Dim fso, f, f1, fc, s

  Set fso = CreateObject("scrīpting.FileSystemObject")

  Set f = fso.GetFolder(folderspec)

  Set fc = f.Files

  For Each f1 in fc

  s = s & f1.name

  s = s & " "

  Next

  ShowFileList = s

  End Function

  wenjian=ShowFileList("D:\下载\本地下载1\")

  17.取本地文件删除:del= DeleFile("D:\下载\本地下载1\")

  Function DeleFile(folderspec)

  Dim fso, f, f1, fc, s

  Set fso = CreateObject("scrīpting.FileSystemObject")

  Set f = fso.GetFolder(folderspec)

  Set fc = f.Files

  For Each f1 in fc

  f1.delete

  Next

  End Function

  18.sousuo2=Browser("Browser").Page("Page_4").Check (CheckPoint("2007-11-08 14:21"))

  If (sousuo2)eqv(true) Then

  reporter.ReportEvent 0,"",""

  else

  reporter.ReportEvent 1,"",""

  End If

  19.取参数化数据的行数,只在某几行进执行某些语句

  row=datatable.GetSheet(3).getcurrentrow

  If row = 3 Or row = 4 Then

  20.单选框置灰zhihui=Browser("下载中心--新增下载文件").Page("下载中心--新增下载文件_4").WebRadioGroup("downloadType").GetROProperty(" disabled")

  If zhihui=1 Then

  End If

  29.取树结构

  Set Desc=descrīption.create

  Desc("micclass").value="WebTable"

  Set List=Browser("Browser").Page("Page").Frame("main") .ChildObjects(Desc)

  yuqi=List(0).GetROProperty("innertext")

  msgbox yuqi

  yuqi=split(yuqi," ")

  msgbox yuqi(1)

  30.封闭所有IE

  SystemUtil.CloseProcessByName("iexplore.exe")

  31.创建action template.

  当希看在每一个新建action时都增加一些头部说明,比如作者、创建日期、说明等,用action template

  来实现最简单快捷。

  方法:用记事本等文本编辑器,输进如下类似的内容:

  'Company: ***x

  'Author: ***

  'Product: ***

  'Date: xx

  然后将文件保****狝ctionTemplate.mst,并存放到QTP安装目录下的dat目录。

  32.启动IE的语句:SystemUtil.Run "iexplore.exe", "http://www.***.com"

  封闭IE或其他程序的语句:SystemUtil.CloseProcessByName "app.exe"

  or SystemUtil.CloseProcessByWndTitle "Some Title"

  33.获取图片的名称

  ObjectName = Browser(…).Page(…).Image("Find").GetProperty("Name")

  34.检查某个对象是否存在,假如存在弹出对话框说明对象存在。

  If Browser("Browser").Page("Page").Applet("login.html ").JavaEdit("username").Exist Then

  MsgBox("The object exists.")

  End if

  35.同步点

  Browser("数商3.0制作平台").Dialog("Microsoft Internet Explorer").WaitProperty "visible", True,

  设置test/test settings/object synchronizationg timeout 一致

  36.视图框显示为乱码时:调整原页面编码,在QTP/tools/change active screen

  37.添加附件:

  Browser("**").Page("**").WebFile("filePath").Click

  Browser("**").Dialog("**").WinEdit("文件名(N):").Set "D:\**.jpg"

  Browser("下载中心--新增下载文件").Dialog("选择文件").WinButton("打开(O)").Click

  添加相应的对象

  38.在图片上右击添加:tools/web event recording configuration/custom settings

  webedit/event/add/onblur,onchange,onfocus,onproper tychan,onsubmit

  webdlement/event/add/onclick,onmousedown,onmouseup /listen always

  39.数据执行保护

  方法一、右击我的电脑/高级/性能/设置/数据执行保护/为除下列选定程序之外的所有程序和服务启用DEP/添加被保护的程序。

  方法二、C:/BOOT.INT修改noexecute=alwaysoff

  40.在图片上右击添加:tools/web event recording configuration/custom settings

  webedit/event/add/onblur,onchange,onfocus,onproper tychan,onsubmit

  webdlement/event/add/onclick,onmousedown,onmouseup /listen always

  41.往掉前后空格

  If trim(mingcheng)=trim(yuqi) Then

  42.分类树题目解决

  Set Desc=descrīption.create

  Desc("micclass").value="WebTable"

  Set List=Browser("Browser").Page("Page").Frame("main") .ChildObjects(Desc)

  yuqi=List(0).GetROProperty("innertext")

  msgbox yuqi

  yuqi=split(yuqi," ")

  msgbox yuqi(1)

  43.引用自定义环境变量

  Environment.LoadFromFile "D:\询价\case\环境\huiyuan.xml"

  44. 环境变量有2种,一种是QTP的内置变量,一种是用户自定义的变量。内置变量是可以直接就可以用,自定义环境变量需要在菜单中选择“文件”——> “设置”——>“环境”,在变量类型中选择“用户自定义”,然后进行添加,可以对添加的变量全部导出,导出的文件为.xml格式的文档。既然可以导出,那么必然可以导进.xml文件,你可以在该对话框中的选中“从外部文件导进”,然后添加其文件路径即可。(当然这些操纵都可以直接使用脚本来实现,如:Environment.LoadFromFile(“FileName”))

  例如:在桌面建立一个Var.xml,如下

  -<Environment> //以这个开始的内部都是定义环境变量,直到以</Environment>结束

  - <Varia武汉网络ble> // 变量定义起始标识

  <Name>aa</Name> // 变量名称

  <Value>11</Value> // 变量值

  </Variable> // 变量定义结束标识

  - <Variable>

  <Name>bb</Name>

  <Value>22</Value>

  </Variable>

  - <Variable>

  <Name>cc</Name>

  <Value>33</Value>

  </Variable>

  </Environment>

  然后导进本测试的环境变量文件中,在专家视图里编写下面的脚本代码:

  Dim aParam3

  aParam3=Environment.Value(“aa”) // 调用环境变量

  msgbox aParam3

  运行测试,会输出”11”

  45.在HTML编辑器中写进数据

  用低水平录制写进编辑器过程,增加编辑部器前的对象,加进click事件,再用TAB

  例如:

  Browser("广告治理").Page("广告治理").WebEdit("descrīption").Click

  Window("Microsoft Internet Explorer").WinObject("Internet Explorer_Server").Type mictab

  Window("Microsoft Internet Explorer").WinObject("Internet Explorer_Server").Type "aaa"

  46.Browser("creationtime:=1").close

  两个页面title相同无法识别时使用描述必编辑

  Browser("creationtime:=1").page(title:=****).WebEd it("name:=***").Set "***"

  或Browser("creationtime:=1").page(index:=1).WebEdit( "index:=0").Set "***"

  47.场景恢复:

  当某些提示框会在不定期时有提示时,假如自动点击确定或某些按钮

  1、tools/recovery scenaril manager,制作相应的提示框和要点击的按钮,并保存

  2、test/settings/recovery,添加刚保存的.qrs

  48.输进验证码,先提示一个输进框,在输进框内输进验证码,点击[确定],把输进的验证码框

  Dim a

  a = InputBox("输进名字")

  49.对象库中对象名称不分为_2,_3...设置:tool/options/web/page/fram options/

  crate a new page test object for为different test object descrīptons

  crest a new frame. test object for为different test object descrīptions

  50.验证测试输进框输进的最大答应字数功能的正确

  QTP脚本代码中编写

  Set aa=Browser("Browser").Page("Page").Frame("main").W ebEdit("PayTypeName")

  if konglen(aa,20) eqv true then

  reporter.ReportEvent 0,"添加支付方式,支付方式输进框答应输进的最大字符功能正确",""

  else

  reporter.ReportEvent 1,"添加支付方式,支付方式输进框答应输进的最大字符功能错误",""

  end if

  此函数的功能为:验证测试输进框输进的最大答应字数功能的正确,函数可写在public.vbs中

  Function konglen(duixiang,guifanshu)

  duixiang.Click

  wait 1

  Setting.WebPackage( "ReplayType")=2

  Set ōbj=createobject("wscrīpt.shell")

  i=0

  ōld="a"

  xin="b"

  while old<>xin

  ōld=duixiang.GetROProperty("value")

  i=i+1

  wait 0,20

  obj.sendkeys "1"

  wait 0,20

  xin=duixiang.GetROProperty("value")

  wend

  'msgbox i

  If i-1=guifanshu Then

  konglen=true

  else

  konglen=false

  End If

  Setting.WebPackage( "ReplayType")=1

  End Function

  51.超时设置:Setting("DefaultTimeout") =

  52.共享对象库:Set App = CreateObject("QuickTest.Application")

  App.Test.Settings.Resources.ObjectRepositoryPath = "path"

  53.取颜色 browser("b").page("p").Object.currentStyle“:.color

  54.显示行号设置:Tools- --> Editor Options...-->General-->Show line number,

  55.不同数据库检查点手动SQL写法

  QTP插进数据库检查点,手动指定SQL语句的写法。

  一、SQL Server格式(本地无需安装SQL Server)

  connectionstring(连接字符串):

  1.本地没有创建数据源的方式

  DRIVER=SQL Server;SERVER=数据库IP地址;UID=用户名;PWD=密码;APP=Microsoft Office 2003;WSID=本地主机名;DATABASE=数据库名

  实例:

  DRIVER=SQL Server;SERVER=10.160.11.10;UID=sa;PWD=sa;APP=Micro soft Office 2003;WSID=RJHLJUN;DATABASE=dcwork

  2.本地已创建数据源的方式

  DSN=数据源名称;UID=用户名;PWD=密码;APP=Microsoft Office 2003;WSID=数据库的主机名;DATABASE=数据库名

  实例:

  DSN=LocalServer;UID=sa;PWD=sa;APP=Microsoft Office 2003;WSID=RJDCWORKTEST;DATABASE=dcwork

  3.SQL语句实例(从数据库表HR_LANGUAGE_TYPE中,查询字段语言名称LANGUAGE_NAME,条件语言名称=中文,按语言名称升序排序结果)

  source(SQL语句):

  SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM dcwork.dbo.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME

  二、DB2格式:(本地至少安装DB2 Run-Time Client Lite)

  connectionstring(连接字符串):

  1.本地没有创建数据源的方式

  DRIVER={IBM DB2 ODBC DRIVER};UID=用户名;PWD=密码;MODE=SHARE;DBALIAS=数据库名;

  实例:

  DRIVER={IBM DB2 ODBC DRIVER};UID=db2admin;PWD=db2admin;MODE=SHARE;DBALI AS=DCWORK;

  2.本地已创建数据源的方式

  DSN=数据源名称;UID=用户名;PWD=密码;MODE=SHARE;DBALIAS=DCWORK;

  实例:

  DSN=DWCORKDB2;UID=db2admin;PWD=db2admin;MODE=SHARE ;DBALIAS=DCWORK;

  3.SQL语句实例

  source:SQL语句

  SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM DB2ADMIN.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME 三、Oracle格式:(本地需要安装Oracle ODBC DRIVER)

  connectionstring(连接字符串):

  1.本地没有创建数据源的方式

  DRIVER={Oracle in OraHome92};SERVER=数据库服务名;UID=用户名;PWD=密码;DBQ=数据库名;DBA=W;APA=T;EXC=F;XSM= Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE= F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC =F;PFC=10;TLO=O;

  实例:

  DRIVER={Oracle in OraHome92};SERVER=DCWORK;UID=DCWORK;PWD=DCWORK;DBQ =DCWORK;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;F RC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSucc essful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;

  2.本地已创建数据源的方式

  DSN =数据源名称;UID=用户名;PWD=密码;DBQ=数据库名;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL= 10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS =F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;

  实例:

  DSN=dcworkoracle;UID=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;FEN=T;QTO =T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllS uccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;

  3.SQL语句实例

  source:SQL语句

  SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM DCWORK.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME

  四, mysql

  Set Conn = CreateObject("ADODB.Connection" )

  str="DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.168.1.100;DATABASE=wp_blog;user id=zzz ; password="

  Conn.open str

  Set Rs = CreateObject ("ADODB.Recordset" )

  sql = "select * from `wp_blog`.`blg_webcategory` limit 0, 5000;"

  Rs.open sql,conn,1,3

  If (not Rs.eof) then

  Rs.MoveFirst

  MsgBox Rs(0)

  MsgBox Rs(1)

  MsgBox Rs(2)

  MsgBox Rs(3)

  end if

  Rs.close

  Set Rs = Nothing

  Conn.close

  Set Conn = Nothing

  五. access

  Set Conn = CreateObject("ADODB.Connection" )

  str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/db1.mdb"

  Conn.open str

  Set Rs = CreateObject ("ADODB.Recordset" )

  56.*.xml

  Environment.LoadFromFile "D:\新建文件夹\a.xml"

  Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set Environment("HuiYuanB")

  57、类似时间控件,不能手到输进的文本档

  1)手工添加对象,

  2).object.value="2008-4-12"


TAG:

 

评分:0

我来说两句

日历

« 2024-05-05  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 21420
  • 日志数: 35
  • 建立时间: 2011-04-19
  • 更新时间: 2011-09-24

RSS订阅

Open Toolbar