什么是流量录制回放?流量录制回放是应用端通过挂载注入录制器探针自动注册到服务端形成录制流量回流,将所有外部调用依赖的响应内容(如数据库、分布式缓存、外部服务响应等)进行完整记录。由平台向回放器分发流量回放指令。其核心价值是通过直接录制生产的真实数据,将生产真实数据转化成可复用、可执行的流量,快速地在测试环境中进行回放比对接口返回值和中间链路的验证。
数据平台利用大数据智能分析、数据可视化等技术,对公司内外部经过采集、建设、管理、分析的多源异构数据进行呈现和应用,实现了数据共享、日常报表自动生成、快速和智能分析,深度挖掘数据价值,满足企业各级部门之间的数据分析应用需求。因而也具有数据量大,场景多,数据准确性要求高,查询性能要有保障等特点。
在产品需求迭代过程中,功能测试与回归测试是必不可少的两个环节。对于改动较大的项目,首先,确保功能的实现符合产品逻辑并做到100%没有问题离不开有效的功能测试;其次,项目中很多逻辑的改动都是在原有功能的基础上进行的,这时候就需要一定的回归测试。通常,在功能测试时,人工case不能模拟线上用户的所有行为,且具有一定的主观性;回归测试时,采用全面回归的方式往往也伴随着测试成本的增加。一个好的方式就是利用线上流量来验证。
随着微服务架构的兴起,服务之间的依赖关系变的越来越复杂,软件测试也面临新的挑战:系统升级频繁、服务依赖众多等等。
Moonbox:月光宝盒 Moonbox(月光宝盒)是[JVM-Sandbox]生态下的,基于[jvm-sandbox-repeater]重新开发的一款流量回放平台产品。在jvm-sandbox-repeater基础上提供了更加丰富功能,同时便于线上部署和使用 使用场景 你是否遇到过以下的问题? 线上有个用户请求一直不成功,我想在测试环境Debug一下,能帮我复现一下吗? 压测流量不知道怎么构造,数据结构太复杂,压测模型也难以评估,有什么好的办法吗? 不想写接口测试脚本了,我想做一个流量录制系统,把线上用户
在深入测试工作的那段时间,笔者发现测试人员因为工作边界模糊,大部分时间和精力都花在了功能测试上,而对于质量测试、自动化测试等扩展性强的工作,所花时间和精力很少,这是一件可悲的事情,但这是很多公司内都存在的现象。导致这种现象的原因有很多,其中一个让人特别头疼的问题就是自动化测试的覆盖速度远远达不到产品变化的速度,所以很多人失去了信心,选择老老实实地做功能测试。
小结:因为本文重点讲的是bos的测试体系,对于bos的内容不过多赘述了,有兴趣的小伙伴可以查看有赞coder的文章,里面有更多相关bos的内容。
滴滴这家公司,不管它每年所说的亏了多少?赔了多少?也不管它到底有没有方便我们出行?我们只讨论它开源的几个强悍的产品对我们开发的帮助和影响。
GoReplay是一款开源的用来进行http流量录制与回放的工具,因此可以通过它来进行线上真实流量录制然后将录制的流量回放到测试环境用来确认新开发的功能是否有问题,这样可以极大的提高新功能发布的信心,不得不说是一款神器。
本篇背景是另外一同事朋友,最近在利用流量回放技术应用在服务端接口自动化测试方面,还在各部门全力推进阶段,未来效果暂且不好说,但这部分内容确实各大公司,测试技术大会等等的热词,由于我没参与但我很感兴趣,所以邀请普及一篇,后边应该还会带来实战篇,本公众号坚持原创和干货分享,欢迎长期关注,一同成长,如果你有好的实战分享也欢迎投稿。
测试用例不足或者遗漏难以覆盖所有场景,导致回归测试费时费力,线上稳定存在隐患,通过真实流量录制在回归测试时进行覆盖。
携程AREX团队,机票质量工程组,主要负责开发自动化测试工具和技术,以提升质量和能效。
作者简介 康猛,携程网站运营中心资深技术支持工程师。在互联网系统架构设计、后端开发、性能测试领域有多年实战经验。喜欢钻研新技术,善于转化研究成果,提升工作效率。 一、背景 众所周知,在产品迭代过程中,功能测试与性能测试是必不可少的两个环节。在产品上线的过程中,做容量预估离不开性能测试,在产品迭代过程中,测试Case覆盖率是功能测试必须要关注重要指标,甚至是一行代码的修改,没有经历过严格的功能与性能测试,都有可能导致大的生产故障。 近年来,携程生产环境应用改造项目逐渐增多,快速构造贴近生产的测试用例,压力可调
测试是产品发布上线的一个重要环节, 但随着业务的不断壮大和快速迭代, 每次上线需要回归的功能会越来越多, 周期越来越长, 测试同学的压力会越来越大, 老板越来越不满意, 恶性循环就此开始...
UbiSQL 这个词对大家来说可能比较陌生,UbiSQL 是平安集团内部打造的分布式数据库产品,代码基于 TiDB,完全兼容 TiBD 4.0 版本。在 TiDB 的特性之上,UbiSQL 在稳定性、安全性和应用性上面都做了提升,打造出一个金融级且内核源码自主可控的分布式数据库,提供一栈式 HTAP 解决方案。
对比完了,对于一些类似时间戳的值,其实就是噪音,这些不一样很正常,我们需要剔除,不然差异没有价值。
Tech 导读 本文介绍了一种基于线上流量实现对重构系统进行功能和性能验证的实践方案。针对线上流量如何拦截、如何录制、如何存储、如何回放以及如何发压均作了详细说明,为具有类似需求的读者提供了一种可供参考的思路。 01 业务背景 在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了! 随着百川项目的启动,中台需要对订单流量收口,将ECLP、各BP的接单入口全部切换至百川统一接单系统。且各个接
目前输入法服务端的例行性能测试主要使用开源的流量回放工具goreplay,这个工具本身是做流量回放使用的,也可以在回放流量的时候缩小或者放大倍数,以达到性能测试的目的,但是毕竟不是专业做性能测试的工具,就像这句名言说的“不是他的活他要干”,所以对于结果统计,goreplay不是很擅长,为了让他支持客户端统计,需要对他做个升级;
近几年,vivo互联网领域处于高速发展状态,同时由于vivo手机出货量一直在国内名列前茅,经过多年积累,用户规模非常庞大。因此,vivo手机出厂内置很多应用,如浏览器、短视频、直播、资讯、应用商店等都是直面用户的高并发、复杂系统。这些面向用户的系统对使用体验要求非常高,对这些业务的质量保障是重中之重。
姜传伟,携程机票高级软件工程师。机票前台服务端搬砖工,负责机票前台服务端基础框架。
对于流量回放这个词,很多同学并不陌生,但绝大多数公司因种种原因并没有进行实践,最现实的原因是由于做全链路的流量回放有大量的写操作,必然要涉及到系统改造,数据加工脱敏等,技术难度和风险相对较高,并非每一家公司都如阿里巴巴一样具备大流量的应用场景,在系统改造不彻底的情况下,存在投入产出失衡的现象,这不仅是技术的问题,也需要文化的支持,从个人角度而言我们依然可以进行一些模拟,这次我总结了以goreplay工具的轻量级流量回放使用方法。
回归测试是软件生命周期一个十分重要的环节,但项目在随着版本的逐步迭代,功能日益增多,系统愈加复杂,在测试过程中测试人员常常需要回归稳定版本的功能以保证不被待发布版本需求所影响。若要对系统进行全方位回归,这个测试的工作量将会非常庞大,而且可能几百上千用例中才会发现一个甚至是0个问题,测试投入产出不成比例。
数据库升级本身就是存在一定风险的操作,TiDB 如何实现平安、顺利、无感的迁移?本文结合一个使用量过亿的用户 K8s 集群升级的案例,介绍了 TiDB 的升级工具包的使用方法,如何实现从简单的参数比对到全场景的模拟重放,根据实际需求和成本考量自主选择搭配方案。
康猛,携程网站运营中心资深技术支持工程师,在互联网基础架构系统设计,后端开发,性能测试领域有多年实践经验。喜欢钻研新技术,转化研究成果,提升工作效率。
压测是目前科技企业及传统企业进行系统容量评估、容量规划的最佳实践方式,本文将基于京东ForceBot平台在大促(京东618、京东双11)备战中的实践历程,给大家分享平台在压测方面的技术变革。ForceBot平台是一款分布式性能测试平台,能够为全链路压测构造千万量级的压测流量,并结合全域流量录制回放、瞬时发压、智能寻点等能力,为整站容量评估与规划提供一站式的解决方案。
之前写过一个日志回放引擎的第一代千万级日志回放引擎设计稿,当时理解的日志回放就是把日志记录的请求重新发出去,这就是回放线上用户的流量了。可是在我最近看goreplay的过程中,重新刷新了我的认知。
作者 | 汪成坤 策划 | 褚杏娟 在泛敏捷思潮变革、DevOps 大行其道的背景下,小步快跑的模式极大程度压缩了质量保障活动的时间,传统的自动化测试工具已无法满足持续交付的需求。流量录制回放的概念近年来愈发火热,从业界大会到社区论坛,众多工程师进行了大量的思辩悟,肯定了 API 录制回放能有效地解决测试、研发工程师在质量活动中的核心痛点从而带来可观测的研发效能提升。 流量录制回放的核心价值是通过直接录制生产的高保真数据,快速地在测试环境中进行回放比对接口返回值和中间链路的验证。录制回放很热,行业
已录制的流量进行回放,如果回成功率较低,比如20000个请求错误率5%,也有1000个错误, 对开发测试排查成本过高,疲惫抱怨也会增加。本文降低排查成本提升开发测试效率,侧重在智能降噪这块涉及的知识点进行整理,主要内容有:
最近网传,微信支付崩了,哈罗出了问题,部分公司性能测试架构师招聘又开始火热起来,现在都叫做全链路压测,那什么是全链路压测呢,跟传统压测区别是啥呢?全链路最早是阿里提出来的,在2012年的双11,零点的时候,系统交易成功率不足50%,下单报错,购物车报错,并伴随着大量超卖,后来提出了全链路压测,这篇文章就来聊聊全链路压测的关键点。
在评估某个服务可用性时,一种常见方式是采用一些压测工具(如ab/hey/jmeter/siege/wrk/locust等)压测某几个核心接口,一般看达到某个TPS/QPS时,CPU/内存等资源的水位;或者固定资源的阈值,看最高能达到的TPS/QPS。
前几天在技术交流群,大家又讨论起了流量录制回放的话题。我观察了一下,讨论的人不少,大体有这两种观点:第一种观点认为,流量录制回放的应用前景很广阔,能大幅度提高测试效率和技术逼格,都想在自己团队落地,但需要一些最佳实践参考;第二种观点则认为只有大厂才能做这个实践,小公司就别想了。
我们经常会重构一些复杂的接口,那么对于返回字段多并且逻辑复杂的接口如何来验证? 有如下几种方案
goreplay是一个开源网络监控工具,可以实时记录TCP/HTTP流量,支持把流量记录到文件或者elasticSearch实时分析,也支持流量的放大、缩小,还支持频率限制;goreplay不是代理,无需任何代码入侵,只需要在服务相同的机器上运行goreplay守护程序,其会在后台侦听网络接口上的流量,goreplay的设计遵循 Unix 设计哲学:一切都是由管道组成的,各种输入将数据复用为输出;可以看一下官网画的架构图:
在使用Disruptor设计新的性能测试模型的过程中,在使用过程中,偶然发现会有一些异常,然后QPS就会不断下降,直到最后QPS能力降为零。经过查询相关资料后发现了一个小坑:com.lmax.disruptor.ExceptionHandler。
随着流量增长,服务的节点越来越多,对服务性能要求也越来越大,在服务启动时经常会发现存在抖动,针对这些服务抖动,就需要采取一些预热措施,下面就简单介绍下系统相关的服务预热、中间件预热、数据库预热等
大家所熟悉的性能测试工具有Loadrunner、JMeter,以及其他小众一些的工具,如Locust、Ngrinder、Gatling等等,那么你们知道这些工具有什么不同吗?为什么有的工具能模拟数千上几万的并发,有的工具单机只能模拟一两千的并发,这其中的原因是什么呢?那么这节课我就来告诉大家,你所不了解性能测试工具的一面:并发模式。
有赞搜索中台的前身是ES中间件,并没有一个中台的概念,相应的就会有一个问题,业务接入搜索场景的时候还需要为此投入开发资源同步搜索设计,一个需求上线往往耗时很久,重复性工作较多,所以就有了后来的搜索中台的成立,将搜索完整链路的复杂性折叠成一个简单完整的搜索产品,让业务方直击搜索需求,无需费心搜索实现;在此前提下,如何针对搜索中台进行一个从0到1的完整的质量保障也是一个挑战,且中台面临的问题可能跟传统业务面临的不大一样,保障手段也需要更多样化。
AutoMeter 是一款针对分布式服务,微服务 API 做功能和性能一体化的自动化测试平台,一站式提供发布单元,API,环境,用例,前置条件,场景,计划,报告等管理
jvm-sandbox-repeater 是阿里开源的一款可基于 jvm-sandbox (阿里另一开源项目)可对应用目标 jvm 进行动态增强同时对目标服务的指定流量进行录制及回放的工具,使用过程中遇到如下问题:
在性能测试中,有一个无法避免的问题,就是如何处理性能测试用例使用到的数据,其中包括前置数据、运行时数据和后置脏数据清理。
一开始从索引参数调整, forcemerge 任务引入等多个手段来缓解问题,但是伴随数据的快速膨胀还是遇到类似高命中查询等难以优化的问题,从而引出了索引拆分方案的探索与实施。
在日常的性能测试中,「流量回放」是一个非常优秀的方式,不仅可以快速构建测试用例且无限贴近预设场景,而且借助许多优秀的回放框架如「goreplay」等,可以极大地降低测试门槛,节省时间成本。此方式非常适合进行快速的性能排查,于在有限的资源下快速发现解决问题。
在上一篇文章中,我们说到了一个非常有意思的模式: AWD(Attack With Defense,攻防兼备)模式。你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说,攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人得分,以防扣分。
伴随政府采购业务的快速发展,政采云的商品数据量也在快速膨胀,其中由 ES 进行提供的商品检索服务压力,也越来越大。由于商品模型中基础商品和交易商品的定义,导致商品本身的量会相对一般的电商场景多出一倍。
在安装 Kube-OVN 时可以开启 mirror 选项,会自动在每个节点创建 mirror0 网卡,该网卡复制了该节点上所有的容器网络流量。可以通过监控 mirror0 网卡来获取该节点所有容器网络流量信息,便于之后审计,流量回放等功能实现。
最近由于需要开发测试环境管理工具,研究了下k8s的设计概念,过程中接触到了蓝绿部署、金丝雀部署、滚动部署等名词。
本节将展示抓包工具,抓包工具结合接口测试平台,可以通过抓前端的包,来直接把接口导入到自己的项目中,这样做的好处是数据等都是真实可靠的,自己之后测试改一改也很简单,类似于流量回放。而且可以把多个接口有前后逻辑关联的,直接导入成一整个用例。
领取专属 10元无门槛券
手把手带您无忧上云