nanmu 发表于 2009-12-2 17:26:51

请教1个账号在两个客户端同时兑换一件商品的测试方法

具体是这样的:一个兑奖平台,使用积分兑换商品,商品分A类、B类、C类,其中A类B类商品兑换处理调用的同一个方法1处理,C类属于另外一个方法2处理。
请教大家下列这两种情况怎样测试:1.模拟同一账号 在不同地点同时登录兑换 A类 或 B类商品(注:当前账号积分 只能兑换 A类 或B类商品中的一件)
                              2.模拟不同账号同时兑换只剩下1件的 A类商品 (注:所有账号均满足兑换条件)
有什么好的测试方法,或者借助什么工具可以实现上述情况的测试

chare 发表于 2009-12-4 12:20:52

这个我觉得可以换个思路测试。
因为兑换一件商品,兑换后应该有个状态标示吧。数据库有对应数据
你让开发的写的sql语句或者自己写
看能够一条sql语句同时修改让商品到达已经兑换的状态。这样才能保证同一性,
其实这个开发应该要做限制的。

nanmu 发表于 2009-12-8 12:10:23

回复 2# 的帖子

这个开发刚开始做了限制,可是没有限制住,他们写的锁没有生效。所以还是要进行测试的,找不到很好的方法。

Jackc 发表于 2009-12-8 13:01:59

偶觉得“同时”的概念有点模糊,换成绝对时间的话,是没有同时这个概念的。

首先,设置两个账号的初始状态,然后在“领取函数”的输入API写三个输入参数:
1.账号甲领取礼品A
2.账号甲领取礼品B
3.账号乙领取礼品A

感觉如果自己定义领取的顺序比较繁琐,可以写一个随机排序的函数,随机排列这3个参数进入“领取函数”的顺序。

设计输出结果的检查,分几种情况:
1在3前,甲账号最终礼品数为1
3在1钱,甲账号礼品为B,乙礼品为A
(结果没覆盖完,LZ自己再加些吧)

最后成型的设计用例:初始化账户数据——排序操作——执行操作——检查结果(反复循环N次)


以上的测试方法可以通过挂.DLL文件或直接在源码中添加测试码(不推荐)来实现。
页: [1]
查看完整版本: 请教1个账号在两个客户端同时兑换一件商品的测试方法