关于自动化测试,还有很多工作要做,本文只是迈出了万里长征的第一步。
蹊径落地页是AMS推出的帮助广告主快速、便捷创作落地页的平台工具。平台希望在发布新功能的同时,同时能够快速验证老的特性能够不受影响。
基于此,测试同学需要回归修改可能涉及到的特性,来确保功能的正常。
综上所述两种方案都不是最完美的,如果能够通过机器,自动化的帮我们回归已有功能,那我们就可以高效的完成测试回归工作。因此,自动化测试也因此而诞生。
首先,先来思考下我们业务中哪些功能需要回归:
如何能够让机器知道这个组件的样式是渲染正常的呢?
之前分享jest的snapshot给了启发,那就是快照的概念,如果我们能够保存一份正确渲染的组件图片,那么我们只需要在每次merge进master之后,对比上一次的快照图片,如果图片一致,就说明功能是正常的。
基于此,我们引入了puppeteer的截图功能,在每一次代码merge进入master,触发了ci流程后,就调用puppeteer,对已经创建好的一份最全的组件功能页面进行截图,与上一次保存的图片进行比较。
从上面两张图我们可以看出,我们调用ci执行的docker环境中需要先拉取创建的docker镜像,这个镜像里面需要包含puppeteer和一些基础库,那么拉取镜像这个过程本身比执的测试用例耗时的多,我们希望整个构建是快速的,那么有没有方法去缩短这段时间呢?
这个时候,Serverless就横空出世了!
Serverless可以理解成运行在云上的一个函数,它由事件所触发,然后创建这个函数的实例,最后销毁,我们只需要去编写这个函数本身的代码,不用关心服务器的运维,而我们自动化测试的场景,就是需要这样的一个服务。
触发钩子----> 执行任务---->返回结果
目前腾讯云个人帐户可以免费体验Serverless云函数服务。
持续优化测试流程时,播放端的ci构建就简化成了这样的一段代码
curl http://serverless.example.com
我们只需要触发腾讯云云函数,之后的puppeteer爬取测试用例页面,截图之后,我们将生成的图片保存在腾讯的cos上,然后在邮件发送测试报告即可。整个自动化测试,只需要3S就可以完成,大大缩小了之前的执行时间。
写到这里,我们已经完成了第一步的ui截图快照功能,但是整个自动化流程中,还有可以持续优化的地方。
后续,我们将分享这两个问题的解决方案。
感兴趣的读者可以点击阅读原文至腾讯云云函数控制台部署使用~
本文分享自 ServerlessCloudNative 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!