从老广茶楼到大厂工位:一个应届生的移动测试自动化初体验

需求之外
2026-01-03 22:55
阅读 340

去年十月,我还在珠江新城某家创业公司“搬砖”,月薪15k,房租3500(没错,就住在西关老屋,离上下九步行十分钟,省下的通勤时间全用来改bug了)。每天的生活就是:早茶一盅两件,下午三点被产品经理cue:“这个需求今晚能测完吗?”——我说能,其实心里慌得一批。

直到上周五晚上,我收到了那个改变命运的邮件:大厂offer,base广州,月薪22k起,还有股票。老婆(其实是女朋友,但我们都这么叫)看到消息直接从沙发上跳起来:“终于不用再吃肠粉配泡面了!”
说实话,那一刻我差点哭出来。不是因为钱多,而是因为——我终于可以正儿八经搞技术了


入职第一周:被“自动化”三个字打脸

入职第一天,mentor老陈带我熟悉项目。他三十出头,T恤上印着“Talk is cheap, show me the test coverage”,说话慢悠悠但眼神犀利。我们坐在琶洲某栋写字楼28楼的会议室里,窗外是珠江,面前是一堆手机真机和模拟器。

“你之前做过自动化测试没?”他问。
我挺了挺胸:“做过!用Appium写过几个脚本,跑过登录流程。”
他点点头,然后甩给我一个任务:“下周上线新版本,要覆盖核心链路的UI自动化回归。顺便,看看能不能把区块链模块的验证也加进去。”

区块链? 我心里咯噔一下。我一个刚毕业的娃,简历上写“了解区块链原理”,结果真让我碰上了?而且还是在移动端测试自动化里?


初探自动化:工具太多,脑子不够用

刚开始几天,我像无头苍蝇。查资料、看文档、搭环境,光是选工具就纠结了三天。

  • Appium?老牌,社区大,但配置麻烦,iOS还得开Xcode。
  • Detox?React Native亲儿子,但我们用的是原生+Flutter混合。
  • Macaca?国产,文档少得可怜。
  • Airtest?图像识别流,适合游戏,不适合我们这种金融类App。

最后老陈一句话点醒我:“别想那么多,综合你的项目特点、团队习惯、维护成本,选一个能跑起来的就行。”

于是我们定了:Appium + Python + pytest。理由很简单——团队里有现成的Python脚本,有人会修,出了问题不至于抓瞎。


区块链怎么测?别慌,它也是API

说到区块链模块,其实没那么玄乎。我们的App接入了一个联盟链,用户交易上链后,前端要展示“已上链”状态。听起来高大上,但对测试来说,本质还是验证接口返回和UI一致性

我的思路是:

  1. Mock链上数据:用本地节点或测试网模拟交易上链;
  2. 监听事件:通过WebSocket监听上链成功事件;
  3. UI断言:检查页面是否显示“已确认”状态。

难点在于——区块链操作不可逆、耗时长、环境难搭。一次上链可能要30秒,而我们的自动化测试要求单条用例不超过10秒。

怎么办?分层测试

  • 单元测试:验证交易构造逻辑;
  • 接口测试:用Postman模拟上链回调;
  • UI自动化:只验证状态展示,不真正触发上链,而是用工具拦截网络请求,注入mock响应

这里用到了一个神器:mitmproxy。它能动态拦截和修改HTTP/HTTPS请求。比如,当App调用/api/tx/status时,我让它直接返回{"status": "confirmed"},跳过真实链上等待。

老陈看了直点头:“不错啊,知道用工具解决问题,而不是硬刚。”


工具链整合:别让自动化变成“自动麻烦”

写了两周脚本,我发现一个问题:脚本越多,维护越痛苦。一个按钮ID变了,二十个用例全挂。更别说不同机型、不同系统版本的兼容性问题。

这时候我才明白,自动化不是写脚本,而是建体系

我们开始搭建自己的“小生态”:

  • Page Object 模式:把页面元素和操作封装成类,改一处,全盘更新;
  • Allure 报告:失败用例自动截图+日志,排查快如闪电;
  • Jenkins 定时跑:每天凌晨2点跑全量回归,早上来看报告;
  • GitLab CI 集成:提PR自动触发冒烟测试,不过不让合代码。

最骚的操作是——用Excel管理测试用例。别笑!我们把核心路径拆成“前置条件-操作步骤-预期结果”,非技术人员(比如产品)也能帮忙review。自动化脚本只是执行层,真正的价值在用例设计


吐槽时间:那些年踩过的坑

当然,过程没那么顺利。举几个真实翻车现场:

  • iOS真机连不上:折腾三天才发现是MacOS升级后WebDriverAgent签名失效;
  • Android弹窗干扰:系统权限弹窗、推送通知、低电量提醒……全都能让脚本崩掉;
  • 区块链测试网宕机:某天早上所有用例红成一片,最后发现是联盟链节点维护;
  • 老板问:“自动化覆盖率多少?” ——我只能苦笑:“UI自动化不是万能的,有些场景人眼比机器靠谱。”

最崩溃的是上周三,我写了个滑动列表加载更多数据的脚本,结果在华为P40上跑得好好的,在iPhone 13上死活滑不动。最后发现是不同设备惯性滑动参数不一样。我当场就想把手机扔珠江里。


反思:自动化不是目的,效率才是

现在回头看,我最大的感悟是:别为了自动化而自动化

很多新人(包括曾经的我)以为,只要写了自动化脚本,就是高级工程师了。其实不然。自动化只是工具,核心是解决业务问题

比如我们有个“转账到账通知”功能,人工测一次要等银行回调(平均5分钟),一天最多测20次。自动化后,mock回调+并行跑,一小时测500次。这才是价值。

而区块链?它只是业务的一部分。技术再新,测试的本质没变:输入、处理、输出,验证是否符合预期


给新人的几点建议(老广式真诚)

  1. 先跑通,再优化:别一上来就想搞完美架构,先让脚本能跑,哪怕丑一点;
  2. 善用工具,别重复造轮子:Appium、mitmproxy、Allure……都是前人踩坑换来的,拿来主义不丢人;
  3. 和开发搞好关系:让他们在关键节点加测试hook,比你写一百个wait_for_element都管用;
  4. 接受不完美:UI自动化天生脆弱,重点覆盖核心路径,边缘场景交给手工;
  5. 保持好奇:区块链、AI、Web3……技术在变,但测试思维不变——怀疑一切,验证一切

尾声:从茶楼到未来

上周日,我和老婆去陶陶居喝早茶。她问我:“现在工作开心吗?”
我说:“累,但踏实。以前改bug像救火,现在是在建防火墙。”

从西关老屋到琶洲CBD,从手动点点点到搭建自动化体系,我知道自己还在起步阶段。但至少,我不再是那个被需求追着跑的菜鸟了

下个月,我们要把自动化覆盖到H5和小程序。再往后,或许真能搞个“区块链+AI+自动化”的炫酷方案——虽然大概率会被老陈骂“花里胡哨”。

但没关系。技术人的浪漫,就是在一行行代码里,把不可能变成可能

就像那句老广俗语:“慢慢来,比较快。

共勉。

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝