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

上一篇 / 下一篇  2007-05-24 13:04:57 / 个人分类:QTP

 

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

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")

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

for i=1 to 3

DataTable.SetCurrentRow(i)

DataTable.Value("A","Global")=I           //DataTable.SetNextRow

next

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

——在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=hp\sqlserver;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(record("p_name")="kai") then

num=num+1;

end if          

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.   stel run has two ways

 

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

 

12.   

TAG: QTP

 

评分:0

我来说两句

日历

« 2024-05-07  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 41626
  • 日志数: 55
  • 图片数: 6
  • 书签数: 1
  • 建立时间: 2007-05-22
  • 更新时间: 2007-12-12

RSS订阅

Open Toolbar