CTS/GTS/GSI/VTS无法提交报告问题复盘 | weiinter105

一.问题原因

这个问题是由于多个方面造成的,梳理下问题发生的流程

本次问题产生原因

1.首先这个是odm产生的问题,修改了修改model name不规范,只修改了system的属性,没有修改vendor下面的属性

2.odm的推送直接push到了dev上,但是有一条change又进了stable1x,dev上的默认被拉到了stable2x,但是gerrit上只有1x这个提交

3.士伟搜了gerrit上odm的修改,认为只进了1x,所以修复也只进了1x,注意对这个问题进行总结 (要不不进,要进进全)

4.打小数版时CTS测试没有按照上传报告失败问题总结进行检查,导致2x小数版没有发现该问题

5.整数包上传报告时暴露问题

二.问题预防

1.修改时就按照要求修改system和vendor分区的相关属性,保证同名(不过这个不是我们这边进,没法控制)

2.在小数版测试时由CTS测试进行先期校验,预防等到整数包才发现问题(但是这个按照wiki那样检查比较麻烦,测试有时候也会忘记校验)

那么对于上面无法上传报告的那类问题,我们写个脚本进行校验,让测试校验起来更加方便;这样每次小数版测试前直接进行校验,有问题上报,防止问题等到整数版再暴露;同时,运行一行简单的命令就可以进行校验,再忘了就说不过去了吧;

用这种方法我们就可以把问题控制在上面说的第四步,防止问题的发生。

脚本:

checkimg

 

使用方法:

(1) sudo chmod 777 checkimg

(2) 将checkimg的存放路径加到环境变量中(.bashrc)

(3) checkimg v1 v2 v3

 

运行结果示例:

F9关键结果部分:


now print results:


print important properties:


ro.build.fingerprint=xiaomi/lotus/lotus:8.1.0/O11019/V10.1.2.0.OFICNFI:user/release-keys
ro.vendor.build.fingerprint=xiaomi/lotus/lotus:8.1.0/O11019/V10.1.2.0.OFICNFI:user/release-keys
ro.product.brand=xiaomi
ro.vendor.product.brand=xiaomi
ro.product.device=lotus
ro.vendor.product.device=lotus
ro.product.manufacturer=Xiaomi
ro.vendor.product.manufacturer=Xiaomi
ro.product.model=MI PLAY
ro.vendor.product.model=lotus
ro.product.name=lotus
ro.vendor.product.name=lotus


print compare results:


fingerprint check pass
brand check pass
device check pass
manufacturer check pass
diffenerent model, need to modify
name check pass


可以看到model name有问题,需要处理,测试就把这个终端上显示的结果贴出来,建个jira指给CTS研发即可

F1关键结果部分:


now print results:


print important properties:


./systemtmp/system/build.prop:ro.build.fingerprint=Xiaomi/cepheus/cepheus:9/PKQ1.181121.001/9.1.23:user/release-keys
ro.vendor.build.fingerprint=Xiaomi/cepheus/cepheus:9/PKQ1.181121.001/9.1.23:user/release-keys
./systemtmp/system/build.prop:ro.product.brand=Xiaomi
ro.product.vendor.brand=Xiaomi
./systemtmp/system/build.prop:ro.product.device=cepheus
ro.product.vendor.device=cepheus
./systemtmp/system/build.prop:ro.product.manufacturer=Xiaomi
ro.product.vendor.manufacturer=Xiaomi
./systemtmp/system/build.prop:ro.product.model=Cepheus
ro.product.vendor.model=Cepheus
./systemtmp/system/build.prop:ro.product.name=cepheus
ro.product.vendor.name=cepheus


print compare results:


fingerprint check pass
brand check pass
device check pass
manufacturer check pass
model check pass
name check pass


这是我下的F1最新开发版,可以看到6个属性都是一样的,没问题,这种就目前来说,不会影响测试,无需提单

三.脚本原理及优缺点

原理:把包解压开来,解压system.img和vendor.img;找到其中的build.prop中的元素进行对比,看看有没有不一样的;

优点:
1.避免了测试刷机,正常测试需要刷miui版本先校验一下,再刷gsi版本进行校验,其实也浪费时间,并测试项过多,常常忘测或者漏测
2.防止开发在miui版本对属性进行overlay,导致刷miui版本时属性一致,直到刷了gsi之后才暴露;这种检查方式即方便,也能做到排除overlay的干扰

缺点:
1.脚本需要跟着build.prop的位置,属性名称的修改,检查项的增加与修改而变化,健壮性不够,后续还要根据google的修改及时维护;
2.功能不够完善,写的也不是太好看

四.问题总结

这个问题最近常常出现,因此觉得人工的检查方式似乎是有些局限性的,因此写了脚本进行处理;

请CTS测试再测小数版之前一定要用脚本进行验证,避免此类问题在整数版出现

同时有新问题注意及时反馈,修改脚本

作者: RESSRC

个人资源站

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据