鸿蒙工程师跨界创业:自动化测试赋能资源整合实战
|
上个季度那个鸿蒙工程师创业的项目,我盯了三个月。不是接活,是PM硬塞进Sprint里让我“搭把手”,说“咱自动化底子厚,帮他们理理资源”。我原以为就是跑几遍UI快照、扫扫权限树,结果第一轮CI跑完,三个环境里两个挂得像被拔了网线——鸿蒙的AbilitySlice跳转压根不走Activity栈那一套,我们原先mock的intent链全喂了狗。 键盘左下角那个Ctrl键,按下去要抬手两次才弹得上来。我已经换过三次硅胶垫了,还是卡。昨天晨会前又试了一次,指甲缝里嵌着灰,没擦。旁边李工端着保温杯路过,水汽糊了他眼镜片,他边擦边说:“你们测那‘跨设备流转’是不是靠分布式软总线打洞?”我没答。这问题问得对,但答案在devops脚本里埋着,不在嘴上。 优胜劣汰?对,真就淘汰得明明白白。他们把鸿蒙设备池直接扔进Jenkins Pipeline,连vendor tag都没打,只写了个“harmonyOS-xxx”当label。我点开K8s节点列表一看,六个Node里四个标着“not-ready”,因为有个同事把ets文件路径拼错了——不是/ets/xxx,是/ets/app/xxx,少了一级。他改完再推,Pod启动时直接报“no entry point found”,日志尾巴还飘着半行emoji:????????。这个我敢打包票,错就错在这儿。 Chrome DevTools切在Console tab。不是Elements,不是Network,就是Console。因为我写了个临时hook,用console.error劫持所有$r.invoke()调用,想看他们底层怎么拆解ComponentContext。结果发现他们用了两套Context:一套给系统服务,一套给FA(Feature Ability),中间拿一个叫“ContextBridge”的玩意儿粘合——名字起得挺好,桥嘛,得稳。可它每次bridge失败只抛warning,不reject,log级别还设成info。我截图发群里,后端老张回:“哦,他们文档写‘建议捕获warn’。”我回了个????。汤洒了。桌角那盒酸辣粉,刚揭盖,红油蹭到键盘右上角,三滴,其中一滴顺着F12键缝隙往下渗,现在还洇着。 这事其实早该翻车——上次他们把同一个HAP包同时装进平板和车机,车机端启动直接OOM。不是内存不够,是车机ROM里那个定制的DeviceProfileService,在init阶段疯狂clone一个三百七十二个节点的JSON Schema,然后逐层diff。我们写的resource loader根本没加depth limit,只判了type === 'object'就往下递归……结果那个Schema clone过程卡在第十八毫秒,之后所有后续操作全掉帧。我盯着Performance tab里那条毛刺线看了四分钟,直到PM冲进来拍我桌子:“能不能先让登录页动起来?” 我倒不是反对跨界。鸿蒙工程师懂原子化服务,比我们懂Bundle生命周期。但他们把“一次开发多端部署”当成银弹,结果在测试侧崩出一堆异步竞态:比如手机拖拽窗口到折叠屏,onWindowFocusChanged回调比onConfigurationChanged慢二百三十毫秒,但我们写的等待逻辑只等后者……这事儿不能怪他们,是我们没在test runner里注入设备时序模拟插件。但我懒得提。上周PR review我写了句注释:“请确保所有AbilityTransitionEvent有对应的waitForEvent() wrapper”,被退回——理由是“未复现”。行吧。我删了注释,加了个try/catch吞掉timeout error。
文章配图,仅供参考 双屏壁纸是同一张图,左边是Mac OS默认蓝灰渐变,右边是Win11那种浅紫带微光的。我懒得换,因为切屏时右屏总闪半帧灰,换壁纸也没用。这破事比兼容问题还磨人。对了,上周工资条发下来,绩效系数没动,但加班费扣了十八块六——说是食堂餐补超标,超的是上个月鸿蒙demo演示当天的“应急宵夜”,那天我点了份炒河粉配冰豆浆,发票抬头写的是“测试组技术赋能支持”,财务说不算差旅。我懒得争。 所以别跟我扯“资源整合”这种词。资源是死的,人是活的,流程是拧巴的。你把鸿蒙模块往Jenkins里一塞,它自己不会找匹配的SDK版本;你把test case写成YAML,它也不会自动翻译成StageModel里的onActive生命周期钩子。所谓赋能,就是你蹲在CI日志里扒出第十七个“Failed to resolve device identity”后,顺手把vendor.sh里那个sleep 3改成sleep 5,然后把改完的sha256抄进README的第4.2.1小节里——不是因为科学,是因为这回跑了三遍,都过了。 我今天下午三点去趟机房,手动刷一遍新版本HAP到六台鸿蒙设备上。不跑CI,不录脚本,就一台台点。为什么?因为上周五他们偷偷上了个热更新补丁,签名证书换了,但没同步到我们的key store pool里。我现在连build出来的apk都验不了签。先刷了再说。刷完我要看看那个卡住的Ctrl键,到底是不是轴体松了。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


工程师创业实战:API驱动的跨界融合与资源整合
工程师16年实战:跨界融合与资源整合创业指南
工程师创业实战:跨界融合与资源整合之道
工程师创业实战:跨界融合与资源整合指南
工程师跨界创业:技术×域名资源整合实战
工程师创业实战:跨界融合与资源整合指南
Ruby工程师的跨界融合与资源整合创业手记