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

17727591462

联系电话

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

QTP的基础代码-自动化测试

更新时间:2022-05-31 09:15:35 作者:多测师 浏览:128

  1.生产随机数列

  第一种方法

  randomize'更新反回的数据

  funcation rand(k,n)

  n="int((k-1)*rnd+1) rand=n

  end funcation

  第二种方法

  n="randomnumber.value(1,255)

  2.当运行到表中的某一行,自动导出表中的所有数据

  row=datatable.getcurrentrow

  if row="5" then

  datatable.export("d:\data.xml")

  end if

QTP的基础代码-自动化测试

  3.参数化密码

  webedit("txtpass").setsecure"sdsdf...."

  如果参数化密码,可以直接在数据表中写入未加密的密码,它会自动识别,即不用把setsecure改为set

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

  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

  这里我总结了两点技巧:

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

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

  5.datatable.value("num")只在global形式下的一种省略形式;完整形式是:

  datatable.value("num",dtlocalsheet)

  -----向某一列的单元格赋值:

  datatable.value("column_name",dtlocalsheet)="nanjing"

  -----取得某一行具体值:

  datatable.setcurrentrow(n)

  msgbox(datatable.getsheet("global").getparameter("column_name").Rawvalue)

  或者kk=datatable.Rawvalue("column_name","action1")

  ----在run-time时,动态添加表格与数据

  kk=datatable.addsheet("sheet_name").addparameter("column_name","value").name;

  6.wintreeview一些操作

  选择一个条目:wintreeview.select(item)'根是0

  根的名称:wintreeview.getitem(0)

  7.数据库检查点模块:

  sub database_check

  set con="createobject(""adodb.connection")

  con.open "Descrīption="IBM_ODBC;DRIVER=SQL" Server;SERVER="IBM;UID=sa;""&_

  "PWD="123456;APP=Quick" Test Pro;WSID="IBM;DATABASE=IBM_table""

  'access方式:con.open "DRIVER="{Microsoft" Access Driver (*.mdb)};DBQ="d:\test.mdb""

  'Orocle方式:con.open "DRIVER="{Oracle" in OraHome92};SERVER="CESHI;UID=CND_TEST;PWD=CND;DBQ=CESHI;DBA=W;APA=T;

  EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BA

  M=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;""

  set record="createobject(""adodb.recordset")

  sql="select*from ibm_one_table"

  record.open sql,con

  DO

  if(record("ibm_table_column")="kai")then'//查找表格中有多少kai

  num=num+1;

  end if

  record.movenext

  loop until record.eof="true record.close

  set record="nothing con.close

  set con="nothing end sub

  8.换行符

  vbcr----chr(13)回车符// vblf----chr(10)换行符

  vbcrlf----chr(13)+chr(10)结合//type(chr(13)就相当于按了一上键盘上的enter

  9.Run from step有两种方式:

  在Keyword View模式会从本步骤运行到所有action结束

  在expert view模式仅会将本action运行结束

  10.由于对象属性原因,无法识别对象

  -----对于对象属性是变化的,可以参数化/或者用正则表达式

  -----报匹配多个对象错误,可以spy查看对象,添加一个该对象另一个唯一标识属性

  -----有时可以删除对象的变化的属性来解决识别问题

  ------对于多个完全相同的对象,可以采用添加index,location,createtime等特殊属性来识别

  (index:按照程序源码,绘制对象的先后标识对象,所以与其它相同对象是相互依赖,当其它对象发生

  变化后,原先的所有对象index属性要发生变化,开始是0;如index:="0; location:根据对象的位置进行确定,从上到下,从左到右;

  CreateTime:按照对象被浏览器打开的先后标识对象)

  ------另外换一种思维方式,采取等效的方法;比如用键盘代替鼠标或用操作系统本身特性去解决问题

  11.对系统文件的操作

  -------从系统的文件中获取信息及删除文件

  get_file_infor("c:\she.mpg")

  function get_file_infor(url)

  dim fso,f

  set fso="createobject(""scrīpting.filesystemobject")

  set f="fso.getfile(url)"

  f.name:f.size:f.type:f.datacreated'///获取文件信息

  fso.deletefile(url)'/////删除文件

  end function

  --------获取文件夹里所有文件信息

  get_folder_infor("c:\kai")

  function get_folder_infor(folder)

  dim fso,f,f1,n

  set fso="createobject(""scrīpting,filesystemobject")

  set f="fso.getfolder(folder) set fc="f.files for each f1 in fc

  select case f1.name

  case"kai.mpg","she.mpg","dd.mp3"'//检查文件夹里是否含有这些文件

  end select

  next

  end function

  12.等待某个对象出现方法

  y="......waitproperty(""visible",true,10000)

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

联系电话

17727591462

返回顶部