robot接口测试写入数据库中文乱码

前段时间在用robot做接口测试时,发现一个问题,如果接口入参有中文时,写入数据库的中文字符显示为乱码,首先确认是编码问题,然后我在接口的头文件中设置Content-Type=application/x-www-form-urlencoded;charset=utf-8;将中文字符转码成utf-8或gbk;设置数据库的编码格式;等等,都没有解决这个问题。

我的环境是:数据库mysql,python版本2.7,library库RequestsLibrary,测试数据excel。

另外,同样的包含中文入参的接口,使用postman或者其他同事的python脚本测试,都不会存在写入数据库中文乱码的现象。

我将我的测试脚本和同事的python脚本对比了一下,其他条件都一样,唯一的区别是,我使用的library库为RequestsLibrary,而同事使用的library库为requests。

抱着死马当做活马医的想法,我将robot中的接口测试方法也改成了使用requests库,surprise,竟然完美解决了数据库入库中文乱码的问题。

并且使用requests库进行接口测试的步骤更简洁,post请求的主要方法为:

requests.post(url=url, data=body, headers=headers)

具体测试脚本如下:

robot接口测试写入数据库中文乱码