多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

QTP资料整理-自动化测试

更新时间:2022-05-30 09:27:12 作者:多测师 浏览:37

  QTP调用外部api

  '例1:运行一个exe文件

  Extern.WinExec "d:\1.exe ", 1

  '例2:Beep

  '它让我的机器在办公室里狂响不止!

  Extern.Declare micLong, "Beep", "kernel32.dll", "Beep", micLong

  Extern.Beep 500

  QTP 获取对话框中的信息

  如果弹出对话框就获取上面提示信息并与表中的信息对比,不统一证明弹出的提示出错,主要用来验证

  if browser("web_name").dialog("dialog_name").exist(1) then'如果不出现=false

  error_message=browser("web_name").dialog("diaglog_name").static("用户密码错误!".getRoproperty("text")

  if error_message<>(datatable.value("error_info"))then

  msgbox(error_message)

  end if

  browser("web_name").dialog("diaglog_name").close

  end if

QTP资料整理-自动化测试

  这里我总结了两点技巧:

  一是:对于dialog中,虽然提示信息对象名称是"用户密码错误",但如果信息对象名称是“该用户不存在”,不用更改会自动识别,我想主要是录制第一遍时,“用户密码错误”只是让运行时能找到这个控制,而不管它是什么内容,因为在对象仓库中,text不是决定该对象的属性

  二是:如果对于提示信息比较长的,可以用mid(error_message,n,m)取一部份特征提示信息进行验证,这样我想可以节省处理时间,又可以避免长度以及空格等字符的处理

  QTP获取对象属性名称用法:

  GetRoProperty----从应用程序界面上获取对象属性(即,是脚本运行时,获取的对象动态属性值)

  例如:获取对象库中index属性值,似乎只能用GetToProperty,因为应用程序界面上对象没有该属性,只是QTP为识别该对象创立的描述属性;

  GetToproperty----从对象库中描述对象的属性,静态值

  GetToProperties----获取用于标识对象的属性集;对于这个集合,有count等属性方法

  QTP在执行过程中往excel中写入值

  DataTable.GlobalSheet.AddParameter "Name", "liuxuedong"

  取datatable特定行的数据可以这样使用

  DataTable.GetSheet("Action1").GetParameter("test\").ValueByRow(1)

  QTP在excel中写入内容

  < /p>

  filename="D:\xyb\xueyb\xueyb.xls"

  ' create the Excel object

  Set ExcelObj = CreateObject("Excel.Application")

  ExcelObj.Workbooks.Add

  Set NewSheet = ExcelObj.Sheets.Item(1)

  NewSheet.Name = "Page Information"

  row = 1

  NewSheet.Cells(1,1) = "name"

  NewSheet.Cells(1,2) = "xueyb"

  NewSheet.Columns("A:A").ColumnWidth = 20

  NewSheet.Columns("A:A").Font.Bold = True

  NewSheet.Columns("B:B").ColumnWidth = 60

  NewSheet.Columns("B:B").HorizontalAlignment = -4108 ' xlCenter

  ' save the Excel file

  ExcelObj.ActiveWorkbook.SaveAs filename

  ExcelObj.Quit

  Set ExcelObj = Nothing

  QTP等待某个对象出现方法

  Window("Flight Reservation").Static("Static").WaitProperty("visible",true,10000)

  例:

  SystemUtil.Run "E:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe","","E:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\","open"

  Dialog("Login").Click 177,47

  Dialog("Login").WinEdit("Agent Name:").Set "mercury\"

  Dialog("Login").WinEdit("Password:").SetSecure "4886c0abed388164f4f9c00404eef82ad60997ea"

  Dialog("Login").WinButton("OK").Click

  If Window("Flight Reservation").Static("Static").WaitProperty("visible",true,10000) ==true Then

  msgbox("flight4A登录成功!")

  else

  msgbox("flight4A登录失败!")

  End If

  QTP childobject的应用

  childobject可以返回界面上满足条件 的对象集合,而且与对象库里是否有这些对象无关,这就可以简化对象库;

  返回的对象集合的count方法可以返 回对象个数,这就可以通过下标对单个对象进行操作;在出现index标识对象时可以进行运用

  如:

  < /table>

  QTP Action之间的参数传递

  例如:在Action1中,有如下代 码:

  Set m_WinCheck=Descrīption.Create()

  m_WinCheck("nativeclass").Value="Button"

  set All_WinCheck=Window("").Dialog("").Childobject(m_WinCheck)

  n=All_WinCheck.Count()

  for i=0 to n-1

  All_WinCheck(i).Set "ON"

  next

  out_str="This is out_string"

  RunAction "Action2",oneIteration,out_str

  在Acton2中,在其step->Action Properties中的,input参数栏,加入out_str后,msgbox(parameter("out_str")),就能正确显示参数 了

  QTP自动截图

  1. 选择菜单栏Tools->Option项,再选择Run选项卡,在Run窗体中选中“Save still image captures to results,且它右边的下拉框中选择“For errors”

  2. 用CaptureBitmap("D:\1.bmp")

  Browser("XX").Page("XX").CaptureBitmap("D:\1.bmp")

  以上内容为大家介绍了自动化测试中的QTP资料整理,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部