进行Inception基本功能测试,尽量覆盖测试场景,后面再讲OSC改表测试
根据文档,需要配置了一份适合当前环境的配置文件,配置文件中备份用户和密码需要自己配置。
inception配置文件
|
|
测试表SQL,用官方文档的test.py改改,开始基本功能测试
|
|
建表规则
针对下面的建表要求进行逐一测试,不通过的error信息记录下来。
规则 | errormessage |
---|---|
存储引擎必须为innodb | Execute: Unknown storage engine ‘mysiam’ |
建表支持的字符集必须为utf8mb4 | Set charset to one of ‘utf8mb4’ for table ‘liuqinming_test’. |
表没有注释时报错 | Set comments for table ‘liuqinming_test’. |
列没有注释时报错 | Column ‘b’ in table ‘liuqinming_test’ have no comments. |
如果没有主键,则报错 | Set a primary key for table ‘liuqinming_test’.Incorrect table definition; there can be only one auto column and it must be defined as a key. |
不支持enum,set,bit数据类型 | Not supported data type on field: ‘status’. |
不允许存在MySQL的关键字 | Identifier ‘status’ is keyword in MySQL. |
列属性要有默认值 | Set Default value for column ‘status’ in table ‘liuqinming_test’ |
列默认值为NULL,报错 | Column ‘a’ in table ‘liuqinming_test’ is not allowed to been nullable. |
自增列为无符号型 | Set unsigned attribute on auto increment column in table ‘liuqinming_test’ |
自增列的名字不为id,则报错 | Auto increment column ‘tid’ is meaningful? it’s dangerous! |
自增列的值指定的不为1,则报错 | Set auto-increment initialize value to 1. |
自增列的类型不为int或者bigint时报错 | Set auto-increment data type to int or bigint. |
当char类型的长度大于16时,提示将其转换为VARCHAR | Set column ‘a’ to VARCHAR type. |
检查索引名字前缀是否为”idx“,检查唯一索引前缀是不是”uniq“,不是的话,报错 | Index ‘idxx_a’ in table ‘liuqinmingtest’ need ‘idx‘ prefix.Index ‘uniqx_b’ in table ‘liuqinmingtest’ need ‘uniq‘ prefix. |
timestamp类型要指定默认值 | Set default value for timestamp column ‘addtime’.Set Default value for column ‘addtime’ in table ‘liuqinming_test’ |
一个表中,最大的索引数目为16个 | Too many keys specified in table ‘liuqinming_test’, max 16 keys allowed. |
一个索引中,列的最大个数为5个 | Too many key parts in Key ‘idx_o’ in table ‘liuqinming_test’ specified, max 5 parts allowed. |
不支持外键 | Foreign key is not allowed in table ‘liuqinming_test’. |
不支持分区表 | Unknown error 1289 |
插入
- 插入语句必须是insert into table (xx,xx..) values(xx,xx..),挂上列属性
- 支持多条insert的插入语句 insert into tableA (xx,xx..) values(xx,xx..);insert into tableA (xx,xx..) values(xx,xx..);….
- 不支持replace操作
执行过程中的违反规则的一些其他错误信息
规则 | errormessage |
---|---|
检查insert语句的列属性 | Set the field list for insert statements |
如果指定列属性个数和指定value个数不相等,报错 | Column count doesn’t match value count at row 1 |
删除
- delete语句必须带有where条件,支持in的语法
- 支持多条delete语句,delete from test where id=1;delete from test where id=2;….
执行过程中的违反规则的一些其他错误信息
规则 | errormessage |
---|---|
必须带有where条件 | set the where condition for select statement. |
查询
不支持select查询
改表
- 测试通过支持所有alter标准语法
- 删除列
- 增加列 (不能是null,必须要加默认值,必须有列注释)
- 修改列的类型信息 支持change和modify语法
- 添加索引 索引前缀必须为”idx_”
- 添加唯一限制条件索引 “uniq_”
- 删除索引
执行过程中的违反规则的一些其他错误信息
规则 | errormessage |
---|---|
在多个改同一个表的语句出现是,报错,提示合成一个 | Merge the alter statement for table ‘test’ to ONE. |
增加的列已存在 | Column ‘col4’ have existed. |
删除的列不存在 | Column ‘col5’ not existed |
其他测试情况信息
规则 | errormessage |
---|---|
表如果存在的话 | Table ‘liuqinming_test’ already exists |
在一个修改语句中,预计影响的最大行数,超过5000就报错 | Update rows more then 5000. |
在DML语句中使用了LIMIT时,报错 | Limit is not allowed in update/delete statement |
在DML语句中使用了Order By时,报错 | Order by is not allowed in update/delete statement. |
order by rand时,报错 |