51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3450|回复: 14
打印 上一主题 下一主题

[原创] QTP录制中系统自动生成的NO号如何参数化,请指教

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-1-8 10:26:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我刚开始学习QTP,录制中遇到系统自动生成的NO号,不知如何参数化,例如:新增一个订单时,订单号是系统自动生成的,我在search时需要录入这个订单号,参数化后,运行时这个订单号就无法识别了,请问应该怎么处理?请指教,谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-1-8 10:38:08 | 只看该作者
1、该订单号在数据库中有吗?

2、没有话,可以用GetROProperty 试一下。

如果该不清楚的,把你的问题说详细点,最好有图。呵呵。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-1-8 11:25:21 | 只看该作者
谢谢您的回复!
我录制脚本时是将新增、查询、修改、删除分开录制,然后放到一起运行的,请问这样做对吗?
我新增时系统自动生成了一个Guarantee Ref. No.(2005513),我在search时录入这个No,能查询出来,但我运行完后,就删除了这个No,如果这时有人重新新增了另一个单据,就会占用我参数化的这个Guarantee Ref. No.(2005513),就查不到我原来的那个No了,请问应该怎么处理呢?附件是相关的截屏

[ 本帖最后由 madeleine 于 2007-1-11 11:33 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-1-8 13:40:09 | 只看该作者
你可以用GetROProperty 试一下。
1、首先把订单号取出来,比如link_href = Browser("Mercury Technologies").Page("Mercury Technologies").Link("Jobs").GetROProperty("href") 这是把一个HREF的属性取出来放在变量里面。
2、然后可以把这个值放在datatable里面或者用action里面参数(可参照:http://blog.51testing.com/?3528/action_viewspace_itemid_1380.html
3、在别的action里面就可以使用了。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-1-8 15:18:38 | 只看该作者

怎么取订单号?

谢谢答复!但是我新增订单后,在新增这个action里面并没有显示订单号的页面,怎么才能将订单号取出来呢?以下是我录制的脚本

Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame").Link("Guarantee").Click
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_2").Image("BtnAdd").Click
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_3").WebEdit("productModelNo").Set DataTable("product_model_no", dtLocalSheet)
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_3").WebEdit("productSerialNo").Set DataTable("product_serial_no1", dtLocalSheet)
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_3").WebList("guaranteeStatus").Select "SHIPPED FROM FACTORY"
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_6").WebList("guaranteeStatus").Check CheckPoint("guaranteeStatus")
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_3").Image("BtnSave").Click
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_6").Check CheckPoint("Save Successfully!")
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-1-8 16:44:48 | 只看该作者
那试一下从数据库里面找。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-1-22 12:44:21 | 只看该作者
sorry,能再请教一下怎么从数据库里面取出系统自动生成,但没有在当前新增页面显示出来的订单NO呢?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2007-1-29 14:34:37 | 只看该作者

继续求教

如图一所示,没有显示BO No的栏位,我通过其它查询方式找到了刚才新增的这笔订单BO072000024,在图二所示的BO No栏输入BO072000024,在edit page可以找到这个NO,请问怎么在脚本中找到并参数化这个BO No,是在新增action还是其它action里面用GetROProperty方法?也就是说
link_href=Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_2").Link("BO").GetROProperty("href")
这个语句应该放在哪个action的什么位置呢?我是分别录制的新增、查询、修改action,没有用共享数据库,是否应该使用共享数据库呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2015-4-23 14:35
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    9#
    发表于 2007-1-29 15:44:23 | 只看该作者
    首先,这个no号码不需要去数据库中进行查询,如果要从数据库中查询才知道你要查的是哪个no的数据,那么只能说明这是系统本身的不完善;再次,楼主想要测试什么? 这个no可以从其他地方得到的,例如gettoproperty方法,然后再在这个查询处输入这个得到的值进行查询,当然如果不闲麻烦,从数据库中得到那也是行的; 对这个no进行参数化,先要知道这个no的变化规则,然后用正则表达式或者编写语句进行处理
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2007-1-29 16:17:22 | 只看该作者
    我的目的是要在查询时输入新增的no号码来找到这笔单据,但在新增页面没有这个栏位,我也知道用gettoproperty方法是返回object description中的当前值,用GetRoporperty返回的是当前的值,但在新增界面并没有这个栏位,我应该到哪里去找到Index这个属性和值呀?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2015-4-23 14:35
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    11#
    发表于 2007-1-29 17:04:15 | 只看该作者
    实际操作中,你不知道这个no,那么你怎么会输入这个no进行查询,你可以从其他地方得到这个no,如果其他地方都得不到这个no,使用这个系统的用户那么根据什么来查询呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2007-1-29 17:26:04 | 只看该作者
    我可以通过part no和日期查到这个no,但这样可能会查到多笔数据,我想通过输入BO No查到这一笔数据,但不知应该在哪里找到,前面#4的风过无息说过用GetROProperty能找到,但我不知道应该将取订单号的语句放在哪个action?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-1-29 20:15:35 | 只看该作者
    你把取得的BO No放到datatable里面不就可以了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2007-1-30 11:31:37 | 只看该作者
    我是将BO No放到查询的datatable里面的,录制脚本时是将新增、查询、修改、删除分开录制,然后放到一起运行的,但我运行完后,就删除了这个No,如果这时有人重新新增了另一个单据,就会占用我已参数化的这个No.(BO072000024),就查不到我原来的那笔数据了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-2-2 01:33:00 | 只看该作者
    参数化的数据是不怕删除的啊,不太明白madeleine 的意思
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-10-5 23:30 , Processed in 0.102945 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表