QTP-基础实例(1)

新手初学 有什么不对的地方请指出

对于Excel表和datatable的基础知识点应用 代码仅供参考,应为我是用的WPS啊!!! 坑爹的,公司不准装office 。

QTP对于WPS的支持度不高 ,我暂时没找到如何自动创建WPS的Excel 所以是手动在桌面创建的需要的Excel环境。

话不多说 上例子吧

首先题目

有一个瓶子放入2只虫子 2只虫子同时不停的循环分裂 1分2 2分4这样 当虫子分裂到装满瓶子时 停止

模拟需求: 

1:我们需要拿到每次分裂数量放入Excel表内全部显示

2:拿另一份Excel表内的数值做对比  当然 另一份表的内容需要我们自己填

3:对比结束时 Excel表内显示正确的数值 并且 2份表内有不一样的地方 显示出不一样数值

配置需要的条件

1:datatable内写入3个参数2只虫子的基数各为1只所以往 Global  A,B列下填入基础数值1,还有一个瓶子 这个瓶子的装满数量我们就随便输入一个1000就可以了

2:应为使用的是WPS不知道怎么自动创建文档 只能手动了 ,好想吐槽啊!! 在桌面创建一个Excel表 我的表名为 Flc_1 这个是用来存入正确数据的  再创建一个叫flc表 表的格式要和前面一个一样 数据随便填好了

(1)自己写的Excel表 如果QTP想读取到数据,必须在每列的第一行写入列名,并不是Excel上面已经写好的ABCD这种  QTP往Excel表内写入则不用写

(2)表里的Sheet名要跟QTP内Sheet名一致 要不然会出一些奇怪的问题

3:在datatable创建Action1,Action2两个表,用于存储临时数据,这步其实很省掉,但是是个知识点 所以还是加上了

上实例

'设置一个数组用来添加2个数0据

Dim arrArray(2)
Dim c1,c2
Dim arrNew
Dim arrcount
Dim arr_1
Dim arr
Dim count

count=DataTable.GetRowCount
arrcount=cint(DataTable.Value(3,"Global"))
DataTable.localsheet.AddParameter "错误报告",""
DataTable.LocalSheet.AddParameter "错误数据",""
mian()
shuju()

Function flc(arrArray_1)

'当数组内数值小于1时才执行从Datatable内读取数据
If arrArray(0)<1 Then
    arrArray(0)=DataTable.Value(1,"Global")
    arrArray(1)=DataTable.Value(2,"Global")
End If

'分裂虫    
arrArray(0)=arrArray(0)*2
arrArray(1)=arrArray(1)*2

'返回数组
flc=arrArray

End Function

'保存到Data
Function panduan

DataTable.GetSheet("Action1").SetCurrentRow(count)

    MsgBox " A= " &arrNew(0) &"  B=" &arrNew(1)
    DataTable.Value("A","Action1")=arrNew(0)
    DataTable.Value("B","Action1")=arrNew(1)        
    arr=arrNew(0)+arrNew(1)
   
        DataTable.Value("C","Action1")= arr
        count=count+1
        

    
    
End Function



'做数据对比
Function shuju

Dim age(100)
Dim age_1(100)
    a= "C:\Documents and Settings\Administrator\桌面\Flc_1.xls"
    b= "C:\Documents and Settings\Administrator\桌面\flc.xls"
    
    
    '导入指定的sheet
    DataTable.ImportSheet a,"Action1","Action2"
    DataTable.ImportSheet b,"Action1","Action1"
    count=DataTable.GetSheet("Action1").GetRowCount
    MsgBox count


    For i = 1 To count Step 1
        
        DataTable.GetSheet("Action2").SetCurrentRow(i)
        age(i)=DataTable.GetSheet("Action1").GetParameter("C").ValueByRow(i)
        age_1(i)=DataTable.GetSheet("Action2").GetParameter("C").ValueByRow(i)
        MsgBox "age=" &age(i) &"   age_1=" &age_1(i)
        
        If age(i)=age_1(i) Then
            DataTable.Value("错误报告","Action2")="Pass"
            else
            DataTable.Value("错误报告","Action2")="Ng"
            DataTable.Value("错误数据","Action2")=age(i)
            
        End If
        
        
    Next
    
    
DataTable.Export "C:\Documents and Settings\Administrator\桌面\Flc_1.xls"
    
    
    
End Function

'主结构
Function mian
    
While arrcount>0

    arrNew =flc(arrNew)
    panduan()

    
    If arr >= arrcount Then
    arrcount=0
    End If

    '保存到一个excel里面
    DataTable.Export "C:\Documents and Settings\Administrator\桌面\Flc_1.xls"

Wend
    
    
End Function
最后在Excel的显示结果












     

 

posted @ 2014-05-09 17:56  师傅被妖怪抓走了  阅读(352)  评论(0编辑  收藏  举报