51Testing软件测试论坛

标题: QTP录制中系统自动生成的NO号如何参数化,请指教 [打印本页]

作者: madeleine    时间: 2007-1-8 10:26
标题: QTP录制中系统自动生成的NO号如何参数化,请指教
我刚开始学习QTP,录制中遇到系统自动生成的NO号,不知如何参数化,例如:新增一个订单时,订单号是系统自动生成的,我在search时需要录入这个订单号,参数化后,运行时这个订单号就无法识别了,请问应该怎么处理?请指教,谢谢!
作者: 风过无息    时间: 2007-1-8 10:38
1、该订单号在数据库中有吗?

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

如果该不清楚的,把你的问题说详细点,最好有图。呵呵。
作者: madeleine    时间: 2007-1-8 11:25
谢谢您的回复!
我录制脚本时是将新增、查询、修改、删除分开录制,然后放到一起运行的,请问这样做对吗?
我新增时系统自动生成了一个Guarantee Ref. No.(2005513),我在search时录入这个No,能查询出来,但我运行完后,就删除了这个No,如果这时有人重新新增了另一个单据,就会占用我参数化的这个Guarantee Ref. No.(2005513),就查不到我原来的那个No了,请问应该怎么处理呢?附件是相关的截屏

[ 本帖最后由 madeleine 于 2007-1-11 11:33 编辑 ]
作者: 风过无息    时间: 2007-1-8 13:40
你可以用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里面就可以使用了。
作者: madeleine    时间: 2007-1-8 15:18
标题: 怎么取订单号?
谢谢答复!但是我新增订单后,在新增这个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!")
作者: 风过无息    时间: 2007-1-8 16:44
那试一下从数据库里面找。
作者: madeleine    时间: 2007-1-22 12:44
sorry,能再请教一下怎么从数据库里面取出系统自动生成,但没有在当前新增页面显示出来的订单NO呢?
作者: madeleine    时间: 2007-1-29 14:34
标题: 继续求教
如图一所示,没有显示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,没有用共享数据库,是否应该使用共享数据库呢?
作者: yangkinki    时间: 2007-1-29 15:44
首先,这个no号码不需要去数据库中进行查询,如果要从数据库中查询才知道你要查的是哪个no的数据,那么只能说明这是系统本身的不完善;再次,楼主想要测试什么? 这个no可以从其他地方得到的,例如gettoproperty方法,然后再在这个查询处输入这个得到的值进行查询,当然如果不闲麻烦,从数据库中得到那也是行的; 对这个no进行参数化,先要知道这个no的变化规则,然后用正则表达式或者编写语句进行处理
作者: madeleine    时间: 2007-1-29 16:17
我的目的是要在查询时输入新增的no号码来找到这笔单据,但在新增页面没有这个栏位,我也知道用gettoproperty方法是返回object description中的当前值,用GetRoporperty返回的是当前的值,但在新增界面并没有这个栏位,我应该到哪里去找到Index这个属性和值呀?
作者: yangkinki    时间: 2007-1-29 17:04
实际操作中,你不知道这个no,那么你怎么会输入这个no进行查询,你可以从其他地方得到这个no,如果其他地方都得不到这个no,使用这个系统的用户那么根据什么来查询呢
作者: madeleine    时间: 2007-1-29 17:26
我可以通过part no和日期查到这个no,但这样可能会查到多笔数据,我想通过输入BO No查到这一笔数据,但不知应该在哪里找到,前面#4的风过无息说过用GetROProperty能找到,但我不知道应该将取订单号的语句放在哪个action?
作者: 风过无息    时间: 2007-1-29 20:15
你把取得的BO No放到datatable里面不就可以了。
作者: madeleine    时间: 2007-1-30 11:31
我是将BO No放到查询的datatable里面的,录制脚本时是将新增、查询、修改、删除分开录制,然后放到一起运行的,但我运行完后,就删除了这个No,如果这时有人重新新增了另一个单据,就会占用我已参数化的这个No.(BO072000024),就查不到我原来的那笔数据了
作者: GMT008    时间: 2007-2-2 01:33
参数化的数据是不怕删除的啊,不太明白madeleine 的意思




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