• 流量回放平台学习梳理


    平台目的

    释放回归测试过程中的资源

    术语说明

    1、所谓埋点就是在应用中特定的流程收集一些信息,用来跟踪应用使用的状况,后续用来进一步优化产品或是提供运营的数据支撑,包括访问数(Visits),访客数(Visitor),停留时长(Time On Site),页面浏览数(Page Views)和跳出率(Bounce Rate)。这样的信息收集可以大致分为两种:页面统计(track this virtual page view),统计操作行为(track this button by an event)。
    2、PV:Page view页面浏览量或点击量

    环境条件

    1、基本埋点

    细化要执行接口测试的具体接口,每个接口有属于自己业务逻辑的业务埋点。实现方式有spring Aop动态拦截接口...;

    2、应用中加入业务埋点

    让用户自由组合,不同的业务埋点组合条件组成不同的测试场景;

    埋点实现方式

    第一种:自己公司研发在产品中注入代码统计,并搭建起相应的后台查询。
    第二种:第三方统计工具,如友盟、神策、Talkingdata、GrowingIO等。

    案例说明

    1)腾讯微信小程序运维中数据统计,累计用户量、今日PV
    3、应用日志按规范写入ES库,作为“流量”来源;

    应用日志规范参考

    1)每次请求都有独立的token标记;
    2)应用号用于区分不同的服务应用;
    3)接口编号用于区分相同服务的不同接口。

    3、已形成的接口自动化平台

    实现内容:从数据库读取请求报文(请求url,请求参数,请求头,响应报文),发送请求,对比结果

    4、已形成的UI自动化平台

    实现内容:接入PuppeteerAPI来代替之前的Seleium,Puppeteer可以调用Chrome的API来直接操作Web

    接口自动化

    1、构建报文

    ES日志导入自动化数据库(前置条件:已形成一套自动化平台,且有数据入库标准规范),按照单次请求进行落地,包括服务的请求报文和请求外部soa的请求和返回;

    2、执行

    把过程中调用的所有接口使用日志中记录的返回,从而达到“回放”场景的效果。
    1)并发执行并且不影响正常的业务测试流程
    实现方式:增加token标记形式触发mock测试,请求报文中增加token标记,底层逻辑通过识别标记判断是否需要读取mock返回;
    2)对比返回
    实现方式:部署了两个环境,一个是生产线上版本代码作为基线版本,另一个则是最新签入代码版本的代码,同样的请求同时发到两个环境,收集接口返回数据和中间的外部soa的请求数据作为要对比的结果。

    3、分析

    分析两个环境的返回报文和中间soa请求报文,生成了测试报告。
    实现方式:
    1)对比结果进行聚合,同时支持用户忽略、标记差异。同时每个差异项都会有跳转到测试日志的链接,方便分析定位问题。
    2)接入持续集成。每次代码签入自动触发拉取日志到报告分析的整个流程,每次从签入到收到分析报告只需要3min左右。对于使用者来说,只需要在前期配置日志查询条件和分析报告的时候进行介入。
    3)ES聚合查询解决大量日志查询成本增加问题。用户选择关注的一些业务埋点,通过ES查询聚合出这些埋点在生产日志中出现的所有组合,同时按照出现概率排序,这样一来,用户无需去拼接一些无效的日志组合即可最大限度的回归线上场景。

    图像比对测试

    1、引入生产日志流量,只需要服务端的请求和返回,用来当做网页发起的请求的Mock返回,这样用户也能通过日志条件配置的方式来使用UI自动化;
    2、采用对比的形式呈现结果,可以是类似接口的对比两个不同版本的环境的展示图片,也可以是对比上一次各个页面的展示;
    3、图片比对
    实现方式:逐像素矩阵的对比两张图片,对比完后,把不同像素矩阵合并在一起,达到一个不同差一点圈出来的效果,方便用户快速查看不同之处
    4、接入PuppeteerAPI来代替之前的Seleium,Puppeteer可以调用Chrome的API来直接操作Web,同时不用打开浏览器,且技术支持较好
    5、多测试服务器并发执行任务;OCR接入,识别图片中的所有文案,进行纯文本对比;图片按照模块切片,减少由于模块变动导致的差异;

  • 相关阅读:
    WPF 关于拖拽打开文件的注意事项
    asp.net core 3.1中对Mongodb BsonDocument的序列化和反序列化支持
    用百度webuploader分片上传大文件
    多线程学习笔记
    web.config数据库连接字符串加密
    Visual Studio 2010 常用快捷方式
    Team Foundation Server 2013 日常使用使用手册(四)分支与合并
    Team Foundation Server 2013 日常使用使用手册(三)上传新工程、创建任务、创建bug、设置预警
    Team Foundation Server 2013 日常使用使用手册(二)修改、签入、撤销、回滚、对比代码变更
    Team Foundation Server 2013 日常使用使用手册(一)-本地连接TFS、查看任务
  • 原文地址:https://www.cnblogs.com/seamy/p/15648802.html
Copyright © 2020-2023  润新知