从测试的角度谈一谈微信域名或链接巡查该怎么做?

从测试的角度谈一谈微信域名或链接巡查该怎么做?

背景

我们公司是一家互联网广告公司,随着微信流量的日益增加,微信域广告日消耗在百万以上。为了避免投放域名被封,我们采买了大量域名用于投放。然后微信的封禁规则日益严苛,对于我们公司这样的量级,一旦投放域名被封,一个小时可能就是几十万的资损。因此公司采买了多家域名巡查服务,价格高昂。但是从准确性和稳定性来看,第三方服务是不是的就挂掉,而且巡查的结果误报率在20%以上,这也是为什么我们同时采买了多家服务的原因。即使如此,还是发生了好几次资损事件。
作为测试团队的负责人,在复盘过程中我不禁会问,当初为什么要采买第三方?公司自研不是更可靠嘛?后来稍微深入的思考一下,答案也就很清楚了。第一个原因是因为,微信域名巡查,对于前后端开发来说,他们的技术栈很难实现。而测试团队更多的是被动接受需求,很少有人会主动出来承担开发工作。第二个原因,这件事情直接影响消耗,做得好的话对个人或者部门来说不一定是加分项,但是巡查结果一旦出问题,那肯定是要背锅的。因此没有任何一个部门主动出来承接这部分工作。第三个原因,技术团队在整个公司影响力较弱,尤其测试团队,对于业务方来说,我们只是支撑方,他们更愿意相信第三方服务。

分析

这件事能不能做?

上面已经分析了,内部团队为什么没有人愿意做,首先是实现困难,第二是如果结果出错,直接影响消耗,第三是影响力弱。
那么测试团队能不能做这个事情呢?
第一点:实现上,测试团队是可以实现的,最简单的方式就是利用移动端自动化的专项能力,直接调用adb命令打开微信,然后依次访问需要巡查的域名或者链接,再对结果进行判断。如果被封会出现以下页面:
微信被封链接会出现以下页面
那么我们可以通过ocr识别,或者提取页面关键字判断是否被封,最终返回结果。
第二点:如果出错,可能会直接影响自己甚至整个测试团队。这一点其实不用担心,我们只要在方案设计上保证高可用、高准确性就好了。
第三点:技术团队尤其测试团队在公司影响力弱,业务方不会找我们做。这一点是有很多的历史原因综合而成的,但是业务方现在也深感第三方的不靠谱。这时候测试团队就应该主动站出来提供稳定、准确的服务,帮助公司追求更高的收益和更稳定的平台。事在人为,我相信党测试团队主动出击,承担更多的事情,充分证明自己的价值。自然会得到认可。

这件事该怎么做?

在上面我们已经得到答案了,这件事肯定值得去做,而且要好好设计,提供一个准确、稳定的服务。那么接下来就要考虑,这件事情该怎么做了。
测试的角度第一个方案肯定就是利用一些移动端测试框架实现整个链路,从打开手机——唤起微信——访问域名或链接——判断结果——返回结果。
确实,这是一条肯定可行的方案,且结果一定准确,但是我们还要追求的是高稳定性。做过移动端自动化的都知道,移动端自动化的难度不在于脚本的开发,而是后期的维护和结果的判断,尤其是这种24小时不间断运行的需求。首先从手机系统层面来看,在运行过程中,可能会被各种弹窗中断(特殊节日提醒等),可能会被系统级别的事件中断(如系统自动更新),长时间运行的话,手机的稳定性也是个大问题。从app层面来看,微信随时都有可能升级、一些不可控的事件发生等等,都会影响我们的结果。而从我们公司的量级来看,中断一小时,可能就是几十万的资损事件。
那么就换一条思路,去体验一下一些收费平台找找灵感。百度了一下,还是有很多微信域名巡查的平台的,收费标准也都不一样,在我看来都挺贵的。体验了一下,且不说准确性,从响应速度来看,都能做到1s左右返回结果。这就说明他们这些平台采用的肯定不是我上面说的那种方案,因为利用自动化的手段实现整个链路,再去判断结果并返回,不可能在1s内就完成。那我们就去微信官方找一找有没有提供什么接口来判断域名是否被封。
几乎翻遍了所有可能的接口,没有发现可以直接使用的。不过从业务逻辑上发现了一个可以用来做域名巡查功能的接口,非常幸运。
有了可以用于巡查的接口以后,判断结果就很简单了。如果域名或链接被封,则都会跳到微信安全中心的页面,也就是上面那个截图,其域名为“weixin110.qq.com”。我们只要判断最终的url的域名是不是这个就行了。

撸代码

这是主函数:
在这里插入图片描述

这是巡查任务函数:
在这里插入图片描述
巡查任务重增加了失败重试,如果失败,则重试5次,5次后还是失败,则发送钉消息告警给相关人员。

效果

在这里插入图片描述
巡查结果是毫秒级的,这就是直接使用微信官方api的好处,绝对准确,极速响应。
和公司采买的两家第三方对比了一下,测试团队自研的方案,速度是他们的五倍以上,准确率达到100%,风控等多个团队在测试后都已经切到了我这个服务。
目前持续稳定运行了一周多的时间。

最后

最后想和大家分享一点心得。在很多公司,测试团队一直处于被动接受需求的状态,影响力较弱。而一个优秀的测试团队,质量是基石,是整个团队倾尽全力要去保证的。在此基础上,可以去做一些更有价值的事情,赋能业务,甚至可以思考如何去带来增长。当你真的有所产出,自然会得到协作团队的尊敬和认可,也自然会得到更多资源。
最后的最后,感兴趣的同学,或者有同样需求的同学,可以留言交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值