qtp 问题汇总(不断更新)<二>

前边写过一边“qtp 问题汇总(不断更新)<一>”,这边作为QTP问题汇总的补充。

 

1.QTP关于web列表页面list单条信息处理方法。

    问题: qtp如何处理web页面列表信息,比如说:一个订单处理页面,有2条或条订单,在执行时,让qtp选择第一条或已知订单编号的一条,这块应该如何处理?
    例如:我选择“申请编号为:0810260100120002”的订单,然后点击“申请”进入申请处理页面。这个QTP中是如何实现?说明:订单编号是唯一的。
    业务逻辑是这样: 进入这个页面后,选择一个处理的订单,点击“申请”链接才能进入订单详细信息页面。因为qtp录制时,识别“申请”为一个Link,但是每次这个Llink的href是不一样的,回放的时候会报错,因为有多个“申请”对象,而且找不到匹配的,能不能让QTP模拟点击第一个如:0810260100120001 那条的“申请”链接 或能指定一个,这样回放才能成功。

    如图:

qtp <wbr>问题汇总(不断更新)<二>
    解决方法:

(1)采用描述性编程(2)设置对象的index属性。

    脚本如下:

    Browser("电子政务").Page("::::行政审批系统::::").Frame("9_2").Link("text:=申请","index:=0").Click    'index=0 表示取第一条记录。

    如果随机取,Browser("电子政务").Page("::::行政审批系统::::").Frame("9_2").Link("text:=申请","index:=0"&i).Click

 

 2.一个关于用户登录验证的QTP脚本实例

Browser("电子政务").Page("电子政务").WebEdit("user_code").Set DataTable("user_code", dtGlobalSheet)
Browser("电子政务").Page("电子政务").WebEdit("user_pass").Set DataTable("user_pass", dtGlobalSheet)
Browser("电子政务").Page("电子政务").Image("file name:=dl-9.jpg","name:=Image").Click
If  Browser("电子政务").Dialog("text:=Microsoft Internet Explorer").WinButton("text:=确定").exist Then
 Browser("电子政务").Dialog("text:=Microsoft Internet Explorer").WinButton("text:=确定").Click
  Reporter.ReportEvent micFail ,"用户登录测试","登录失败!"
 else
 Reporter.ReportEvent micPass ,"用户登录测试","登录成功!"

End If

用户登录数据表格如下:

qtp <wbr>问题汇总(不断更新)<二>

 以下资料来源:http://aribet.kuang.blog.cntesting.com/blog/htm/do_showone/tid_477.html

问->“实际项目录制脚本时经常遇到这种情况,伴随着系统不断的版本升级更新,需要我们在许多不同情况下回放同样的脚本,这样带来大量脚本中IE跳转地址的变动,有更好的方法能更快速,准确的实现这个需求吗?”

 

答->有的,一般情况下最好的方式是把IE跳转地址,在脚本中实现而不是在Record and run settings 中设置打开固定的IE请求地址。如下:InvokeApplication "C:\Program Files\Internet Explorer\IEXPLORE.EXE http://www.cntesting.net/"

------------------------------------------------------

问->”录制脚本中发现同一模块的有些功能,步骤基本类似,是否能优化一下代码而减小脚本 代码的缀余呢?”

 

答->是的若脚本中缀余代码过多,不仅看起来麻烦,维护起来也很不方便,所以我们应该在脚本中善于使用过程,函数,对功能模块步骤基本类似的可以写成过程或则函数来提供调用。

------------------------------------------------------

问->”能提供一些QTP常用的快捷键吗?这样我想工作的效率也会提高很多,用起来也方便”

 

答->几个重要又经常使用到的QTP快捷键应该记住: CTRL+Y专家视图编辑前进;CTRL+Z专家视图编辑后退; CTRL+G移动到指定行; F2重新命名Ative的名字; F9设定断点,F3录制,F5运行,F4停止。还有很多快捷键都是经常要用到的,要经常用了才能记牢,我在这就不一一写出来了。

------------------------------------------------------

问->”项目中,我们经常会遇到这样的需求,需要记录一套脚本的运行时间,如果手工一个个操作去记录下时间的话,一来不是很精确,二来确实手工的方法太麻烦,有中方法解决这个问题吗?”

 

答->”这个需求是经常遇到的,以前我做项目的时候临近上线要验收测试了,因为时间紧迫必须大概知道脚本的运行时间,当时比较傻一个脚本手工的拿着个表记录时间,后来研究了一下,还是有方法的:在运行脚本的下一行记录下开始时间: startTme = timer; 在结束脚本的上一行记录下结束时间: endTime = timer; 然后 加一句这样的代码 runtime= round(endTime – startTime),2) 。用四舍五入的方法算出这个时间差就是脚本的运行时间。

------------------------------------------------------

问->”QTP能录下键盘的操作吗?能把我移动窗口的动作录制下来吗?”

 

答->”可以的,但是我用过的就Table键,如果要实现键盘按键的操作需要自己编码了,要把一些微小的操作录制下来,那就得启用微小录制了。

 

------------------------------------------------------

问->”我需要使用不同Action 中 Datatable 里面的值,实现起来复杂吗?”

 

答->不复杂: DataTable.GetSheet("Action1").GetParameter("cntesting").ValueByRow(1)。

 

------------------------------------------------------

问->”项目中有这样的需求,需要我们通过修改系统时间来做一笔定单,但是我总不能手动去修改啊.”

 

答->呵呵,都手动去了都不需要自动化了,修改系统时间实际项目中很多要用到,需要自己写个dat文件在本地,里面设置好所要修改的时间,然后在QTP中执行这个dat文件,可以实现这个需求。Dat文件里面只要有这几代码就可以: time%1, 然后在QTP中, SystemUtil.Run "c:\settime.bat","所要修改的具体时间”。

------------------------------------------------------ 

问->”经常遇到这样的情况,因为要验证弹出的窗口里面的内容,所以在IE属性中设置了不阻止窗口,但问题出来了窗口有时候弹出有时候不弹真奇怪了,如果不弹出来脚本中又录制有则会报错,要怎么去判断窗口是否弹出呢?”

 

答->有一个方法 Exit 。是这样用的  if Browser(…).Page(…)…().exit then ……

------------------------------------------------------

问:”时间控件QTP能录制下来吗?”

 

答:对于时间控件的录制问题与开发使用的技术有关,我可以建议你用种方法,但是不同技术开发出的控件可能录制情况也有所不同。试试总比不试的好: Browser("xxx").Page("xxx").WebEdit("StartDate").Object.value=DataTable("StarDate", dtLocalSheet)

------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值