接口平台用户反馈一个问题。及执行测试计划后测试计划列表中并没有显示该执行的测试计划。发现又又又出现了mysql数据库字段长度限制的问题
File "/app/httpRequest/controller/controller.py", line 121, in _execute_one_case
series_case['case_type'])
pymysql.err.DataError: (1406, "Data too long for column 'req_uri' at row 1")
发现req_uri
字段长度为 varchar(5000)
,一怒之下直接修改成longtext
类型,搞定没有报错
但是还没过几分钟,又上报了另外的异常
Warning(1366, "Incorrect string value: '\xE6\x8E\xA5\xE5\x8F\xA3...' for column 'req_uri' at row 1")
what?
只能默默查看请求的参数数据,原来请求中有中文字符! uri中竟然有中文字符?这不是重点,重点是为什么变更成longtext
类型就会出现异常?
那text
数据类型呢?没有!
讲道理这个异常错误是以为字符编码的问题。查看longtext
当前字符集编码是 latin1
,修改成utf8
可以正常保存在数据库中!
那text
能够成功是什么原因?原来修改数据类型为text
时字符集为空没有任何设置,若为text
类型,将字符集编码修改成 latin1
,一样出现报错
OK!将字符集修改成utf8
解决问题