QTP实例fight应用Datatable读取第二行报错原因分析

上一篇 / 下一篇  2010-07-29 17:47:20 / 个人分类:测试工具

今天BSTT群里有群友碰到一个问题Datatable读取第二行报错,示例如下.

Dialog("Login").WinEdit("Agent Name:").Set DataTable("name", dtGlobalSheet)

Dialog("Login").WinEdit("Agent Name:").Type micTab

Dialog("Login").WinEdit("Password:").SetSecure DataTable("password", dtGlobalSheet)

Dialog("Login").WinButton("OK").Click

Window("Flight Reservation").Close

对登录的用户名“Agent Name”和“Password”使用Datatable进行了参数化,回放是发现Datatable读取第二行报错。

修证如下:将record and run settings中选项设置为“record and run test on and open……”,代码修改如下。

SystemUtil.Run "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","", "D:\Program Files\HP\QuickTest Professional\samples\flight\app\", "open"

Dialog("Login").WinEdit("Agent Name:").Set DataTable("name", dtGlobalSheet)

Dialog("Login").WinEdit("Agent Name:").Type micTab

Dialog("Login").WinEdit("Password:").SetSecure DataTable("password", dtGlobalSheet)

Dialog("Login").WinButton("OK").Click

Window("Flight Reservation").Close

原因分析:原来record and run settings中选项设置为“applications specified below”程序fight只运行一次,回放循环时是不会再运行fight一次的。直接” Dialog("Login").WinEdit("Agent Name:").Set DataTable("name", dtGlobalSheet)开始,而这时实际”Dialog("Login")对象是没有打开的,怎么可能会成功呢。现在解决的方法是直接SystemUtil.Run函数打开fight,不通过QTP来打开fight,这样就不存在问题了。


TAG:

大傻测试空间! 引用 删除 liaoxj   /   2010-07-30 10:20:36
对!
引用 删除 mhgzs   /   2010-07-30 09:58:16
求教:如果不用qtp打开flight,那么循环读取datatable的数据是不需要循环语句的.我说的对不?
其他的和你所说的基本一样.......谢谢 高人指点,我刚学一星期
 

评分:0

我来说两句

Open Toolbar