测试人员告诉我的第一个bug

来源:互联网 发布:java随机生成10以内的 编辑:程序博客网 时间:2024/05/16 00:25

昨天周一,将项目移交测试人员,下午时候测试人员告诉我了一个bug,


新建组☞输入组名☞点击确定

此时出现了卡顿现象,该弹窗没有消失,测试人员连续点了多次确定,造成的结果是当卡顿消失后,出现了好多同名的组。

但只有这一次卡顿,也无法再次测验,于是想到了一个模拟卡顿的方法:给数据库表加锁。

MySQL数据库,工具是navicat:

加锁语句:lock tables 表名  write;    这句话可以阻止向表里添加数据。

此时在页面连续点击确定后弹窗不会消失,可以连续点击。

然后解锁:unlock tables;

解锁完毕后,该表里会突然多出好几条相同名字的记录,此时,模拟成功。

问题出现原因:表上锁后,添加操作的第一条数据已经进入添加阶段,但是没法添加成功,后台代码还未运行到给页面做返回的结尾。此时第二条、第三条。数据依次进来,其状态和第一条类似,表解锁后,多条记录在很短的时间里完成添加操作,导致出现同名现象。

解决办法:给页面要显示的主要内容加上唯一约束。

唯一约束,该列可以有空数据,但是不能有重复的数据。

添加唯一约束方式:

1.创建表时:

       CREATE TABLE t_user (
      Id int(11) NOT NULL AUTO_INCREMENT,  -- 自增
      username varchar(18) NOT NULL unique,  -- 唯一性约束

      password varchar(18) NOT NULL,
       PRIMARY KEY (`Id`)
      ) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;

2.已经建好的表
  alter table `t_user` add unique(`username`);






0 0
原创粉丝点击