关于Python自动化测试项目部署到Jenkins构建时出现的中文乱码问题

系统 2634 0

首先只要遇到提示GBK、UTF-8或乱码显示字样等,这些肯定是编码问题。为了解决问题还特意了解了下UTF-8 与GBK之间的区别和关系 。修改file.encoding系统变量编码为UTF-8

问题情景:

python脚本已经调通过的自动化项目,部署到Jenkins上后,使用jenkins构建,控制台print输出报错,如下图:

控制台输出:

关于Python自动化测试项目部署到Jenkins构建时出现的中文乱码问题与特殊字符导致的“GBK”编码问题_第1张图片

分析问题:

我们知道,windows的控制台默认编码就是'GBK',而我们代码编码格式是utf-8,因为Jenkins会默认读取当前系统的编码格式,这样就会导致Jenkins构建时中文乱码或报GBK转码问题,如上图的报错问题:'\u20ac'实际就是特殊字符'€'的转码格式。所以一切都是windows的控制台默认编码GBK问题。哪么我们知道,只要统一他的读写格式,省去Jenkins与python中间转码哪就能解决这个问题。

搜索解决办法:

果断百度一下,按照设置全局配置那里设置LANG :zn_CH.utf-8 ,结果无效。

关于Python自动化测试项目部署到Jenkins构建时出现的中文乱码问题与特殊字符导致的“GBK”编码问题_第2张图片

 

查看了一下,系统管理--->系统信息--->系统属性的第三行可以看到系统编码格式为GBK。

            
              注解:
file.encoding主要管理的是文件中的编码 
sun.jnu.encoding 主要负责文件名类的编码
            
          

关于Python自动化测试项目部署到Jenkins构建时出现的中文乱码问题与特殊字符导致的“GBK”编码问题_第3张图片

网上查了下,大部分是说这个是java层面的编码问题,所以在jenkins 里设置半天并没效果下。所以查了下file.encoding、sun.jnu.encoding 的GBK编码修改成UTF-8的方法,如下:

在操作系统变量里添加启动参数: 

            
              1.打开环境变量设置 
2.注意是新建,不是在什么path中新加, 
直接新建一个变量名为JAVA_TOOL_OPTIONS 
变量值为 -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
            
          

保存后并重启Jenkins(重启命令:restart)

查看Jenkins系统属性果真修改成功了。但是新问题又来了,我重新构建了下我的项目发现仍然报错,而且还出现了中文乱码。

关于Python自动化测试项目部署到Jenkins构建时出现的中文乱码问题与特殊字符导致的“GBK”编码问题_第4张图片

最终解决办法:

后面我想了下,网上大部分是说这个是java层面的编码问题,哪可能是他们的自动化项目本来就是Java所写呀,所以我以上操作只能针对Java项目的编码。对于 python自动化测试项目在jenkins 里构建并没有效果。同理,我们添加一个Python变量就可以了。

在操作系统变量里添加启动参数: 

            
              1.打开环境变量设置 
2.注意是新建,不是在什么path中新加, 
直接新建一个变量名为PYTHONIOENCODING
变量值为 UTF8
            
          

好了,重启Jenkins就可以啦,快构建试试吧

关于Python自动化测试项目部署到Jenkins构建时出现的中文乱码问题与特殊字符导致的“GBK”编码问题_第5张图片

注意:PYTHONIOENCODING这个变量是最主要的


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论