全部产品

    基本概念

    更新时间:2023-02-22 17:41:13

    本文介绍通过EMAS控制台使用EMAS产品操作过程中遇到的基本概念,以便您更好地使用EMAS产品。

    EMAS通用

    基本概念

    说明

    混合云

    部署在企业的私有云服务平台。

    产品

    产品是应用的分组,用于管理一组相关应用。

    应用

    作为独立发布、部署运行的实体,是某种特定类型的端程序。包括但不限于Android、iOS、H5等类型。

    服务

    提供给开发者使用的为应用实现的特定功能的集合,是最小计费单元。比如热修复服务、移动推送服务。

    解决方案

    面向特定场景的方法论、设计理念与服务能力的集合。比如跨平台解决方案,持续交付解决方案。

    AppKey

    App在EMAS中的唯一标示。在SDK初始化和调用OpenAPI时需要,从EMAS控制台应用设置下的SDK设置中获取。

    AppSecret

    App的密钥。EMAS SDK初始化时使用,从EMAS控制台应用设置下的SDK设置中获取。


    RSA密钥

    RSA密钥是保存在客户端本地用于解密patch包过程中使用的解密密钥(推荐使用谷歌浏览器下载)。

    AccessKey ID和AccessKey Secret

    阿里云用户使用云产品的OpenAPI接口验权时需要,从阿里云官网控制台获取。

    Native DevOps

    基本概念

    详细说明

    更新推送

    将发布包推送到用户终端的过程,EMAS平台定义为更新推送。

    发布批次

    一个发布批次可以理解为一次发布的请求,通过多批次缓慢放量,用户可以持续观察版本稳定性数据,在出现问题时及时排查处理,从而提升发布质量,控制线上问题影响范围。

    通知设备数

    EMAS平台的更新推送过程,通过SDK跟用户终端通信,通知设备数分为计划通知和实际通知,计划是发布批次希望通知的用户数,实际通知为发布后真正通知到的设备数。

    实时UV

    结合高可用服务,实时UV是指当前客户端版本当前的用户数。

    Crash率

    结合高可用服务,统计当前客户端版本的实时Crash率。Crash率每天0点会重新开始计算。

    发布类型

    发布类型分为灰度发布和正式发布,正式发布也叫全量发布。灰度发布在发布批次中需要设置提醒人数和截止时间,支持设置不同的策略针对特定用户人群进行灰度。正式发布无法选择提醒人数,不支持设置截止时间,会一直执行,直到所有用户都更新为新版本。

    更新策略

    更新策略是指跟端上通信时用户体验的交互方式,简单分为:提示更新(用户手机端会收到提示文案,用户自行选择是否更新)、静默更新、强制更新,并结合用户终端网络情况,进行条件组合。

    发布成功

    当某个客户端版本推送到至少一个用户终端以后,EMAS平台就定义这个版本为发布成功,系统会自动更新发布单状态。

    发布失败

    用户在创建过更新推送批次后,如发现版本质量问题,可以手动设置当前版本发布失败,发布失败的版本不会归档也不会作为动态部署的基准包。

    归档

    iOS发布如无实际推送数据,在发布包测试通过后,需要手动点击归档,将发布包和依赖归档到系统中。

    更新提醒文案

    当更新策略为提示更新时,会给用户手机端发送一个提示文案,每个批次都可以自定义不同的文案。

    更新提醒次数

    同一个版本,提醒同一个用户设备的次数,默认一次,也可以自定义为更多次。

    跨平台DevOps

    基本概念

    定义

    说明

    跨平台模块

    跨平台模块指应用下面具体的页面,可独立开发,也可以发布在不同应用里。如应用的首页、搜索页、商品详情页等。

    一个应用下面可以创建多个跨平台模块,模块只有使用发布功能时,需要指定所发布的应用。

    云端构建产物

    资源来源的分类,是通过平台构建产生的前端资源。

    -

    本地素材资源

    资源来源的分类,是用户本地上传的资源,比如图片、文本、音视频文件等。

    用户上传可以选择上传JS文件或zip包,但若上传ZIP包,系统将自动抽取JS文件进行上传。

    资源来源地址

    是目前存放该资源的地址。

    所有平台的资源都会上传至系统配置的OSS地址中,因此所有的地址是资源的OSS回源地址。

    MD5

    唯一标识一个资源及其内容的ID。

    MD5自动生成。

    CDN投放地址

    指使用H5发布的CDN地址,用于客户端实际配置来获取资源的地址。

    CDN投放地址配置好后,不建议改变。H5发布均采用覆盖式发布,减少客户端不断配置的行为,保证动态性。

    移动热修复

    基本概念

    说明

    热修复

    是指在系统正常运行的状态下,将补丁应用到处于生产状态(非开发状态)的系统。

    移动热修复

    移动平台应用,如Android平台,无需发版,实时修复应用线上问题。

    基线包

    当App发布了新的版本,此时是未做任何热修复改动的。这个包称作基线包。

    移动API网关

    基本概念

    说明

    参数映射

    将API请求入参和协议内置参数转换为后端服务的入参。

    业务参数

    客户发起请求时需要携带的业务参数。

    协议参数

    API网关的保留字段,用于承载相关协议参数。

    JSON透传

    客户发起请求时可以透传JSON body。

    API版本

    名称+版本号唯一标识一个API。同一个API名称,可以并行存在多个版本。

    超时时间

    从网关接收到客户端请求开始,到网关处理完请求,接收后端服务响应并返回给客户端的时间间隔。到达超时时间,网关直接返回请求超时信息。

    允许接入端

    API网关支持App、H5两种访问类型,可以单独只支持某一个类型。

    日志模式

    API网关是否把每个请求的日志打印到机器的指定日志文件,方便客户自行采集。

    Mock

    可以为某个API设置Mock数据,方便客户端提前调试。设置后,任意访问这个API,都会返回这份数据。

    限流策略组

    可以设置某一组限流条件,称为策略组,策略组可以任意关联到任何API上。

    限流

    按照策略组限制该API的访问流量。

    远程配置

    基本概念

    说明

    配置

    配置是一组参数或自定义配置项集合,以及发布时目标用户条件及优先级的控制。

    场景

    配置由一到多个场景组成,每个场景可定义不同内容和目标用户。 一般情况,只需创建一个配置场景,面向全量用户发布内容。当需要个性化或A/B实验时,再创建多个场景。

    变更单

    记录一次发布变更的详细内容,变更单可通过配置决定是否强制要求审核。

    移动推送

    基本概念

    解释

    通知

    通知会自动在手机端弹出通知栏,用户可以打开或者清除通知栏。iOS的通知走APNs(苹果官方推送通知服务),Android的通知走移动推送的通道。

    消息

    消息不会自动在通知栏弹出,会在App中提示消息的接收。iOS和Android的消息都走移动推送的通道。

    设备ID(DeviceId)

    设备在推送服务中的唯一标识,由SDK生成,32位数字和小写字母组合,通过代码获取。Android获取方法:CloudPushService的getDeviceld方法;iOS获取方法:CloudPushSDK的getDeviceld方法。

    别名(Alias)

    给设备添加的别名,可以是您的业务需要的任意账号,一个设备可以最多添加128个别名,一个别名可以最多添加128个设备。

    按设备号推送

    在客户端调用getDeviceld获得设备号,再通过EMAS控制台或OpenAPI接口推送。

    按别名推送

    设备绑定别名后,根据业务逻辑筛选出别名进行消息推送。

    全量推送

    也叫“全推”,指对全量设备进行推送。

    消息离线缓存

    可为消息推送设置缓存时间,离线设备只有在缓存时间内上线才能收到消息。

    消息透传

    即自定义消息。只负责消息的推送,不做任何处理。客户端在接收到消息后,需要自己去处理消息的展示方式或后续动作。

    厂商通道

    手机系统厂商提供的操作系统级别的推送通道,在网络畅通和推送消息合法的情况下,通过厂商通道推送消息给对应设备,不论应用是否存活,都保证消息推送到位。

    自有通道

    ACCS(Alibaba Cloud Channel Service,阿里云推送服务),阿里系基础推送通道。

    受理成功数

    受理成功的前提是请求发送的设备是有效的,具备发送消息的可能性。设备没有过期(默认Android设备需在90天内活跃过,iOS设备需在24个月内活跃过,超过这个时间的设备将无法推送)。用户没有关闭PUSH。

    受理成功数是除去原始请求发送目标过程中无法发送的设备之后的数。

    实际送出数(实际下发数)

    实际送出成功的消息数。对于自有通道来说,设备建连时就可以尝试下行消息到设备,下行的动作即称之为送出。对于厂商通道来说,消息成功发送到厂商服务端即送出。

    到达数

    也叫“送达数”,针对不同的设备,计算方式有所不同:

    • iOS设备:iOS通知是投递给苹果APNs服务器的,到达依据是只要苹果服务器没有返回错误信息,则认为送达。

    • Android设备:Android设备的到达数是自有通道和厂商通道送达数的统计值,各个通道均有送达的回执。

    到达率

    到达数与受理成功数的比值。

    DeviceToken

    iOS设备在苹果中心注册时返回的64位设备标识符(iOS设备同时会有deviceld和deviceToken,请勿混淆)。

    消息ID(MessageId)

    标志一次推送的消息ID,基于OpenAPI接口推送时返回,或者在推送控制台查看。

    移动监控

    基本概念

    说明

    适用场景

    JAVA CRASH

    发生在Java代码层的崩溃。

    Android端崩溃

    NATIVE CRASH

    发生在Native代码(C/C++)层的崩溃。

    Android端崩溃

    Abort

    未能通过进程退出信号量捕捉到的App非正常退出。

    iOS端崩溃

    Crash

    通过进程退出信号量捕捉到的App非正常退出。

    iOS端崩溃

    ANR

    Application Not Response,指在Android系统上,应用程序响应不够灵敏时,系统会向用户显示的一个对话框。用户可以选择等待,也可以选择强制关闭。

    Android端卡顿

    内存泄漏

    主要检测Activity、IntentReceiver、ServiceConnection等的泄漏。

    Android端异常

    主线程IO

    通过StrictMode工具检测到的主线程IO,包括磁盘读写、网络IO等。

    Android端异常

    大内存图片

    绘制图片时使用比绘制区域尺寸更大的图片资源,造成内存使用不当,引发潜在的OOM(OutofMemory,内存溢出)。

    Android端异常

    资源泄漏

    通过StrictMode工具检测到的未释放的资源。

    Android端异常

    主线程卡顿

    • Android:检测发生在主线程的持续1秒以上的卡顿。

    • iOS:检测发生在主线程的持续5秒以上的卡顿。

    Android端异常、iOS端卡顿

    非安全代码

    通过StrictMode检测到的文件uri暴露、非HTTPS请求等。

    Android端异常

    [错误类型]率

    [错误类型]的发生频率。

    计算公式:统计周期内[错误类型]发生的次数/统计周期内应用启动次数

    -

    用户[错误类型]率

    [错误类型]造成影响的设备占比。

    计算公式:统计周期内的影响设备数/统计周期内启动过应用的设备数

    -

    影响设备数

    [错误类型]造成影响的设备总数。

    -

    冷启动

    指启动一个全新的移动应用进程。

    -

    热启动

    指进程仍在后台运行的移动应用,被重新唤醒。

    -

    机型

    指设备的品牌和型号。

    -

    运营商

    指设备所属的网络服务供应商。

    -

    地区

    指设备的所属地。

    启动耗时

    指设备启动移动应用所需时间。

    -

    加载耗时

    指设备加载页面所需时间。

    -

    滑动帧率

    指单位时间内,设备加载页面的帧数。单位:帧/秒(fps)。

    -

    分布统计

    指关键指标数据在各个分段的分布情况。

    -

    时间趋势

    指关键指标数据随时间变化的情况。

    -

    平均值

    指对样本数据,取平均数值。

    -

    分位数

    指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位数)、四分位数、百分位数等。

    -

    90分位数

    指将样本数据切分为100份,存在某阈值,其间数据占全部样本数据的90%。

    -

    中位数

    指将样本数据按大小顺序排列起来,形成一个数列,居于数列中间位置的那个数据。

    -

    长尾分布

    指启动时间大于8000ms的情况。

    -

    响应时间

    指用户提出服务请求,至收到响应所需的时间。

    -

    网络错误

    指使用网络库发起连接的过程中,各阶段可能出现的所有错误,包括但不限于DNS解析、SSL校验、建立连接、等待服务超时等。

    -

    错误率

    指未得到正确响应的服务请求,占全部请求的比例。

    -

    自有域名

    指用户方注册持有的域名。

    -

    三方域名

    指非用户方注册持有的域名。

    -

    HTTP状态码

    指示特定HTTP请求是否已成功完成。响应分为五类:信息响应(1XX)、成功响应(2XX)、重定向(3XX)、客户端错误(4XX)和服务器错误(5XX)。

    -

    远程日志或用户日志

    App保存在用户终端设备上的日志。

    -

    日志拉取

    将App保存在用户终端设备上的日志,拉取到远程日志服务的控制台。

    -

    日志级别

    远程日志服务定义了4个日志级别,分别是:

    • Error:错误信息 。

    • Warn:警告信息 。

    • Info:一般信息。

    • Debug:调试信息。

    日志级别排序为:Error > Warn > Info > Debug。

    -

    拉取级别

    用于限制拉取至远程日志服务控制台的日志的级别。只有等级高于拉取级别的日志,才会被拉取至远程日志服务的控制台。

    • 当拉取级别设置为Error,拉取Error级别的日志。

    • 当拉取级别设置为Warn,拉取Warn及以上级别的日志,即Warn/Error级别的日志。

    • 当拉取级别设置为Info,拉取Info及以上级别的日志,即Info/Warn/Error级别的日志。

    • 当拉取级别设置为Debug,拉取Debug及以上级别的日志,即全部级别的日志。

    拉取级别在初始化SDK时进行全局设置,如未设置,则默认设置为Info。

    -

    拉取任务

    按照既定设置,执行一次日志拉取。

    -

    手动添加

    按照设备ID或者用户昵称,指定终端设备,进行日志拉取。

    -

    崩溃分析拉取

    由崩溃分析服务触发,针对具体崩溃问题,进行日志拉取。

    -

    崩溃ID

    用于唯一标识崩溃问题的ID。

    -

    Android端崩溃指标说明

    指标名称

    指标说明

    计算公式

    总体Crash率

    Crash基础指标,表示客户Native+Java类型的崩溃率。

    今天实时Crash率=今天0点到当前时间Crash发生累计次数/今天0点到当前时间应用(版本)总启动次数

    Native Crash率

    Crash基础指标,表示客户Native的崩溃率。

    今天实时Native Crash率=今天0点到当前时间Native类型Crash发生累计次数/今天0点到当前时间应用(版本)总启动次数

    Native用户Crash率

    Crash基础指标,表示客户Native的用户崩溃率。

    今天实时Native用户Crash率=今天0点到当前时间Native类型Crash影响的设备去重数量/今天累计UV

    Native Crash次数

    Crash基础指标,表示客户Native的崩溃次数。

    今天实时Native Crash次数=今天0点到当前时间Native类型Crash发生累计次数

    Java Crash率

    Crash基础指标,表示用户Java的崩溃率。

    今天实时Java Crash率 = 今天0点到当前时间Java类型Crash发生累计次数/今天0点到当前时间应用(版本)总启动次数

    Java用户Crash率

    Crash基础指标,表示用户Java的用户崩溃率。

    今天实时Java用户Crash率=今天0点到当前时间Java类型Crash影响的设备去重数量/今天累计UV

    Java Crash次数

    Crash基础指标,表示用户Java的崩溃次数。

    今天实时Java Crash次数=今天0点到当前时间Java类型Crash发生累计次数

    iOS端崩溃指标说明

    指标名称

    指标说明

    计算公式

    总体Crash率

    Crash基础指标,表示用户全堆栈+Abort类型的崩溃率。

    今天实时Crash率=今天0点到当前时间Crash发生累计次数/今天0点到当前时间应用(版本)总启动次数

    全堆栈Crash率

    Crash基础指标,表示用户全堆栈的崩溃率。

    今天实时Crash率=今天0点到当前时间Crash发生累计次数/今天0点到当前时间应用(版本)总启动次数

    全堆栈用户Crash率

    Crash基础指标,表示用户全堆栈的用户崩溃率。

    今天实时全堆栈用户Crash率=今天0点到当前时间全堆栈类型Crash影响的设备去重数量/今天累计UV

    全堆栈Crash次数

    Crash基础指标,表示用户全堆栈的崩溃次数。

    今天实时全堆栈Crash次数=今天0点到当前时间全堆栈类型Crash发生累计次数

    Abort异常未捕获Crash率

    Crash基础指标,表示用户Abort的崩溃率。

    今天实时Abort Crash率=今天0点到当前时间Abort类型Crash发生累计次数/今天0点到当前时间应用(版本)总启动次数

    Abort异常未捕获用户Crash率

    Crash基础指标,表示用户Abort的用户崩溃率。

    今天实时Abort用户Crash率=今天0点到当前时间Abort类型Crash影响的设备去重数量/今天累计UV

    Abort异常未捕获Crash次数

    Crash基础指标,表示用户Abort的崩溃次数。

    今天实时Abort Crash次数=今天0点到当前时间Abort类型Crash发生累计次数

    移动测试

    基本概念

    说明

    兼容测试

    用于验证应用在不同设备上进行安装/启动/登录/不同版本覆盖安装/卸载等操作时,是否存在兼容性问题;同时获取应用在运行过程中的运行日志/错误信息/性能数据,并在测试完成后,提供兼容测试报告,并以截图/视频的形式,展示应用的运行过程。

    功能测试

    用于验证应用在不同设备上执行测试用例时,是否能够实现预期功能;同时获取应用在运行过程中的运行日志/错误信息/性能数据,并在测试完成后,提供功能测试报告,并以截图/视频的形式,展示应用的运行过程。

    性能测试

    用于验证应用在不同设备上运行时的基本性能数据,包括但不限于启动时间/CPU占用率/内存占用/网络耗用等,并在测试完成后,提供性能测试报告。

    UI适配测试

    在专家服务的场景下,用于验证应用在不同设备上的页面布局/风格是否显示正常;操作/控件交互/友好性等是否体验正常。

    性能分析

    用于监测应用在运行过程中的基本性能,包括但不限于启动时间、CPU占用率、内存占用、网络耗用等。

    智能探索

    在兼容测试中,使用阿里集团基于机器学习开发的智能AI程序Ripper,使应用的兼容问题探索具备自主决策能力,极大提高测试效率。

    应用或App

    用于进行兼容、功能、性能测试或远程调试的Android或iOS应用。

    任务

    每提交一次Android、iOS兼容、功能测试,即创建一个测试任务。

    用例库

    用于基于版本对测试用例进行隔离管理。用例库版本建议与应用的研发版本相对应。

    模块

    用于结合应用的业务功能,对用例集做进一步组织。例如,首页、我的、订单。

    用例集

    是最小可执行的测试单元。用例集由1个或多个用例组成,同时选择相应的参数匹配不同环境。

    参数分组

    具有相关性的一组参数的集合。

    参数

    指配合脚本使用的传入参数。

    脚本

    指测试用例的执行脚本,包括录制脚本和上传脚本2种类型。

    录制脚本

    通过在线录制功能生成的测试脚本。

    上传脚本

    用户编写的测试脚本。

    自定义步骤

    指基于Appium引擎与Python语言编写脚本,在录制脚本中,添加非常规操作。

    测试状态

    指兼容/功能/性能测试的执行状态,包括等待中、运行中、已完成、已取消。

    执行结果

    指兼容/功能/性能测试的执行结果,包括通过、未通过、异常、未执行。

    错误类型

    指兼容/功能/性能测试执行过程中,产生错误的类型,包括崩溃、卡死、可忽略异常3种类型。

    CPU占用率

    指应用在测试过程中,对CPU资源的占用比率。

    内存占用

    指应用在测试过程中,对内存资源的占用量。

    网络耗用

    指应用在测试过程中,对网络资源的使用量。

    帧率或FPS

    即每秒传输帧数(Frames per Second),用于测量显示帧数。每秒钟帧数越多,所显示的动作就会越流畅。

    丢帧率

    指由于硬件不足以负荷画面刷新的频率导致丢帧的情况,占显示的比率。

    电量耗用

    指应用在测试过程中,对设备电量的使用量。

    脚本日志

    由Python语言输出的错误日志。

    Appium日志

    由Appium引擎输出的错误日志。

    设备日志

    由测试设备输出的错误日志。

    错误级别

    指将日志中的错误按照级别进行划分,包括Verbose(详细信息)、Error(错误信息)、Warn(警告信息)、Info(一般信息)、Debug(调试信息)。

    崩溃或Crash

    应用在运行过程中,出现异常退出。

    可忽略异常

    指由日志捕获,且非卡死、崩溃的其他异常。

    ANR

    即程序无响应(Application Not Responding)。如应用对用户输入事件(如按键输入、触摸屏输入、手势输入等)未在5秒内作出响应,或BroadReceiver未在10秒内结束接收到任务,则系统弹出ANR对话框,用户可选择等待让程序继续运行,或选择强制关闭。在UI线程中执行数据库、IO、网络等耗时操作,可能引发ANR。

    卡顿或Jank

    由于硬件限制或者软件设计缺陷,造成应用在使用过程中,出现画面滞帧的情况。

    趋势图

    指以时间为横轴,观察变量为纵轴,用于反映时间与数量之间的关系,观察变量变化发展的趋势及偏差的统计图。

    分布统计图

    指在统计分组的基础上,将总体中的所有单位按组归类整理,形成总体单位在各组间的分布。