6.4 号:晴
早上 9 点过 3 分到公司,晚上要加班到 8 点了,自己省钱带了早餐 一袋牛奶一袋小香肠一只鱿鱼仔一个小面包,开始刷题,至少三道,这题越来越难了。想了想积分快凑够 6000,可以兑换 T 恤了,一咬牙,继续刷吧。换了 T 恤后我必须把大脑休息几天不刷了。想了想,去做探索系列吧,然后发现里面居然有俩道题无法完成,没有提交按钮,就给客服提交了反馈,不到一分钟就收到了回复,很赞。
·接口测试平台陆续收到同事的 bug 反馈,发现是某个童鞋新合的分支导致 保存项目登陆态接口失效了。排查了一下,发现旧的项目可以,新的项目不行。
然后去看代码,发现是 django 的保存项目登陆态接口后端函数问题,新项目不会自带一个空白的登陆态接口然后等用户更新,而保存登陆态接口只能保存已有的。
我改了下,让它 get_or_create,获取已有或新建。这样就阔以了。然后上传代码,打开我的自造一键部署功能。等待部署...
说到这个自动部署,其实就是不想用公司的那套公共 jenkins,总觉得多了一环就多了一个风险,万一 jenkins 挂了,或者连不上我接口测试平台的服务器咋整。所以就干脆平台自己做了个自己部署,自己杀掉自己,自己拉代码,自己同步表结构,自己启动各服务,然后返回整个部署日志。
想到这 有点悲凉,想起来那个小机器人的 gif,自己给自己换电池,一次又一次,一旦出错,那就再也醒不过来了。。。(所有后来开发成了独立线程和持续检测是否部署成功,就没有这个担心了_)
然后赫然发现,居然没生效!。不可能啊。我身为这么吊的测开,改这个 bug 足足用了五分钟。怎么可能失效呢?然后又试了一次,发现线上还是存在这个问题。。。
想了半天,发现漏掉了一件事,我忘记合代码了。。。只是提交到分支了,然后还拼命拉 master 部署。。。
今天准备把安卓自动化平台继续优化,以便明天同事出去玩的时候,不会出现太多误报的提醒以便他们被吓到失眠。。。毕竟新的大量的几千行级别的安卓 ui 自动化脚本代码项目,磨合期要很久的。。。
想到这,冒出了一个想法。我想放弃真机执行脚本,因为物理资源实在是匮乏,而且更多的意外风险。所以我准备尝试模拟器执行,既然要做就要有提升,所以我准备启动 8 台模拟器,并发分类执行 40 多个大用例,这样执行时间理论可以减少到 1/8,更主要的是比之前算是一步不小的升级,看着也更高大上了。所以开始计划,那么写死 8 台模拟器的 ip 对应 appium 服务端口 貌似是个不错的选择,就是 8 个 appium 服务我不知道能不能很好的运行起来。希望别出各种灵异事件吧。不然现在执行用例的时间是我无法接受的。
下午 4 个面试,懒懒散散的无精打采的困意盎然的 去面试。没啥心情去聊其他的,一本正经的按照流程走。有过的有不过的。不过我不太关心这件事。只是比较心疼我的整个下午时间被彻底扯碎,中间一个小伙是 51 出身的,虽然没过,我还是给他讲了很多,指出了不足,和如何去其他公司面试拿下 offer 的捷径。其他面试官别怪我~
第二天:
安卓自动化今天早上下定决心启动模拟器,后来发现 8 个的话电脑太卡了。索性减少到 6 个。一开始的时候百度,搜索模拟器。什么夜神,雷霆一大堆。看着哪个支持多开功能,且安卓版本别太高的果断下载。最终选用了雷霆模拟器。开了 6 个。起名字,排列到桌面很像样:
下一步,就是把几十个大用例给分配好。所以在 case 的属性中加入了 自己属于哪个模拟器。一个模拟器大概承担 7 个左右的大场景用例吧。
想了想,觉得登陆某身份等固定工具没啥用,删了。切换到俩台真机的代码和功能也删除了。真手机都还给保管人了。哎~模拟器自己随意指定版本和内存,支持摇一摇。执行速度飞快。早知道我费劲找真机器干嘛呢(这里有不确定的坑,很多年前我做 appium 时候也考虑过模拟器,但是后来改用真机器,具体原因想不起来了,但是我相信我当年的决定肯定是发现了什么坑而且解决不了,不过过了这么多年,对现在的我来说,方方面面吧,应该问题不大)~
然后就是多设备并发的问题。我记得得多开 appium 服务,然后指定对应的设备 ip 和设备端口 还有 appiium 自身端口。6 个设备,那就需要 6 个 appiuim 服务端口。但是我忘了命令参数,还有一些坑。所以去百度搜索相关。结果好巧不巧。搜到了一个比较满意的博客。居然是自己 16 年写的,我说怎么看着思路这么顺眼,居然已经有 1.5 万的浏览量,可怕。不过看了俩眼发现,除了那句启动命令外,其他的都太青涩了,不值得使用了。
(ps:自己抄自己的博客不是第一次了,怪不得说刚写的时候 只有上帝和我能看懂,3 天后,只有上帝能看懂了~)
自己 16 年的时候,还真是写了不少博客,虽然基础,但是点击率都上万了,给我积累不少流量,又想起著名洗脑鸡汤:未来的你会感谢曾经努力的自己。
下午的时候抽空惯例技术群里吹牛逼
然后脉脉上跟车发吐槽。公众号博客写一写,跟几个粉丝聊聊天。然后陪小邪😈同学聊聊家常,研究下摆地摊。
抽空看了下 leetcode,发现 bug 还没修复,客服能 1 分钟内回复,你个 web 端居然一天了还没修复?不过也不是严重 bug,也没人在意。
下午 csdn 的博客专家群里爆发了热议,无限 @ 官方运营 要求出专家定制版 T 恤,装 b 涨薪全靠它,包括文案,字号,阴影,板式,这群专家们在短短数分钟内都你一言我一语策划完毕且极度完美,包括对 csdn 官方的各种运营上的指点江山,但是到后来居然慢慢演化成了统一口号,模仿示威么?我也趁热加了一句:
最终运营妹子妥协,吓的提刀去找领导申请了。
快下班了看了下信用卡,狠下心决定摆地摊,想起公司之前的内部积压的文化衫比较多,挺便宜的,准备大批量拿走卖掉。然后去内部商店一看,好家伙。涨了,买不起了~
6.5 号:晴
今天继续安卓自动化。经过实际测试后,果然发现了很多坑。6 台模拟器,实际并发后,至少 2 台会死机,1 台 app 无响应。测试报告结果瞬间变成一地鸡毛。而且执行速度会降低到无法承受。模拟器安卓版本只有 5.1.1,并且官方表示无法升级。数量减少到 3 台。发现不死机了,也流畅了,但是很多用例仍然莫名失败,验证发现模拟器有些功能,比如调取邮件,比如位置定位等,确实会引发 bug,真机没事。想了想。决定把这些容易出错的用例,挪到真机执行。电脑继续插上真机。然后过了一遍,把所有模拟器搞不定的用例划分给真机。对每个 case 添加了归属 device。可以直接选择归到哪个设备下执行。同设备的用例不能并发,一共 4 个设备。可以并发 4 线程了,并发 4 线程的过程和 django 的机制加上上使用者的 ui 交互,麻烦程度恶心的一批,怎么架构都避免不了踩了很多坑。好在现在是自动分配 3 端口 (模拟器,appium 服务,driver),我也省心了。但是如果多模拟器同时并发还是会报错,深究后,加入了-bp 参数,完美解决。但是本来真机器上的稳定用例在模拟器上再次出现不稳定性,可能需要再度进行开启新磨合期。
这样会好很多效果。但是目前仍然面临一大问题。
就是预发布环境。这个环境必须要重新安装预发布包。很麻烦。还要摇一摇来切换环境,刚下载后登陆账号还需要手机真实验证码。又不想破坏线上包的监控。想来想去,还是要准备加一台真机来专门负责预发布用例,用例较少,一台足以。6.6 号这就开始实施。
其他零散时间依然是 写博客和公众号记录总结。
晚上回去事情也不少,运动,练吉他,浇花,洗衣服,乌龟换水一大堆事,非常充实。看着俩只乌龟大的不像话,小小的塑料缸也略显拥挤,准备周日换个大的,又担心换水会更麻烦。
一位故友的 4000 元买的英短小猫不想养了,想让我帮忙送个靠谱的人,找了几个主都不太合适,却反而把我的自行车联系到了买家,第一次骑到公司后就锁在地下车库了,半年了,也不知道还在不在。
叹了一口气:工作还是得加强,生活还是要继续,方方面面吧,问题不大。
(ps:以后我会发前几天总结的日记哈~这样才能梳理的完整一些)
喜欢这个系列的小伙伴可以点赞分享,小火箭走一走了~