首页 测试 工具 查看内容

QTP中一些基础代码结构累积

2014-9-7 01:16| 发布者: | 查看: 383| 评论: 0

摘要:   1 生产随机数列  第一种方法-----------------------------------  randomize\'更新反回的数据  funcation rand(k,n)  n=int((k-1)*rnd+1)  rand=n  end funcation  第二种方法  n=randomnumber. ...

  row=datatable.getcurrentrow

  if row=\"5\" then

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

  end if

  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(\"kai\",dtlocalsheet)=\"nanjing\"

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

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

  datatable.setcurrentrow(n);

  msgbox(datatable.getsheet(\"global\").getparameter(\"kai\").Rawvalue)

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

  -----在run-time期间,添加一个action和参数

  kk=datatable.addsheet(\"name\").addparameter(\"kai\",\"ddd\").name\'/value

  6 with dialog(\"name\")\'可以省好多代码,看着也简洁

  content=.wintreeview

  end with

  7 wintreeview.select(item)(根是0,列表第一个也是0)

  wintreeview.getcontent

  wintreeview.getitem(整行)+\";\"+

  winlistview.getitem(行中的第一个字符段)

  wincheckbox(\"\").set\"off\"\'/on

  8 数据库检查点:

  sub getdata

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

  con.open(\"descrīption=mod;driver=sqlserver;server=hpsqlserver;uid=sa;\"&_

  \"pwd=11111;APP=qtp;WSID=hp;database=MOD31\" \'用sqlserver方式

  Con.open \"DRIVER = {Microsoft Access Driver (*.mdb)};DBQ=D:Testdb.mdb\" \'用access方式

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

  sql=\"select * from m3_program\" \'选择具体满足一条件的:sql=\"select* from m3_program where \"

  record.open sql,con

  if(not record.eof) then

  record.movenext

  msgbox(\"p_name\")

  end if

  record.close

  set record=nothing

  con.close

  set con=nothing

  end sub

  \'如果没有查到内容,在结果中不会报错,也不会弹出窗口

  9 vbcr----chr(13)回车符

  vblf----chr(10)换行符

  vbcrlf----chr(13)+chr(10)结合

  10 step run has two ways

  一是在key-driven页面,另一个是在代码页面,前者走完项目,后者只是本acton第一行

  11 对于时间,日期等的格式检查(一种是正则表达式,另一种是输出对比,如果不好对比,用mid截取一部分对比)

  12 对于一些列表框或树结构,如果发生结点名称发生变化,此时如果报没有彼配的对象,此时可以把更改后面的名称如_2

  13 对于动态变化的对象,要分清是对像还是属性;对于属性可以用gettoproperty(\"ddd\");得到;而对于由于动态无法识别对像可以用描述性脚本:

  如:Set ōbject= Descrīption.Create()

  Object(\"regexpwndclass\").Value=\"HtmlButton\"

  Object(\"regexpwndtitle\").Value=\"登陆\"

  browser(\"ss\").page(\"a\").button(Object).click

  14 对于属性是变化的,有时可以把该属性从识别对象里删除

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

  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)

  msgbox(f.datecreated)

  f.name:f.size:f.type

  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

  16 四舍五入可以在后面+0.5,进行自动解决

  17 y=-------waitproperty(\"visible\",true,10000)

  18 on error resume next

  on error goto o

  19 window(\"\").wintreeview(\"systreeview32\").TYpe micctrldown+\"p\"+micctrlup

  20 定义数组 name=array(1,2,\"aa\",\"bb\");name(0)=1

  21 进行日期YYYY-MM-DD的格式检查:

  Function RegExpTest(patrn, strng)

  Dim regEx, Match, Matches \' Create variable.

  Set regEx = New RegExp \' Create a regular expression.

  regEx.Pattern = patrn \' Set pattern.

  regEx.IgnoreCase = True \' Set case insensitivity.

  regEx.Global = True \' Set global applicability.

  Set Matches = regEx.Execute(strng) \' Execute search.

  For Each Match in Matches \' Iterate Matches collection.

  RetStr = RetStr & \"Match found at position \"

  RetStr = RetStr & Match.FirstIndex & \". Match Value is \'\"

  RetStr = RetStr & Match.Value & \"\'.\" & vbCRLF

  Next

  RegExpTest = RetStr

  End Function

  date_pattern=\"^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$\"

  result_message=RegExpTest(date_pattern, inputbox(\"请你输入要检查的时间:\"))

  Select case result_message

  Case \"\"

  msgbox(\"你输入的日期格式与标准不匹配\")

  case else MsgBox(result_message)

  相关阅读:

  QTP中的描述性编程

  QTP脚本还可以这样写

  QTP的登陆脚本设计

  QTP中常有的VB函数

   QTP中的参数传递

  手工编写QTP测试脚本

  QTP脚本触发WEB客户端控件的事件

  1 生产随机数列

  第一种方法-----------------------------------

  randomize\'更新反回的数据

  funcation rand(k,n)

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

  rand=n

  end funcation

  第二种方法

  n=randomnumber.value(1,255)

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


鲜花

握手

雷人

路过

鸡蛋

扫一扫关注最新动态

毒镜头:老镜头、摄影器材资料库、老镜头样片、摄影
爱评测 aipingce.com  
返回顶部