51Testing软件测试论坛

标题: 问题咨询: 如何通过数据库动态参数化参数? [打印本页]

作者: jzl2004    时间: 2007-3-29 09:38
标题: 问题咨询: 如何通过数据库动态参数化参数?
用实例描述:

    现在碰到一个场景,是这样的,用户登陆后,进入现金收费页面,然后“输入日期”和“用户编号”点击查询,查询到数据,这时候数据库该数据的状态由0变到9(状态为0是可以查询到的数据),然后输入“收费金额”后开始收费,收费成功后,该数据的状态由9变成了2(只有状态为9的数据才可以收费),开始做反收费,输入用户编号,点击查询,该数据状态由2变成了1(状态为2的数据才可以被反收费查询到),查询到数据后,点击“反收费”,反收费成功后,状态由1变成了0(只有状态为1的数据才可以反收费),完成了场景

   那么在这个场景中,数据状态的变化: 0-》9-》2-》1->0,   过程中只要由数据编号和数据状态匹配,就可以操作整个过程中的任一环节, 在脚本录制好了后,我为了确保过程中任一环境的操作错误不影响到下一环节的操作,我在参数化的时候,在每个环境开始前,直接通过参数化连接数据库,查询满足要求的用户编号和状态,然后使用,理想情况下,每个环节都不受前面环节影响,每个环节都能够确保数据是可用的,

  但在实际操作中,却发现,脚本连接数据库的SQL语句居然不是动态的,而是静态的,那么每个迭代来的时候,脚本并没有每次都去执行SQL语句,读取新的数据,所以参数库的数据还是静态的,这样,这么做法已经失败

       请教: 对这种想动态参数,直接从数据库取数据的方式,是否可行,希望有人指导
作者: duola1119    时间: 2007-3-29 11:03
大致看过你的问题对你的流程不是很明白,
但是对于数据库提取数据来参数化的做法针对这种情况我建议你不要用.
数据库参数化的参数是从数据库中取当前数据库中存储的数据,而无法取其中变化的数据.假如你的数据是在你取出来的参数插入到数据库中的.必定就会失败.就像你说的一样.它是静态的.
你可以用关联来获取不同页面中的那个数据状态标志.
作者: jzl2004    时间: 2007-3-29 11:19
若是通过关联做,从收费查询-收费-反收费查询-反收费始终通过一个数据来做,理想状况是这样的,实际上脚本也是这么录制的,但在并发过程中,这么做的实际情况不理想

  例如: 一个数据在收费失败的时候,那么他的状态置为为”9“,无法进行收费、反收费查询、反收费,这个错误我可以记录下拉,但问题是,下一次迭代时,该数据已经无法使用了,因为每一次迭代开始都是要求状态为”0“,也就是可以查询的数据,只要数据状态不为0,就不能够查询到,那么做到最后,可以使用的有效数据会越来越少,而出错率越来越大,这样的并发测试的有效性就没有了
作者: lona_ma    时间: 2007-3-29 14:57
记得本论坛一位大哥写了一个动态加载数据库的dll,你可以搜一下
作者: Zee    时间: 2007-3-29 15:51
看的比较迷糊。
作者: yuezhiyin    时间: 2007-3-29 17:18
我也遇到类似的问题!

客户端发送了 一个 select 语句!

receive 时 收到的不是具体数值 而是 winsocket的乱码

所以不能和后面值做关联!又不能从数据库里动态取数据

这个帖子一定要顶上去
作者: maggiee_yu    时间: 2007-8-3 11:23
我也遇到,很郁闷,不知道怎么解决,数据库是DB2的




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