51Testing软件测试论坛

标题: 设置了Run on all rows为什么没次只读第一行数据 [打印本页]

作者: tanky    时间: 2008-7-2 16:21
标题: 设置了Run on all rows为什么没次只读第一行数据
我用DataTable.ImportSheet把三行数据倒入到Data Table的Global页
然后设置Run on all rows
运行时确实跑了三遍,但每次都只读取第一行数据,这是什么原因??

[ 本帖最后由 tanky 于 2008-7-2 16:27 编辑 ]
作者: jacksboy    时间: 2008-7-2 16:59
EXCEL表里是选中的第一行么,三行数据之间不要有空行

脚本里引用的数据有做参数化么
作者: ClareLiu    时间: 2008-7-2 17:12
可以设置一下Setting-Run, From 1, 3
作者: tanky    时间: 2008-7-2 17:14
谢谢楼上的。问题继续,接2楼的:
1、EXCEL表为什么要选中第一行
2、三行数据之间没有空行
3、我没有要做参数化,只是要逐行读取Global页的数据,难道QTP只能对参数化的数据才能逐行读取吗?

[ 本帖最后由 tanky 于 2008-7-2 17:15 编辑 ]
作者: jacksboy    时间: 2008-7-2 19:28
1:试了一下,不选中第一行好象可以

3,比如录个这样的脚本: Dialog("Login").WinEdit("Agent Name:").Set DataTable("p_Text", dtGlobalSheet),
如果你不做参数化p_Text,那下一次再读到这里的时候,EXCEL表里的值已经变掉了,怎么会不报错呢
作者: kakamissyou    时间: 2008-7-2 19:38
标题: 你是自己读吧?
那要写个 for语句就可以了.很简单的.
作者: tanky    时间: 2008-7-2 20:00
我只是要读测试用的数据,存入变量供脚本使用。如:
DataTable.ImportSheet   "D:\TestData.xls","测试数据","Global"
strUserName =  DataTable.Value ("用户名", "Global")  
strPassword =  DataTable.Value ("密码", "Global")
如果写for语句的话不能跨Action,而我又有多个Action,是一个连贯的过程。
除非在一个Action里面用for语句控制调用其他Action。那么,怎么让QTP指定某些Actio不运行?
如果Run on all rows确实只是为参数化服务的,那么就只好放弃DataTable.ImportSheet。
乖乖用参数化好了。
作者: tanky    时间: 2008-7-2 20:16
回5楼:
3,比如录个这样的脚本: Dialog("Login").WinEdit("Agent Name:").Set DataTable("p_Text", dtGlobalSheet),
如果你不做参数化p_Text,那下一次再读到这里的时候,EXCEL表里的值已经变掉了,怎么会不报错呢

我的目的就是这样的啊,第二次读到这里的时候,载入另外的测试数据。set后面是可以接一个动态的值。不一定要参数化,接个变量也可以啊。
只不过现实是:用DataTable.ImportSheet将测试数据加载到DataTable的情况下,QTP进入第二次循环的时候,仍然载入的是DataTable中第一行的数据。
如果用参数化的话,应该是能自动去读第二行数居的。




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