zoukankan      html  css  js  c++  java
  • 流量回放平台学习梳理

    平台目的

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

    术语说明

    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接入,识别图片中的所有文案,进行纯文本对比;图片按照模块切片,减少由于模块变动导致的差异;

  • 相关阅读:
    JDK和TOMCAT环境变量配置
    MEF(Managed Extensibility Framework )的入门介绍
    这样的数据导出你知道?
    ListBox实现拖拽排序功能
    各种技术资源汇总
    大话数据结构-排序
    大话数据结构-查找
    CheckListBox的实现方式分析
    listbox里面添加WrapPanel ,支持自适应换行
    RESTful 接口实现简明指南
  • 原文地址:https://www.cnblogs.com/seamy/p/15648802.html
Copyright © 2011-2022 走看看