数据池 datatable 应用
参数化的两种写法:
1、browser(“”).page(“”).webedit(“”).set datatable(“列名”,dtglobalsheet)/dtlocalsheet
2、testdata=datatable.value(“列名”,“global”)/global换成action1
browser 。 。 。。。。。。。。。。。。。。。。。。。set testdata
systemtuil.run "www.baidu.com"
for i=0 to 9
browser("百度一下,你就知道").page("百度一下,你就知道").webedit(“关键字输入框”).set datatable.value(“关键字输入”,“action1”)& i
browser(“百度一下,你就知道”).page(“百度一下,你就知道”).webbutton(“百度一下”).click
browser(“百度一下,你就知道”).page(“百度搜索_搜索结果页面”).image(“到百度首页”).click
next
global 与local sheet 的区别
1、global sheet是一个全局变量,有几行数据就执行几次,这个全局变量受data table iterations控制
2、local sheet 是一个局部变量,不受data table iterations控制,受action的action call properties 设置控制(执行n次自身action迭代)
global(设置为 run on all rows),action(设置为 run one iteration only)
1、双方都具有相同的测试数据,此时 global 和 action 的每行都要运行且同步运行
2、global 的行数大于 local的行数,当action执行到最后一行后,global以后所执行的行数,action都用最后一行数据去补
3、global的行数小于local的行数,action执行不到大于global行数的数据
global(设置为run on all rows),action(设置为 run on all rows)
1、global执行一行,action执行所有行
action 1: 进入百度首页,2、在搜索框中输入:12306:3、点击“百度一下”按钮
action2:1、校验在搜索结果页面中的搜索框中是否保留了刚才输入的字样
action 1:set objbrowser=description.create()
objbrowser(“micclass”).value=“browser”
set objpage=description.create()
objpage(“micclass”).value=“page”
set objwebedit=description.create()
objwebedit(“micclass”).value=“webedit”
objwebedit(“name”).value=“wd”
set objwebbutton=description.create()
objwebbutton("micclass").value="webbutton"
objwebbutton("name").value="百度一下"
browser(objbrowser).page(objpage).webedit(objwebedit).set “12306”
datatable(“a”,dtglobalsheet)=browser(objbrowser).page(objpage).webedit(objwebedit).getroproperty(“value”)
browser(objbrowser).page(objpage).webbutton(objwebbutton).click
set objwebbutton=nothing
set objwebedit=nothing
set objbrowser=nothing
action2:set objbrowser=description.create()
objbrowser(“micclass”).value=“browser”
set objpage=description.create()
objpage(“micclass”).value=“page”
set objwebedit=description.create()
objwebedit(“micclass”).value=“webedit”
objwebedit(“name”).value=“wd”
set all_owebedits=browser(objbrowser).page(objpage).childbiects(objwebedit)
for i=0 to all_owebedits.count-1
set owebedit=all_owebedits.item(i)
checkvalue =owebedit.getroproperty("value")
if checkvalue=datatable("a","action1") then
msgbox "pass"
else
msgbox"fail"
end if
next
set objwebedit=nothing
set objpage=nothing
set objbrowser=nothing
datatable 常用方法
1、动态的在datatable中添加新列并赋值
datatable.globalsheet.addparameter"column1","value1"
datatable.globalsheet.addparameter"column2","value2"
datatable.localsheet.addparameter"column3","value3"
2、动态的在datatable中增加新行并赋值
datatable.getsheet("action1").setcurrentrow(2) '设置数据插入的行数
datatable.value("column3","action1")="row2"
上一行代码也可以写成:datatable.value(1,2)="row2"
3、动态的获取datatable中指定列的值
getvalue 1=datatable("column1","global")
msgbox getvalue1
getvalue2=datatable("column3","action1")
msgbox getvalue2
getvalue3=datatable(1,"action")
msgbox getvalue3
循环获取action1的n列
for i=0 to n
msgbox datatable(i,"action")
next
'如果有两个action。分别为action1和action2.要想使他们在获取的时候保持读取的行数一致
currentrow=datatable.getsheet("action").getcurrentrow
datatable.getsheet("action2").setcurrentrow(currentrow)
动态的获取datatable中指定行的值
getvaluebyrow=datatable.getsheet(“action”).getparameter(“cloumn3”).valuebyrow(2)
msgbox getvaluebyrow
或
datatable.getsheet(“action1”).setcurrentrow(2)
getvaluebyrow=datatable.value(“column3”,“action1”)
msgbox getvaluebyrow
动态的获取datatable中当前行和设置当前行
‘1、获取当前行
msgbox datatable.getsheet("action1").getcurrengrow
’2、设置当前行
datatable.getsheet("action1").setcurrentrow(2)
获取datatable中总行数
allrowcount=datatable.getsheet("action1").getrowcount
msgbox allrowcount