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

使用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 来处理测试自动化预处理过程。

图片

Jenkins 是一个 CI/CD 工具,可以轻松管理构建和部署所需的众多流程。我们用它来创建一个可以启动测试自动化的触发器。

Jenkins每天早上检查内部构建分发系统是否有新版本,如果有新版本部署,则下载并安装应用程序,以便可以进行应用程序的回归测试,然后进行应用程序的回归测试运行测试自动化的测试解决方案。运行。整个过程通过Slack共享,包括测试完成后的结果。

从测试自动化到自动化测试

通过甚至将预处理过程自动化,我们能够将现有仅限于测试自动化的操作方法开发为称为自动化测试的扩展形式。

让我们快速浏览一下整体流程。首先,QA工程师开发测试代码并将其推送到GitHub,然后 Jenkins 运行测试作业。当测试作业执行时,数据自然会沿着日志平台管道提供给Elasticsearch,并根据提供的数据完成Grafana仪表板。

图片

测试进度和结果通过 Slack 与任何想要分享的人共享,包括开发人员和 QA 工程师,你还可以直接进入 Grafana 仪表板查看精美的可视化结果。

图片

综上所述

在本文中,我讨论了如何可视化测试自动化并使其更加高效。测试自动化是一个令人惊讶的没有大量参考数据的领域,也是一个在项目开始时受到很多人很大兴趣的领域,但随着时间的推移,热情逐渐消退。如果通过这篇文章,再有一个人对测试自动化感兴趣并思考“这似乎值得一试吗?”,我会非常高兴。最后,我将向今天努力工作的QA工程师表示支持。感谢您阅读这篇长文。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 786229024,里面有各种测试开发资料和技术可以一起交流哦。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

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

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

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

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

你有帮助,可以添加V获取:vip1024b (备注软件测试)**
[外链图片转存中…(img-Xd1gmuSs-1713076754382)]

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

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐