前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Serverless+puppeteer打造云端自动化测试

Serverless+puppeteer打造云端自动化测试

作者头像
腾讯云serverless团队
发布2019-08-01 14:32:12
1.4K0
发布2019-08-01 14:32:12
举报

关于自动化测试,还有很多工作要做,本文只是迈出了万里长征的第一步。

蹊径落地页是AMS推出的帮助广告主快速、便捷创作落地页的平台工具。平台希望在发布新功能的同时,同时能够快速验证老的特性能够不受影响。

基于此,测试同学需要回归修改可能涉及到的特性,来确保功能的正常。

  • 方案一:每一次代码合并master之后就要验证一次。此方案会有大量重复性的工作,这样测试的效率会大幅降低。
  • 方案二:只验证最后将要发布的master代码。这个方案会减少验证频率,但一旦出现了问题,不能马上定位到具体是哪一次merge所带来的影响,因此不能快速修复该问题。

综上所述两种方案都不是最完美的,如果能够通过机器,自动化的帮我们回归已有功能,那我们就可以高效的完成测试回归工作。因此,自动化测试也因此而诞生。

首先,先来思考下我们业务中哪些功能需要回归:

  1. 组件ui,组件特性功能展示正常
  2. 组件交互,在点击之后,能够符合预期

如何能够让机器知道这个组件的样式是渲染正常的呢?

之前分享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截图快照功能,但是整个自动化流程中,还有可以持续优化的地方。

  • 如何能够让机器自己识别两次图片是否一致?
  • 未完成的点击交互测试

后续,我们将分享这两个问题的解决方案。

感兴趣的读者可以点击阅读原文至腾讯云云函数控制台部署使用~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ServerlessCloudNative 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档