认真工作也要会展示成果!LINE QA工程师教你如何实现测试自动化的可视化(1)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

由于我们在一项服务中开发和运营多个测试自动化,因此我们每天必须收到几封相关电子邮件。有一天,我发现一堆未读的测试自动化报告电子邮件。

图片

当我看到所有未读的电子邮件时,我为测试自动化开发人员感到非常遗憾。开发人员必须花费大量精力来编写此类报告电子邮件。每天早上,必须检查是否有新建的测试应用,进行测试作业维护,开发和运行测试代码,以确保测试应用稳定运行。

此外,我还必须分析以这种方式操作的测试自动化的结果,并每天通过电子邮件撰写和分享结果。如果没有人回复甚至没有打开电子邮件,你可能会认为自己在做一些毫无意义的事情,并且可能会感觉很无聊。

在这种情况下,作为众多服务质量的负责人,需要对测试进度和结果一目了然。这是一个简单而明确的需求,以易于查看的方式监控测试自动化结果和多个服务的进度。我们目前正在运行的测试自动化在这方面根本没有准备好。所以,我开始了这个项目。

启动测试自动化可视化项目

由于LINE使用多种测试解决方案来开发和运行测试代码,因此我们需要能够使用少量资源轻松处理每个解决方案以各种形式输出的日志。在对新服务实施测试自动化时,我们还需要能够快速轻松地扩展。

为了满足这些需求,我们希望构建一个具有可靠、灵活的开源工具链的日志平台。我们希望引入经过许多开发人员验证的开源以确保信任,并采用灵活的结构设计来满足许多开发人员的多样化需求。通过这一点,我们希望与各种形式的测试自动化产生协同作用。

为了实现这一目标,我们选择了以下四个行动项目。

图片

首先,我们使用 ELK 堆栈构建了一个管道。ELK堆栈是一个开源的日志收集和分析工具,是众多服务收集和分析日志的代表性工具链。接下来,我们决定在日志平台中定义和使用哪些日志字段。日志字段是你选择的数据集合,以便在稍后构建仪表板时提供更有意义的结果。然后我们开发了一个记录器来负责记录这些日志字段。记录器负责输出运行测试自动化时所需的信息。最后,我们创建了一个仪表板,使测试进度和结果一目了然。仪表板组织了大量的测试数据,以便使用图表和图形轻松查看。

测试自动化可视化构建流程

让我们按照构建的顺序一一回顾一下可视化测试自动化的过程。

使用ELK堆栈构建管道Heimdall

ELK是目前许多服务或项目使用的工具,用于实时收集所需的消息。它由用于搜索和分析的引擎 Elasticsearch、从多个来源收集和清理数据并将其发送到与 Elasticsearch 相同的存储的Logstash以及使用图表和图形可视化从 Elasticsearch 检索的数据的 Kibana 组成。根据这些第一个字母,它被称为 ELK。

图片

使用此 ELK 堆栈,我们构建了一个管道,将测试自动化生成的信息加载到 Elasticsearch 中。为了更方便收集生成的日志,我们将Filebeat放置在 Logstash 前面,如下所示,并将其命名为 Heimdall。

图片

海姆达尔(Heimdall)是北欧神话中神的名字。他是负责召唤Bifrost 的神,Bifrost是一座连接米德加德(中间世界)和阿斯加德(新世界)的火彩虹桥。我们将其命名为 Heimdall,意思是它将负责将分散在各个地方的原木收集并连接到一处。

让我们更详细地了解一下 Heimdall 的整体结构。运行测试自动化的多个节点生成的日志通过 Filebeat 传送到 Logstash。

图片

Logstash 清理数据,只留下必要的日志,然后将它们加载到 Elasticsearch 中。

图片

日志字段定义

接下来,我们决定在日志中定义和传递哪些信息以提供给日志记录平台。这是稍后将在仪表板上使用的信息。如下所示,我们定义了大约20个日志字段,其中包含详细信息,可以让你轻松了解测试进度和结果,例如应用程序信息、测试用例信息以及用于测试的设备信息。

图片

开发ActionLog.Script记录器并将日志加载到Elasticsearch中

接下来,我们开发了一个输出日志的记录器。记录器是一种记录运行代码时发生的事件或消息的工具。

图片

通常,当出现问题时,我们会查看日志来确定原因。我们当时运行的测试解决方案没有良好的日志相关功能,因此我们无法使用默认的记录器。因此,我开发了一个适合测试解决方案的记录器并将其命名为ActionLog.Script。

ActionLog.Script 的开发目的是记录可以在测试解决方案中执行的各种事件,例如运行和终止应用程序、查找或单击特定元素以及在所有事件发生时在 ActionLog.Script 文件中留下相关信息。

图片

ActionLog.Script 留下的日志将加载到 Elasticsearch 中。

图片

使用 Grafana 创建仪表板

最后,我们使用名为 Grafana 的开源工具创建了一个仪表板。Grafana 是一个开源工具,可以通过链接 Elasticsearch 和 MySQL 来可视化数据。通过链接数据并输入查询,你可以通过所需的形式可视化数据。它可以链接到任何数据,并且可以轻松创建和修改仪表板。

一旦自动化测试生成的日志通过之前创建的管道加载到Elasticsearch中,就可以在Grafana中查询Elasticsearch以检索所需的数据。仪表板是通过将导入的数据以各种形式(例如图表或图形)可视化来组合来创建的。

图片

以下是根据收集的日志数据创建的各种面板。可以查看测试的设备名称和应用版本,并查看每个测试用例是否成功。

图片

下面是如何将这些面板聚集在一起形成仪表板的视图。这是实际运行中的仪表板屏幕截图。任何人都可以直观地查看测试进度和结果。

图片

测试自动化可视化试点运行结果

通过试用我们这样构建的测试自动化可视化,我们取得了令人惊讶的结果。

首先,任何人现在都可以实时查看测试进度和结果。仅此一点就是重大进展。

其次,该报告仅由文本组成,通过 Grafana 仪表板进行可视化,使任何人都可以更轻松地了解情况。

最后,开发测试自动化的开发人员现在可以只专注于开发。我能够摆脱每天通过电子邮件向多人共享测试结果的烦人而乏味的任务,而只专注于开发自动化测试。这减少了不必要的成本。

可视化之后,预处理过程也实现了自动化

看到结果,我更加贪心了。看来,如果测试的开始和结束都转为自动化,那么现有仅限于测试自动化的测试环境就可以进一步升级并扩展到自动化测试。我立即采取行动并安装了 Jenkins 来处理测试自动化预处理过程。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值