51Testing软件测试论坛

标题: 请问,如何通过代码获取DataTable中Action1中第N列的值 [打印本页]

作者: 秦菲    时间: 2013-1-6 16:19
标题: 请问,如何通过代码获取DataTable中Action1中第N列的值
今天研究了哈利用DataTable参数化的情况,遇到了一个问题
具体问题如下:
我的DataTable中的Action1(Local Sheet)中有3行数据
比如
第一行  第二行 第三行
111     aaa       xxx
222     bbb      yyy
333     cccc

请问我如何获取到第二行的行数?并取得其中的值了?
作者: 黑羽祭    时间: 2013-1-6 16:24
又是个DataTable的问题
有谁常用DataTable的来解答下吧。
取值不难,但是要和QTP的设置结合起来用,如果只Run一行,那要取第二行的值就麻烦了。我没深入研究过DataTable。
作者: 秦菲    时间: 2013-1-6 16:40
谢谢版主关注

因为用到这个的几率还是比较高的,所以还希望哪位高手能帮哈忙,谢谢哈
作者: 泰然    时间: 2013-1-6 16:47
首先,你有这样的要求,基本上应该是脚本设计不合理。建议你再考虑一下实现的方法。
如果一定要这么做,你看一看DataTable对象的SetCurrentRow(x)、SetNextRow和SetPrevRow方法。
作者: 泰然    时间: 2013-1-6 16:49
其实这些问题,只要多用F1,都能找到答案的,多专研更提高。
作者: 秦菲    时间: 2013-1-6 17:16
回复 4# 泰然


    怎么会不合理了,不是很明白
比如说你想给三个不同的输入框填写N多个数据,需要怎么做了?
作者: 泰然    时间: 2013-1-7 09:40
哦。你是想每个输入框都要做参数化?

2个办法,1是对参数做笛卡尔乘积,比如A输入框有参数1和2,B输入框有参数“A0”和“B0”,那么你做参数化应该是:
A           B
1           A0
1           B0
2           A0
2           B0
2是分action做,层级式。
作者: 黑羽祭    时间: 2013-1-7 11:05
回复 6# 秦菲


    嗯,如果参数化,你的写法是有点问题。
如果你使用DataTable,那就把数据以行看,如果A B C三个输入框做参数化,就要写
A        B       C  
1        1        1
1        1        2
1        2        1
1        2        2
2        1        1
2        1        2
1        2        1
1        2        2
如果你想下面这样数着吧所有的可能选择列举出来,让脚本自己组合测试。
A        B        C
1        1        1
2        2        3
3
那就试试Eom和读取外部Excel的方法来完成吧。
作者: 秦菲    时间: 2013-1-7 16:29
都是哦,可以用外部的Excel来做参数化的哇,呵呵,谢谢大家,受教了,那我去研究一下QTP和Excel的连用,研究好了,再来给大家分享经验哈
作者: 154957012    时间: 2013-1-7 17:40
按节点取值,可以考虑自己构建 XML
作者: xiaoyu1981    时间: 2013-1-10 17:27
DataTable.SetCurrentRow(2)
MsgBox DataTable.GetSheet("Action1").GetParameter("列名").Value
作者: cellule    时间: 2013-1-11 13:16
http://bbs.51testing.com/thread-766324-1-1.html

可以看看 这帖子
作者: 跑跑跑跑    时间: 2013-1-14 12:19
DataTable.GetSheet("Action1").GetParameter("列名").ValueByRow
作者: yulu913    时间: 2013-1-15 12:36
还是引用外部的exel好用
作者: 枫殇    时间: 2013-4-16 20:23
tValue2=DataTable.GetSheet("Action1").GetParameter("XX").ValueByRow(2)




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2