在测试过程中引入可观测性平台提升业务质量

news2024/11/26 16:37:32

作者 观测云 产品技术专家 成都办公室 - 刘跃兰

前言

随着微服务技术的发展,微服务概念已深入人心,越来越多的企业开始使用微服务架构来开发业务应用。业务应用系统的整体架构变得更加复杂,并存在各种各样的不确定性因素,从而对质量保障,以及相应的测试工作带来了巨大挑战。因此,在这样的背景下,测试人员就更需要借助简单易用的工具辅助测试工作。观测云就属于能够协助测试人员获取各类测试结果的有效工具。
本文通过一些常见场景的举例,来介绍观测云是如何辅助测试过程的,希望给予读者一些灵感。

轻松观测测试环境和业务应用状况

测试环境状况检验

在测试环境中,如果安装部署了观测云采集器 DataKit,测试人员就可以通过「基础设施」的基本信息直接获取到测试主机的配置情况,检查测试环境是否满足测试配置要求。效果如下:

在安装 Datakit 采集器基础知识又接入了「应用性能监测」,便可以观测到应用服务调用时对应的主机运行情况,排除硬件环境干扰。效果如下:

多维调用关系梳理

微服务架构下,无形中增加了很多“平行调用关系”,它不是最终用户调用的,而是服务内部去调用内部的服务的情况。测试人员可以通过观测云「应用性能监测」的服务拓扑图,清晰明地查看不同环境版本下各服务内部调用情况。根据测试判定标准、自定义区间等,为选择的填充指标自定义服务节点颜色区间范围,划分不同的等级,通过颜色区间快速有效地观测到各服务的请求数、P50 响应时间、P75 响应时间、P99 响应时间和错误数等性能指标测试结果。效果如下:

配置详情可参考《观测云应用性能监测的实现方式》

网络性能异常检测

在微服务架构中,每个服务都是独立的进程,并且通常部署在不同的基础设施,无法简单的使用本地调用的方式,而是需要远程服务调用来实现服务间的通信,那么微服务间的通信就会对网络情况产生高度依赖。测试人员可以通过观测云的「网络监测」模块快速感知,排除因网络不稳定引起的故障干扰。
进入「链路」页面后,可以看到火焰图、存在调用关系的各服务耗时占比情况。将服务调用栈情况与当时的网络运行情况相结合,当发现某个服务耗时较长时,可以以此优先排除网络干扰。效果如下:

配置详情可参考《观测云开启 eBPF 的方式》

观测云在单元测试中的应用

单元测试(unit testing)是对软件中的最小可测试单元进行检查和验证。对于 Java 里单元测试中单元的含义,一般是指一个类。在单元测试时,观测云应用性能监测的 Profile 可协助自动获取应用程序运行过程中下钻到代码行,直观地展示 CPU、内存和 I/O 的使用情况。通过火焰图实时展示每一个方法、类和线程的调用关系和执行效率,帮助测试人员获取代码性能情况,得出测试结果,并协助开发优化代码。

功能详情可参考《观测云 Profile 介绍》

观测云在性能测试中的应用

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。

  • 负载测试可以确定各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
  • 压力测试则是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

在测试过程中,可以利用 Loadrunner、JMeter、PerformanceRunner 等压力测试工具,模拟高并发的客户端,通过协议和报文产生并发压力给服务器,测试整个系统的负载和压力承受能力,实现压力测试、性能测试、配置测试、峰值测试等。
开启观测云应用性能监测(APM)功能后,可在「应用性能监测」–「 服务」列表中,点击所要查看的服务,即可看到该服务的性能测试结果。效果如下:

配置详情可参考《观测云应用性能监测的实现方式》

前端用户访问的性能分析,可通过观测云的「用户访问监测」–「分析看板」 – 「性能分析」获取 LCP、FID、CLS 和页面访问量排行(TOP 10)等性能测试结果。效果如下:

配置详情可参考《观测云用户访问监测的实现方式》

帮助节省 bug 复现成本

测试人员最为苦恼的事,莫过于在测试过程中出现过的问题,在开发人员 debug 之时却不能时时复现。不仅如此,云原生、容器、跨域等复杂的测试环境,加剧了这种情况出现的频率,导致开发人员无法定位,也就无法及时准确地修复 bug,进而成为后续版本中隐藏的风险。观测云的「快照」、「创建 Issue」 和「会话重放」功能可以非常有效地辅助测试人员减轻这样的烦恼。

快照分享

当测试人员在测试工程中发现 bug 时,可将对应的「链路」-「日志」关联信息保存快照,对应 bug ID,分享给开发人员,并记录到测试记录文档中,方便开发人员快速了解 bug 的前后端链路、日志、主机、JVM 等信息,快速定位 debug,节省传统方式的沟通成本和复现问题所需的时间成本。效果如下:

除此之外,还可以在创建快照时,根据需要选择分享方式(公开分享和加密分享)、快照有效时间(48 小时或永久),以及是否显示顶部栏和水印,满足多样化场景(例如,涉及外部人员参与排障的场景)。效果如下:

创建 Issue

Issue 作为异常追踪功能的最终落地单元,承担了整合当前工作空间中的异常问题来源、描述、相关成员等信息的角色。任何成员均可将在观测云中所观测到的异常现象,定义成一个 Issue,并通知相关成员来追踪处理。效果如下:

功能详情可参考《观测云 创建 Issue 介绍》

会话重放

会话重放可将测试过程中模仿用户访问网站的过程重建演示,通过捕获单击、鼠标移动和页面滚动等内容,生成视频记录,深入了解测试过程中的操作步骤。在前后端出现问题的时候,开发人员可结合用户访问性能数据,帮助进行错误定位、重现和解决问题。

功能详情可参考《观测云会话重放介绍》

  • 若当前 Session 已配置会话重放,则可点击「查看器」-「▶️ 播放按钮」,查看对应 Session 的会话重放。
  • 也可在 Session、View、Error 查看器详情页,点击右上角的「会话重放」,查看当前用户会话的操作重放。

观测云笔记辅助功能

测试团队可以通过观测云的笔记功能,管理测试文档模板,记录测试过程中发现 bug 时相关信息,方便后续根据测试数据比对和跟踪修复情况。笔记支持 21 种图表,可以新建图表,也可将工作空间中已有图表导出到笔记。在主机、容器、日志查看器、应用性能监测查看器、用户访问监测查看器中均有「导出到笔记」的下拉选项。

总结

在测试环境中引入观测云,可方便测试人员快速排除硬件设施、网络等因素的干扰,将更多的精力用在测试案例的优化上,并能准确地将测试产生的实际数据反馈到测试报告,或相关人员,提高整个团队的效率,确保更高效地提供高质量产品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1020030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx+keepalived集群搭建

1. nginx部署 单机部署可参考:https://blog.csdn.net/ym5209999/article/details/119897237 2. keepalived安装 [rootnginx1 ~]# yum -y install keepalived3. keepalived配置 3.1 安装完成后,默认配置文件位于:/etc/keepalived&#xff…

奶奶都看的懂的《栈》(C语言实现,超详细解析 !!!)

目录 一、前言 二、栈 🍎栈的概念 🍐栈的结构​编辑 🍉栈的实现 🍊栈 各个接口的实现 ⭕ 定义一个 栈 结构体 ⭕栈 的初始化 ⭕ 栈 的尾插 ⭕ 栈 的尾删 ⭕ 栈 内数据个数 ⭕ 获取 栈 顶元素 ⭕ 判断 栈 是否为空 ⭕…

Linux-网卡和网络配置

链接一篇大佬的博客:Linux之手把手教会修改网卡名称 文章目录 修改网卡名称步骤1:修改“/etc/default/grub”步骤2:修改“/etc/sysconfig/network-scripts”下的文件步骤3:修改“ifcfg-eth0”配置步骤4:判断操作系统的…

AIGC入门 - LLM 信息概览

本文将介绍以下 LLM OPTLLaMaAlpacaVicunaMosschatGLMBaichuanOpenbuddy 一、OPT 1、背景 OPT全称Open Pre-trained Transformer Language Models,即“开放的预训练Transformer语言模型”,是 Meta AI 团队在2022年5月发布了开源大模型OPT-175B&#…

Ninja: Towards Transparent Tracing and Debugging on ARM【TEE的应用】

目录 摘要引言贡献 背景TrustZone和受信任的固件PMU和ETM 相关工作x86上的透明恶意软件分析ARM上的动态分析工具基于仿真的系统硬件虚拟化裸机系统 Trustzone相关的系统 系统架构具体实现和评估可以看论文,这里不赘述了讨论总结 作者:Zhenyu Ning and Fe…

ffmpeg编译 Error: operand type mismatch for `shr‘

错误如下: D:\msys2\tmp\ccUxvBjQ.s: Assembler messages: D:\msys2\tmp\ccUxvBjQ.s:345: Error: operand type mismatch for shr D:\msys2\tmp\ccUxvBjQ.s:410: Error: operand type mismatch for shr D:\msys2\tmp\ccUxvBjQ.s:470: Error: operand type mismatch…

BCrypt 密码数据加解密运用

前言: 当涉及到存储用户密码时,确保密码的安全非常重要。以往,我们通常都是采用 MD5 这种不可逆算法来进行密码数据的加密后存储,虽然MD5算法是一种常见的哈希函数,但是它已经不再被认为是安全的选项。 常规MD5加密&a…

趣解设计模式之《小王的学习秘籍》

〇、小故事 小王是学校的学霸,凭借着自己的天赋以及对于学习的刻苦,每次考试都能排到年级第一名。但是,他所在的班级总成绩却不高,在所有班级中,属于中游水平。老师希望通过小王的贡献,能否帮助整个班级同…

证券账户可以绑定几张银行卡,可以更换绑定吗

个人账户实现股票量化程序化自动交易,券商有接口,门槛已降低_股票程序交易接口的博客-CSDN博客像上面的例子,如果按照市面上常见的可转债万3或万2不免5,人工操作费率限制,这种情况就不要想,根本没机会&…

返回最大元素的索引 忽略数组中所有的NaN值 numpy.nanargmax()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 返回最大元素的索引 忽略数组中所有的NaN值 numpy.nanargmax() [太阳]选择题 请问代码中第一次执行语句的输出正确的是? import numpy as np a np.array([0,np.nan,2]) print(&…

H264视频压缩格式

H264简介 H.264从1999年开始,到2003年形成草案,最后在2007年定稿有待核实。在ITU的标准里称为H.264, 在MPEG的标准里是MPEG-4的一个组成部分-MPEG-4 Part 10,又叫Advanced Video Codec,因此常常称为MPEG-4AVC或直接叫AVC。 压缩算…

服务器搭建(TCP套接字)-fork版(服务端)

基础版的服务端虽然基本实现了服务器的基本功能,但是如果客户端的并发量比较大的话,服务端的压力和性能就会大打折扣,为了提升服务端的并发性能,可以通过fork子进程的方式,为每一个连接成功的客户端fork一个子进程,这样…

Ansible自动化:简化你的运维任务

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

OpenStack创建云主机并连接CRT

文章目录 OpenStackT版创建云主机并连接CRT命令行操作(1)创建镜像(2)创建实例(3)创建网络创建内网创建外网 (4)创建安全组(5)创建路由(6&#xff…

如何利用CSS实现三角形、扇形、聊天气泡框

思路 三角形 实现三角形的关键思路是使用 CSS 的 border 属性来创建一个透明的矩形块&#xff0c;并利用边框的透明部分来形成三角形。下面是创建三角形的一般思路&#xff1a; 创建一个 HTML 元素&#xff0c;通常是一个 <div> 元素&#xff0c;用于容纳三角形。 为该…

超低功耗段码LCD液晶显示驱动IC-VKL144A/BQFN48超小体积液晶驱动

产品品牌&#xff1a;永嘉微电/VINKA 封装形式&#xff1a;TSSOP48/QFN48L 产品年份&#xff1a;新年份 沈先生 135 、547/44,703 原厂&#xff0c;工程服务&#xff0c;技术支持&#xff01; VKL144A/B 概述: VKL144A/B 是一个点阵式存储映射的LCD 驱动器&#xff0c;可…

数据库操作-DML/DQL

数据库操作-DML DML英文全称是Data Manipulation Language(数据操作语言)&#xff0c;用来对数据库中表的数据记录进行增、删、改操作。 添加数据&#xff08;INSERT&#xff09; 修改数据&#xff08;UPDATE&#xff09; 删除数据&#xff08;DELETE&#xff09; 增加(ins…

面试题四:请解释一下watch,computed和filter之间的区别

watch与computed、filter&#xff1a; watch:监控已有属性&#xff0c;一旦属性发生了改变就去自动调用对应的方法 computed:监控已有的属性,一旦属性的依赖发生了改变&#xff0c;就去自动调用对应的方法.computed有详细的介绍&#xff0c;移步computed的使用 filter:js中为…

2023 Google 开发者大会 – 惊喜来袭

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 2023 Google 开发者大会 – 惊喜来袭 2023 Google 开发者大会面向开发者和科技爱好者展示最新产品和平台的年度盛会。今年Google大会为大家提供了丰富的学习资源&…

transforms数据预处理【图像增强】 ->(个人学习记录笔记)

文章目录 1. 安装2. transforms——Crop 裁剪2.1 transforms.CenterCrop2.2 transforms.RandomCrop2.3 transforms.RandomResizedCrop2.4 transforms.FiveCrop2.5 transforms.TenCrop 3. transforms——Flip 翻转3.1 transforms.RandomHorizontalFlip3.2 transforms.RandomVert…