游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

录制线上流量做回归测试的正确打开方式

  线上流量什么是录制线上流量回放
  为什么需要录制线上流量回放项目大迭代更新,容易漏测,或者有很多没用评估到的地方。如果用线上流量做一次回归测试,可以进一步减少bug的风险。大大节省构造测试数据,或者构造测试数据脚本的时间,提高效率。线上流量回放的限制是什么只回放GET请求
  因为其他请求的回放,会对用户数据进行操作,有风险,需要排除。
  除非构建多套备份数据库,但成本太高,不是很有必要。需要对比回放前后的流量
  不然回放就没有意义了,你都不知道回放前后对比的差异是什么。需要去噪音
  对比完了,对于一些类似时间戳的值,其实就是噪音,这些不一样很正常,我们需要剔除,不然差异没有价值。
  由此可见,想要正确打开线上流量录制回放,需要解决很多问题。
  而重中之重,就是diff。回放差异diffdiff实现对比和去噪
  demo实现dockercomposeversion:2services:httpdemorecord:image:shaonianhttpdemo:gortestv2。9ports:8080:8080httpdemoreplayold:image:shaonianhttpdemo:diffold1httpdemoreplayoldnoise:image:shaonianhttpdemo:diffold2httpdemoreplaynew:image:shaonianhttpdemo:diffnewdiff:image:shaoniandiff:v0。1command:candidatehttpdemoreplaynew:8080master。primaryhttpdemoreplayold:8080master。secondaryhttpdemoreplayoldnoise:8080service。protocolhttpserviceNameDiffTestproxy。port:8880admin。port:8881http。port:8888rootUrllocalhost:8888summary。emailyouremail。comports:8881:88818888:8888diff效果
  diff限制
  diff的归类有问题。
  因为url能携带各种各样的param,所以diff设计里面不会直接把url作为归纳名,需要通过在请求的header里面增加CanonicalResource:httpdemo来设置。
  这就出来一个问题,线上转发的流量,无法根据具体的路由来动态设置归纳名,只能统一设置成是一个服务的,比如httpdemo这样,但是我这个httpdemo下有很多api,出来的差异具体是哪一个api呢,我也不知道,得看返回字段去猜,就很华而不实。
  所以做到这里,只能自嗨,无法落地到实际项目中,想要真正落地,这一步也是一定一定要解决的!缺陷
  以上实现的方法总结起来,就是把录制gor组件写进Dockerfile,并在项目运行的时候,实时录制线上流量,转发到测试环境,然后进行diff去噪对比。
  但是这样就大功告成了吗?
  并没有。
  还有几个问题需要自我反问一下。我们真的需要实时录制转发吗?
  其实不需要。
  我们只是希望能够录制线上请求,然后根据再迭代之后用来回放测试。
  如果开启实时回放,会在我们不需要测试的时候,浪费服务器的性能和资源。线上录制的回放,真的就代表全部场景吗?
  其实也不对。
  用户不一定不触发的场景,其实我们也需要覆盖。
  录制只是让我们更容易更便捷生成测试数据而已。线上录制会有性能损耗吗?
  或多或少都有影响,毕竟gor和服务处于同一个容器中。
  所以三个反问以后,我们的需求逐渐明确了。
  我们需要一个不会影响线上服务性能的,又能快速生成测试数据回放,并且能自定义补全更多场景的测试回放。
  同时,我们还需要解决diff的路由智能匹配的问题。
  这样可以吗?
  我觉得可以。尝试的解决方案可以通过复制粘贴人为构造回放所需的测试数据日志
  上图是录制流量以后保存的log文件,我们可以清楚看到它的结构,所以这是不是意味着,只要我们写出来这份相同格式的log,我们就能直接凭借这份log来回放呢?
  对的。
  此外,这个log里面,你可以直接根据具体的url,设置好相应的CanonicalResource,就直接解决了diff路由归纳名的问题。
  而且,我们根本不需要真的到线上去录制,伪造一份这样格式的log,甚至还可以直接修改补全一些没有的场景进去,就可以直接以此为范本,作为回放log的效果了。
  这样也根本不需要担心线上录制会影响线上服务器的性能和资源。解决所有问题以后,还有什么不优雅的地方
  那log我也得复制粘贴去生成,而且log里面的时间戳排序,我也得自己造,这样看似方便,其实只是方便了不用手写代码来编造测试数据,可以直接通过编写log就能回放流量。
  也就是,这样的方案,只是降低了测试技术栈的门槛,提高了一点点的效率。
  而且还有个问题,很多的数据,我其实是动态生成的,我传进去之前,还得通过其他接口去获取返回值,再动态填进去,这样写log并不能实现啊。
  还有,很多参数也有时效问题,过段时间token过期了,我替换token也很麻烦。
  就算,设置成万能的token,那涉及到用户的数据,比如有些业务场景token里面包含了某类用户具体信息的时候,万能token就不管用了,因为有很多自定义的数据要去测。
  所以,看似解决完所有技术栈问题以后,其实还有很多业务问题,导致它使用场景有限,甚至无法完全落地。正确打开方式
  为什么要拘泥于用线上流量来回放呢?
  如果我的脚本能够批量构造大量且覆盖众多场景,且可高度自定义的请求,再将这些请求直接去请求diff,不就能直接对比出前后有什么差异吗?
  何况,就算我的内部rpc服务调用更改,变得更加复杂,但是暴露在外给用户的业务操作,是不会发生大改的。
  而且此前,基于项目shaonianboomerlocust的压测工具,我之前已经实现了全链路压测的业务逻辑覆盖。
  所以这里完全可以引出一个全新的概念,用可控速度的压测工具,以及高度灵活的编程脚本,实现大批量构造测试数据,模拟业务场景压力,并直接实现前后对比差异的不同。
  因为数据全部都是新构造好的,所以不止GET请求我可以做,POSTPUTDELETE请求我也可以,因为数据都是我构造上传的,如果在测试环境中,完全删掉都不会有影响,而且只要设置好前后的测试脏数据的清理,其实线上数据库都能做。(当然,直接做到stage环境数据库就可以了,prod没必要。)进一步完善
  既然正确打开了前后版本的快速diff测试,那么如何进一步完善呢?
  当然是提高脚本的业务覆盖场景,已经代码覆盖率。
  如何判断自己的构造回归流量,尽可能覆盖完全呢?
  我们可以引入代码的实时染色,在本地就先测好覆盖率,再去部署上线。
  这个代码实时染色,可以基于goc在vscode的插件来实现。
  至此,快速构造测试数据,对比前后版本的方案成型,且可根据业务定制脚本,可落地实现,真正意义上地实现回归diff测试。
  由此为基础以后,下一步,当然就是精准化测试,也是未来测试的大势所趋。

短视频也能玩混音了?再不玩就low了混音是甚?(官方解释)混音是把多种来源的声音,整合至一个立体音轨或单音音轨中。混音有什么作用呢?简单来说,就是烘托氛围啊。让视频声音显得不那么单调……共享单车ofo还有超5亿未履行?是行业泡沫还是崩盘提到前几年最热的行业,共享单车行业绝对热度最高的行业之一,不仅用户量庞大,拉投资、企业扩张的速度也十分之大。但由于资金链的锻炼以及太快速扩张等原因,最终小黄车凉了,不愿意和摩拜……手机快速充电会损伤电池吗?爱押小编来告诉你对于便携式移动设备来说,最头疼的问题之一就是电池。因此,手机抵押各种OEM厂商都想尽办法解决移动设备的充电问题,比如使用更省电的SoC、更节能的代码、Qi无线充电器等。现在甚至……丰田章男欢迎苹果进军汽车业,但至少要锻炼40年丰田总裁丰田章男在周四担任日本汽车制造商协会主席的新闻发布会上表示,欢迎苹果加入汽车行业,但苹果公司至少应该为40年的服务和支持做好准备。丰田章男称,只要有技术能力谁都可……新社保迎来三大变化!明年1月1日开始实施!这10种人可不缴社最新文件公布,事关所有人社保将迎来三大变化!人力资源社会保障部2018年11月13日最新发布:社保经办管理服务条例征求意见稿。大幅减少证明事项,解决难点痛点,制定黑名单制……iPhone13好色之徒的狂欢!苹果3场发布会活动曝光Hi伙伴们,我是P君。我来给大家播报苹果秋季发布会最新资讯啦,看完告诉我你的钱包还捂得住吗?No。1科技以换壳为本?iPhone13新增8种配色之……IOS14。5正式版配合苹果表7。4正式版,终于口罩也可以解锁了。第一时间升级后,试用了一下,手机比之前流畅,应该说是恢复了苹果应该有的流畅程度,之前系统总是出现卡顿,手机是12p。另外就是苹果表……苹果已经为英特尔Mac敲响了警钟苹果曾表示将继续支持英特尔Mac多年,但许多最新的macOSMonterey功能只能在AppleSilicon上运行。苹果公司在支持旧设备方面享有盛誉,比其他技术公司要好……衣帽间的衣柜,到底要不要装门呢?受电视剧影响,开放式衣帽间是近年来比较流行的设计风格,走进去就像是在逛服装店,那颜值、那档次让人为之着迷,产生强烈的渴望,希望家里也能有一个这样的衣帽间。然而还没用上,很……奥迪Q5家族制胜法宝站在用户角度理解用户诉求满足用户需求全新奥迪SQ5在7月17日开幕的粤港澳大湾区车展上,全新奥迪SQ5以63。28万元的价格上市。它的到来不仅丰富了奥迪Q5家族产品矩阵,满足了用户对于高性能豪华B型SUV的……加来众科JA160户外弹唱直播音箱,内置专业声卡,提上音箱就任何人在演奏的时候都追求高音质的音色,要想在人群中脱颖而出吸引听众,只要携带加来众科JA160户外弹唱直播音箱,您就可以在不同的移动环境中,出色发挥您的才能,不论是街边音乐演奏……GalaxyF425G规格确认联发科处理器几个月前有消息透露,三星正在研发一款新的智能手机,可能作为GalaxyF425G推出。上个月有消息基本证实了这款智能手机的规格与GalaxyA225G非常相似,因为两款手机都列……
华为mate10和10Pro谁更值得入手?感谢邀请。其实华为Mate10和Mate10Pro产品定位区别还挺明显的,弄清楚两款手机的主要差别,结合自己的需求就比较好选择了。在全面屏的道路上,华为并没有太激进,为了……中美打响科技战,美国将在五年内投资1000亿,拜登绝不能再输中美两国在特朗普时期就处于激烈的竞争和对抗状态,美国前任总统特朗普为了打压中国,采取了很多颇为极端的做法,包括发动贸易战和科技战,污蔑华为技术涉嫌偷窃国家信息安全,指使加拿大对……裸眼3dled显示屏多少钱本文作者:裸眼3Dled显示屏厂家大元智能裸眼3dled显示屏多少钱?裸眼3dled显示屏价格包含了两个方面,一个是屏体,一个是素材。屏体价格需要根据型号而定,素材看展示……7月手机销量排行,荣耀超越小米,重回国内前三荣耀自独立之后,新荣耀的销量一直备受市场关注,人们都想知道脱离华为这棵大树之后,新荣耀是否能够独自撑起销售市场,要知道曾经的荣耀可是手机市场的香饽饽,独立以来,新荣耀先后推出了……冷饭放辣椒炒之MATE30PRO5G大家好,我是你们一天没见的胖李,今天给大家分享一下mate30Pro吧。上市到现在也两年的时间了,苦于40pro经常缺货,所以30pro也是一个不错的选择,大家跟着我忘下看吧。……为何惠普战X成为很多商务精英首选的一员?对于创业精英以及高级白领等用户来说,要为自己挑选一台工作伙伴,也就是笔记本电脑,考虑的因素要远超于普通消费者,不仅仅停留在外观以及便携度的考量,同时续航、安全性、耐用性等综合因……花费5000亿打造东方芯港后,国家再次出手,全力扶持华为目前,半导体芯片是最受国内关注的核心产业,因为无论是互联网,还是其他行业,都需要硬核技术如芯片等基础支持。甚至马化腾也公开表示,如果没有自己的芯片,国产手机、移动支付等行业,就……Sanag骨传导耳机旗舰六升级,运动耀出彩提起Sanag,大家几乎耳熟能详,这个专注时尚、创意和品质的英国品牌,近期对经典款的骨传导蓝牙耳机A7进行了六大升级,推出新品A7S,以其潮流新声音,赢得了众多消费者的青睐。接……Go1。17初识泛型最近,笔者在刷算法题时有这样的苦恼:算法题中会有很多的排序、比较题型,由于Go是强类型语言,就意味着需要针对不同的类型写出若干相同逻辑的代码,且重复度非常高。就拿int、……微软发布全新Windows系统可10年不升级,比win7还好你还在纠结安装什么样的电脑系统吗?近日微软推出了WindowsSever2022正式版,其中包括标准版、数据中心版和数据中心Azure版。这个是微软的服务器系统,核心功能跟桌面……鸿蒙系统完全开源,6。2日华为新品采用骁龙芯片适配鸿蒙系统机圈热闹了一波,是因为菊厂宣布6。2号发布会,一则就是备受关注的鸿蒙系统6。2日商用推送,到时候华为机主爽歪歪了。二则新产品使用骁龙芯片,同时搭载鸿蒙系统。其实第二个更重……低压断路器发生奇葩故障,控制器显示过载和脱扣却正常工作?某高速公路配电房发生断路器无法电动操作故障,出发前往现场先来一张豪车开路!到达目的地啦!进配电房,先看下进线总柜的多功能仪表的电压和电流显示都正常!接下……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网