【AICon】AI 大模型超全落地场景&最佳实践 了解详情
写点什么

携程是如何在测试时做精准流量筛选的

  • 2020-09-16
  • 本文字数:1912 字

    阅读完需:约 6 分钟

携程是如何在测试时做精准流量筛选的

8 月 16 - 19 日,与零一万物李开复、蔚来李斌、面壁智能李大海,及工商银行、交通银行、华夏银行等 100+ 行业专家相聚 FCon x AICon

一、前言

2019 年携程酒店团队开发了比对自动化平台,极大地提高了测试效率,但在使用过程中慢慢也发现了以下一些问题:


1)为了能够覆盖更多的场景,每次拉取很多流量运行,运行数据量比较大;


2)运行数据量大导致运行时间长,等待运行的场景积压多,运行不稳定;


3)每次运行的流量都是随机性拉取,导致流量场景覆盖不稳定;


4)每次拉取的流量没有一个具体数据度量,代码覆盖率是多少;


5)不能自动发现流量覆盖新的场景,而是通过人工偶然发现,手动标识;


根据以上问题,我们设计开发了精准流量筛选。在使用过程中提高了测试精准性和测试效率,并在此基础上根据业务人员需求相继开发了手动流量筛选,自动流量筛选,用例智能推荐等。


本文将从比对平台如何和流量筛选结合以及手动流量筛选,自动流量筛选,用例智能推荐的方面,分享精准流量筛选,希望能给遇到同样问题的小伙伴带来一些启发和借鉴。

二、整体介绍

2.1 手动流量筛选流程图

2.2 自动流量筛选流程图

2.3 用例智能推荐流程图

2.4 相关技术

流量筛选我们主要采用和公司内部的代码覆盖率平台(采用开源代码覆盖 Jacoco 开发的内部系统)结合获取流量的代码覆盖率数据,以及分布式多线程运行,筛选流量使用杰卡德相似度算法。


通过该方式可以解决:


1)获取流量的代码覆盖率数据问题;


2)流量筛选速度比较慢的问题;


3)流量筛选不精确的问题;


关于杰卡德相似度算法:两个集合 A 和 B 交集元素的个数在 A、B 并集中所占的比例,称为这两个集合的杰卡德系数,流量相似度越高杰卡德系数近于 1。


相关公式:


2.5 模块关系图


精准流量筛选由三个模块组成:手动流量筛选模块,自动流量筛选模块,用例智能推荐模块。


手动流量筛选模块,自动流量筛选模块是两个相对独立的模块。手动筛选可以指定具体哪些流量进行筛选,更具有针对性;自动化流量筛选是在机器空闲的时候(通常是晚上),根据用户配置随机获取流量数据,然后对流量进行筛选,更具随机性,用户可以根据业务需求选择筛选方式。


用例智能推荐模块,推荐的用例是手动流量筛选模块和自动流量筛选模块筛选的流量用例,在筛选的过程中标识出新发现的场景流量用例,把这些新发现的流量用例推荐给用户,方便用户精确地写接口自动化用例。

三、模块介绍

3.1 手动流量筛选

筛选原理:比对自动化平台和公司的代码覆盖率平台打通,通过回放场景流量用例,获取流量用例的代码覆盖率信息,对流量用例的代码覆盖率数据进行相似度计算,剔除覆盖率数据相似的流量用例,留下代码覆盖率数据不同的流量用例。


回放的流量来源:


  • 手动配置

  • ES 保留

  • ES 手动拉取

  • Clog 手动拉取

  • CK 手动拉取


流量筛选详情页配置


  • 流量请求地址

  • 请求的 header 信息

  • 流量筛选块数量


运行方式


  • 手动执行


执行方式


  • 分布式

  • 多线程


运行结果查看页


  • 查看去除的相似的流量用例

  • 查看流量用例的行覆盖率信息

  • 查看流量用例的方法覆盖率信息

  • 查看整体流量用例的覆盖率趋势图

  • 查看实时流量筛选运行步骤信息

3.2 自动流量筛选

筛选原理:每天凌晨开始,自动到配置的数据源拉取配置数量的流量,对流量进行回放,获取流量用例的代码覆盖率信息,对流量用例的代码覆盖率数据进行相似度计算,剔除覆盖率数据相似的流量用例,留下代码覆盖率数据不同的流量用例。


回放的流量来源:


  • 手动配置

  • ES 保留

  • ES 实时拉取

  • Clog 实时拉取

  • CK 实时拉取


流量筛选详情页配置


  • 流量请求地址

  • 请求的 header 信息

  • 流量筛选块数量


运行方式


  • 晚上自动执行


执行方式


  • 分布式

  • 多线程


运行结果查看页


  • 查看去除的相似的流量用例

  • 查看流量用例的行覆盖率信息

  • 查看流量用例的方法覆盖率信息

  • 查看整体流量用例的覆盖率趋势图

  • 查看实时流量筛选运行步骤信息

3.3 用例智能推荐

推荐原理:手动流量筛选和自动流量筛选在筛选用例的时候,标识出新发现的场景流量用例(覆盖了新的方法或者新的代码行),把这些新发现的流量用例推荐给用户,方便用户精确地写用例。


推荐用例数据来源:


  • 手动流量筛选的用例

  • 自动流量筛选的用例


运行结果查看页


  • 根据时间查询推荐的用例

  • 根据方法查询推荐的用例


四、使用效果


以某一使用流量筛选的场景为例:


  • 从目前 4 万多的流量中挑选出 1000 个新场景,后续还在自动流量筛选中;

  • 代码覆盖率从 23%提升到 41%(流量筛选发现新场景该覆盖率还会继续提升);


五、总结


目前流量筛选已稳定运行半年,相比之前有以下变化:


  • 比对场景用例覆盖率稳步提升

  • 比对场景运行效率更高

  • 比对场景运行稳定性增加

  • 流量筛选过程中发现很多新的场景流量

  • 智能推荐了很多有效的新场景流量用例


为了更好的满足用户需求,对于流量筛选,后续我们将持续迭代。


作者介绍


文杰,携程高级测试经理,主要从事测试框架和平台的研发,现负责自动化与工具平台,热衷于研究技术提升测试工作效率。


本文转载自公众号携程技术(ID:ctriptech)。


原文链接


携程是如何在测试时做精准流量筛选的


2020-09-16 10:101428

评论 2 条评论

发布
用户头像
什么级别的数据量,es撑得住么
2020-11-03 15:14
回复
用户头像
智能有点言过其实了,没有推理能力的系统不值得称为智能。基于相似度的流量筛选,阈值选择权衡,文章没有提及。
2020-09-16 11:09
回复
没有更多了
发现更多内容

并行文件存储和分布式 NFS 文件存储有何不同

焱融科技

容器 云原生 高性能 文件存储 技术博客

浪潮云洲链斩获2020-2021年度新一代信息技术创新产品殊荣

浪潮云

Windows 任务管理器中如何显示 CPU 逻辑处理器情况

HoneyMoose

Pulumi 如何在 Windows 环境中设置

HoneyMoose

微软 WSL 重装操作系统

HoneyMoose

中公、马士兵、千锋、拉勾入局,腾讯课堂“薪选”IT人才培养按下加速键

DT极客

父母为什么催婚,而你又在逃避什么

小天同学

婚姻 爱情 5月日更

珠联壁合地设天造|M1 Mac os(Apple Silicon)基于vscode(arm64)配置搭建Java开发环境(集成web框架Springboot)

刘悦的技术博客

Java vscode spring Boot Starter JDK11 m1

Windows Terminal 安装和运行

HoneyMoose

❤【520特别祝福篇】愿有情人终成眷属,已成眷属爱情稳固

洛神灬殇

爱情 5月日更 520单身福利 520 单身福利

从技术趋势看质量赋能

BY林子

敏捷 软件测试 质量赋能

Hadoop定位问题日志跟踪

InfoQ_Springup

hadoop

快成物流科技 x mPaaS | 小程序容器加持下的技术架构“提质增效”

蚂蚁集团移动开发平台 mPaaS

小程序 移动开发 mPaaS

多方安全计算:隐私保护集合求交技术

华为云开发者联盟

数据集 PSI 隐私保护集合交集 可信 伪随机函数

产品思维

lenka

5月日更

520节日快乐

IT蜗壳-Tango

5月日更

关于OpenHarmony 2.0共建进展

罗燕珊

开源 鸿蒙 OpenHarmony

CMMI V2.0丨如何通过CMMI真正在企业中的实施规模化敏捷开发

IPD产品研发管理

软件 研发管理 CMMI

高性能 JavaScriptの笔记(四)

空城机

JavaScript 大前端 5月日更

拥有5大核心竞争力的华为云GaussDB,成SACC2021最靓那一个…

华为云开发者联盟

数据库 华为云 GaussDB 存算分离 GaussDB(for Redis)

这一次,彻底搞懂 Go Cond

HHFCodeRv

Go 语言

Too many open files 的四种解决办法

ilinux

Dubbo 延迟与粘滞连接

青年IT男

dubbo

Nginx基础配置-反向代理

梁龙先森

nginx 大前端

聊聊dubbo协议

捉虫大师

音频均衡器EQ

floer rivor

音视频 Eq

高并发调优backlog多大合适?

运维研习社

nginx 运维 5月日更 并发调优

“为爱而生 温暖陪伴”——2021年中国洗地机行业发展峰会圆满落幕

DT极客

数据预处理&特征工程

Qien Z.

Python 5月日更

Golang function

escray

学习 极客时间 Go 语言 5月日更

PKI系统简介

上海派拉基础研发

CA PKI

携程是如何在测试时做精准流量筛选的_语言 & 开发_文杰_InfoQ精选文章