重磅开源:阿里妈妈技术质量开源了线上测试MagicOTP和性能测试平台ACP
阿里QA导读:阿里妈妈技术质量团队正式开源了线上测试平台MagicOTP和性能测试平台ACP,开发者们可以在Github上自主下载。 |
2020年4月7日,阿里妈妈技术质量团队开源了线上测试平台MagicOTP和性能测试平台ACP。两个平台经过阿里巴巴广告业务的长期锤炼,在大规模广告搜索、推荐系统的线上测试和性能测试上深耕多年,内置了面向广告搜索、推荐领域的工业级线上测试和性能测试解决方案。
一、ACP(alimama-common-performance-platform)
概述
ACP(alimama-common-performance-platform)平台是阿里妈妈的全链路智能性能测试平台。区别于业界一些开源的工具和平台,ACP平台将有监督建模、无监督建模、混沌工程等智能化技术引入到性能测试领域;并将其打造为高性能通用的基础组件。平台提供了压测query智能抽取、压测流程智能调控、系统指标智能监控三大智能化功能;在阿里妈妈实现了无人值守的智能化性能测试。
(github地址:https://github.com/alibaba/alimama-common-performance-platform-acp )
系统核心能力
1. C++高性能压测工具
ACP提供了SYNC同步压测和ASYNC异步压测两种模式;同步压测的工作模式是阻塞式发送,异步压测采用非阻塞并发模式,目前开源版本支持同步压测模式。
Chain-Line链式的线程管理系统,智能调整内部线程和并发数,最终快速达到指定的qps。
基于Linux内核的消息队列的监听服务,在不需要重启进程的情况下做到实时调整qps。
组件:
智能压测调控框架
Chain-Line链式的线程管理组件
Adaptive Auto Control实时流量调控组件
Kernel-queue消息队列读写组件
压测Client工作模式图:
2. 大规模分布式调度服务
性能测试的一个难点是如何高效利用测试资源,在压测机器有限,压测机器规格不一致,压测任务消耗硬件资源不一的情况下;如何高效调度成千上万个agent是我们要解决的问题。ACP平台利用zookeeper,使用DFS深度优先的搜索算法,实现了资源分配粒度达到内核级别,并开源了其产品化的能力。
3. 基于历史样本的有监督学习建模及预估能力
传统性能测试更多需要人来手工操作,测试效率普遍不高,我们提供了基于随机森林( random Forest)、线性模型、非线性等多种算法建模组件;用建模、预估技术代替人力手动调压等操作,用户可以根据业务场景定制自己的建模方案,此外,我们也提供了多种样本处理组件。
1) 特征样本归一化,对于历史监控数据,我们将样本(sample)进行归一化处理(normalization),将不同量纲、不同单位的样本进行加权处理,保证后续建模的精度。
2) 特征样本去噪,历史监控数据有很多噪声,如作弊流量,异常流量,而这些噪声会直接影响模型的预估表现,减少无效样本对模型的影响。
3) 特征样本转换,feature transformer是将多维特征转为单维(Single-Demension)特征的过程,如服务器带宽和qps有着强关联,我们将二者做除法得出新特征,即每个请求占用的带宽(bytes per query),而这种特征能够直观反映系统表现。
4. 基于实时样本的无监督学习建模及预估能力
我们提供了基于arima模型的无监督学习建模预估能力(差分整合移动平均自回归模型,又称整合移动平均自回归模型)。和上述有监督建模预估相比,无监督建模预估准入门槛低,相比于之前的用历史监控数据建模的方案,arima不需要人为的收集历史数据和打标。
5. 性能测试用例智能生成
Netflix提出了Chaos Engineering,我们基于混沌工程和fuzz思想进一步探索了query智能组合构造方案,分钟内智能构造千万级数据样本;解决了压测数据样本单一,异常场景构造成本高,覆盖率低的问题,从而可以充分验证系统稳定性,鲁棒性。
后续开源计划
历史样本有监督学习建模及预估能力
实时样本无监督学习建模及预估能力
基于fuzz的性能测试用例智能生成方案
欢迎通过邮件组 acp-opensource@list.alibaba-inc.com和github issue联系和反馈
二、MagicOTP — 线上测试平台
概述
广告搜索推荐业务上,线下功能测试的覆盖和线上实际场景总是有一定的gap,深层次的原因是因为业务和算法模型强相关,线下不可能覆盖所有业务场景。鉴于此我们通过使用线上的数据,实时trace和智能化技术打造了线上智能测试平台MagicOTP,通过线上测试很好弥补了线下功能测试覆盖和实际业务场景之间的gap,实现了全场景的测试覆盖保障,同时在阿里妈妈落地了智能化的无人值守的发布闭环。
(github地址:https://github.com/alibaba/online-test-platform)
系统核心能力
1. 多种线上数据采集技术(时序、分布、规则采样、基因变异算法等),节省人工构造测试数据的成本,提高测试效率。
2. 健壮的规则校验引擎,测试数据通过规则进行多维度校验,相比传统冒烟的单点固定验证,具有更高的场景覆盖度。
3. 精准的规则智能推荐技术和智能化验证技术,基于大数据分析和字段关联关系(Association Rules)建模,利用推荐算法和异常数据检测(K-sigma等)实现了智能化的规则推荐和校验。
4. 高效的多业务接入能力,在平台配置完任务,任务执行过程中自动推荐出基础校验规则,减少开发成本。当业务变更时维护只需简单修改规则即可。
开源Roadmap
目前一期提供了基础的线上请求回放能力和规则引擎服务,以及基于此的完整的线上测试方案,后续我们会开源规则智能学习推荐功能和无人值守的发布验证方案。
欢迎通过邮件组magicotp-opensource@list.alibaba-inc.com和github issue联系和反馈
ACP:
github地址:https://github.com/alibaba/alimama-common-performance-platform-acp
MagicOTP:
github地址:https://github.com/alibaba/online-test-platform
研发成员:朱藻、橦录、翰龙、凤暄、凝珂
写在最后:在稳定性、研发效能、测试等领域有兴趣,期望通过技术改变测试,引领测试变革的同学。
欢迎联系朱藻!邮箱:zhuzao@taobao.com
- END -
fin
开源项目Autotestplat,《自动化平台测试开发》作者
隐形字
个人公众号:测试开发社区
长按识别二维码关注
重磅开源:阿里妈妈技术质量开源了线上测试MagicOTP和性能测试平台ACP相关推荐
- 阿里妈妈技术质量再度重磅开源:国内首个智能化功能测试开源平台Markov
阿里QA导读:继开源了线上测试平台MagicOTP和性能测试平台ACP之后,阿里妈妈技术质量再度开源智能化功能测试平台Markov平台,开发者们可以在Github上自主下载. 一 概述 Markov平 ...
- CurvLearn开源 | 阿里妈妈曲率学习框架详解
▐ 摘要 欧氏空间由于其直观的几何特性及简单有效的公式而被应用于几乎所有的深度学习模型.然而,近年来的研究发现,复杂结构数据(如社交网络.电商数据等)的建模精度往往会受到"平坦"的 ...
- EFLS开源 | 阿里妈妈联邦学习解决方案详解
▐ 项目背景 移动互联网时代出于隐私保护和数据安全,APP 之间的开放与互联越来越少,使大量的信息孤岛逐渐形成,限制了信息技术更好地服务广大用户的能力.2016年 Google 提出了以保护终端隐私为 ...
- 阿里妈妈技术团队 6 篇论文入选 CIKM 2021
关于 CIKM CIKM(The Conference on Information and Knowledge Management ) 是由ACM主办的信息检索和数据挖掘等领域的国际顶级会议,在相 ...
- 请查收 | 2021 阿里妈妈技术文章回顾
2021年5月13日,「阿里妈妈技术」正式与大家见面了~ 在过去的237天里,我们分享了50篇原创内容,覆盖了广告算法实践.算法工程&引擎&系统建设.智能创意.风控.数据科学等多个技术 ...
- 请查收 | 2022 阿里妈妈技术文章回顾
新年伊始,万象更新! 转眼,阿里妈妈技术已陪伴大家走过601天~ 在此,感谢每位读者朋友的支持与关注 回顾2022,我们分享了60篇原创技术文章.发布了1本营销科学系列白皮书.开源了1项向量召回技术方 ...
- 阿里妈妈技术团队5篇论文入选 SIGIR 2022!
近日,第 45 届国际信息检索大会(The 45th International ACM SIGIR Conference on Research and Development in Informa ...
- 阿里妈妈技术团队 5 篇论文入选 TheWebConf 2022
近日,第31届国际万维网大会(The Web Conference / WWW)审稿结果出炉, 阿里妈妈技术团队有5篇论文入选. TheWebConf 成立于1989年,原名为"The In ...
- 开放下载 | 阿里妈妈技术年货来啦!
年味愈浓,春节将近.阿里妈妈技术年货来啦~ 去年开始,我们通过「阿里妈妈技术」微信公众号分享我们的技术实践与经验.截至目前,我们发布了超过 50 篇技术内容,覆盖了广告算法实践.AI 平台及工程引擎. ...
最新文章
- 复合机 涂布机_涂布复合机适用的范围在那些地方?
- 微信开发实现一键拨号出现屏蔽问题的解决方案
- 【BZOJ2243】【codevs1566】染色,树链剖分练习
- autoreconnect mysql true_使用’autoReconnect = true’即使MySql JDBC超时
- LIRE的使用:搜索相似的图片
- 逻辑回归与梯度下降法
- 「THUSC 2016」成绩单 方块消除 (区间dp)
- Linux dstat监控工具简讲
- VS2010中文版微软官方下载
- 霍夫曼树和霍夫曼编码原理
- 学习方法——哈佛大学幸福课(积极心理学)学习笔记(下)
- Initializationfailedforhttps://start.spring.ioPleasecheckURLnetwor的解决方法本人亲测
- 东华大学计算机专业全国排名多少,2017东华大学专业排名情况
- HTML5实现3D校园地图思路
- Apache的配置文件详细解释
- 一个炫酷的二维码生成项目附源码
- JS 数字 、中文、 英文、判断
- 《非暴力沟通》[1]
- 使用 vue 创建你的第一个 PWA 应用
- ABB HIDRY 72干式变压器
热门文章
- sql 统计各班不同分数段的人数(案例v1)
- vertica MySQL_vertica 数据库常用命令
- python圣诞树代码成品图片动态_基于JS2Image实现圣诞树代码
- php实现跑马灯闪亮,JavaScript_基于jquery实现的文字向上跑动类似跑马灯的效果,想实现一个类似跑马灯的效果, - phpStudy...
- 无法使用以下不同的参数继承com.baomidou.mybatisplus.extension.service.IService: <> 和 <com.itheima.rijidao.en
- 微信小程序 控制台报错net::ERR_UNSAFE_PORT
- 现在国际上发行的优秀的儿童期刊杂志有哪些
- 蓝牙耳机气传导哪个牌子好,试试这几款不入耳的气传导耳机
- 细节6:算术右移和逻辑右移
- Bootstrap4从入门到精通