博客/工程

k6在k6 OSS中引入了浏览器自动化和Prometheus支持

2021年11月24日4分钟

虽然有很多关注三大支柱在可观察性方面,负载测试提供了对生产中应用程序性能的洞察,这是可观察性故事的另一方面。

通过使用开源负载测试工具k6Grafana实bob电竞频道验室今年早些时候收购的开发人员可以模拟真实世界的交通来测试软件变更和新功能的可靠性和性能,更不用说标记性能问题了之前影响最终用户。

ObservabilityCON 2021k6团队介绍了两个新的关键特性,展示了该工具的灵活性,以及它如何有效地提高应用程序性能、可靠性和稳定性。

介绍k6浏览器自动化

随着xk6-browser扩展后,k6团队交付了社区中最受欢迎的特性。

使用xk6-browser,您可以与浏览器交互以端到端测试web应用程序,同时访问所有k6核心功能,包括协议级api和其他功能转k6扩展

从测试编写和脚本的角度来看,这意味着您可以根据用户操作(例如导航、鼠标和键盘操作、截取屏幕截图)编写脚本,而不是通过发出HTTP请求、WebSocket消息等。这样做有很多好处,比如在使用协议级api编写脚本非常麻烦、脆弱且难以维护的用例中,可以改善开发人员的体验。

xk6-browser API的目标是大致兼容NodeJS剧作家API,通过Chrome Devtools协议(CDP)添加浏览器自动化。

xk6-browser还允许混合浏览器级和协议级api。现在,您可以像往常一样使用协议级场景模拟大量流量,同时,让虚拟用户使用真正的浏览器与您的网站或应用程序进行交互,以收集前端指标(DOM内容加载、加载、第一个内容绘制等)。

这是第一次出现了一个用于协议级和浏览器级测试的单一工具。不再进行重构。不再试图将两个工具连接在一起。不再需要多种脚本语言的交叉训练。现在我们可以编写一个测试套件,甚至一个脚本,并将其用于协议级和浏览器级测试。

要了解更多关于k6浏览器自动化的信息,请参阅文档而且GitHub库

k6 OSS启动普罗米修斯支持

转k6 OSS支持发送k6指标多个输出比如InfluxDB, New Relic, StatsD等等。但是Prometheus一直没有出现在这个列表中,尽管它是云原生监控的标准。

直到现在。Prometheus现在在k6 OSS中支持xk6-output-prometheus-remote,它最终允许您在Prometheus中存储k6度量。除了Prometheus之外,任何兼容的远程写解决方案也可以与此输出扩展一起使用。

用Grafana可视化k6指标

一旦你设置Prometheus输出扩展,与k6 OSS直接兼容Grafana云而且Grafana企业度量

有多达25个k6中的内置度量每个测试运行都会在默认情况下生成,比如虚拟用户的度量,迭代及其持续时间,以及数据流的度量:

大多数持续时间的k6指标属于趋势指标类型,每个指标由几个值组成,可以从上面的迭代持续时间中看到。

由于HTTP是目前最常见的协议,因此k6生成了大量描述HTTP请求的基本数据。根据用例和个人的想象力,可以使用不同的可视化和数据阈值、警报等来查看它。以下是在Grafana Cloud中如何表示k6测试运行中的RPS、响应率、总请求和错误的一些示例:

由于Prometheus远程写扩展默认情况下收集带有标签的指标,还有一种快速的方法可以通过标签值将过滤添加到Grafana仪表板,如下所示:

现在,图表和表格也可以通过url、场景和HTTP方法进行过滤:

欢迎反馈!

你觉得怎么样xk6-output-prometheus-remote扩展吗?关于xk6-browser?

我们一直在寻求反馈,这样我们就能更好地了解社区的需求。请分享你对改进的想法GitHub存储库上的问题部分,或者在我们的社区论坛松弛

或者如果你被卡住了,或者对团队有任何问题,请通过转k6论坛GitHub,或松弛

在Grafana中开始进行k6性能测试的最简单方法是什么?注册一个免费的Grafana云帐户和一个免费的转k6云帐户。