今天分享的是质量保障过程中写的一个测试小工具—多国语言校验
背景:
1.我们的app支持多国语言,语言文件通过服务器动态拉取,而服务器的语言添加是运营人员手工添加的,完整性不能保证,而完整性的确实会导致你明明使用德语,结果却冒出中文的尴尬事件
2.由于是多国语言,需要依赖翻译公司把本土化的中文翻译成xx国,我们的语言文件使用了格式化字符:%s这样的格式化字符串,但是是给翻译公司,回来的结果经常会出现 % s这样的结果,导致的后果就是客户端使用这些字符串的时候直接crash
问题分析:
为了解决1和2校验问题,以前都是运营同学手动校验,准确性非常低,而且经常有客服找到我说有用户反馈语言不准确或者某个语言使用会突然crash,然后还被拖着手工一个个对,成百上千的翻译手工校验一想到头就大。
手工不成自然想到自动化校验,经过分析1、2问题我认为通过自动化校验是可行的,并且能显著提高项目的效率。
方案设计:
首先想到的是用html+js解决的,这样整个项目组都可以使用,并且很方便。也可以写成一个android项目,手机端直接校验。前面两个可以解决问题,但是只做到了自动校验,却没有做到自动化校验,于是决定用python脚本解决,持续集成可以通过jenkins直接调用py脚本,非常方便。
问题解决:
说干就干,首先我们分析一下要实现的流程:
其他模块都是很基本的处理,用到了requests、zipfile、xml.dom.minidom这些模块
我重点介绍一下解析和校验这个过程。
xml的格式和android的资源格式统一,属于标准的xml语言
<resources>
<string name="selector_title">Choose%1$d-%2$d photo(s)<