如何保证APP兼容性覆盖测试和手机APP测试如何进行兼容性测试?(学习笔记)

2023-11-15

1.背景

众所周知,APP兼容性覆盖测试一直以来被认为是一个高成本、耗时低效、耗人力的测试工作,且兼容性测试是一项必须要进行的测试项目,因为有不同的机型、系统平台、分辨率、网络、厂商、数据兼容以及不同兼容问题场景需要进行覆盖。本文章将通过本人测试经验围绕质量和测试效率进行阐述如何保证APP兼容测试覆盖,期望有更多童鞋在既能保证兼容质量的同时、又能高效地完成兼容性测试覆盖。

2.认识APP兼容测试

2.1 什么是兼容测试

兼容性测试将验证软件与其所依赖的环境的依赖程度,包括对硬件平台的依赖和对软件平台依赖程度,即我们通常说的软件的可移植性 。
简单来说:

  • 待测试项目在同一个操作系统平台的不同版本、不同的操作系统平台上是否能很好的运行
  • 待测项目是否能与相关的其他软件和平共处,会不会有相互不良的影响
  • 待测项目是否能在指定的硬件环境中正常运行,软件和硬件之间能否发挥很好的效率工作,会不会影响或导致系统的崩溃
  • 待测项目是否能在不同的网络环境中正常运行

2.2 什么是APP兼容测试

APP兼容测试即是移动端的手机客户端兼容测试。移动终端的碎片化特征使APP测试者为了保障不同系统及版本、不同网络制式、不同分辨率和厂商(不同深度定制的ROM)、不同版本都能够有很好的用户体验而面临巨大挑战,所以APP兼容性测试也是测试质量保障任务中的重要环节。

3.兼容测试维度覆盖保证兼容测试质量

APP兼容测试具备测试点多,碎片化严重的特征,兼容测试一旦存在漏测,质量未得到保障就会导致线上用户的流失。
所以在移动开发中兼容性测试常常需要涉及到系统、厂商ROM、屏幕分辨率、网络、等其他众多维度。下面将详细展开介绍兼容测试需要覆盖的各个维度。

3.1系统兼容

app系统兼容涉及Android和Ios系统,其中Android系统又分了不同的系统版本,Ios又分不同的系统版本。不同的系统、不同的系统版本都有不同的特征,不同的API,意味着都有可能产生各种各样的兼容问题,所以需要进行兼容覆盖。
其中Android系统具体分布及市场占有率如下表所示:

image

从表中数据可以得出,Android4.4以下市场占有率不到8%,份额小且适配难度高,越来越多的开发者选择了放弃对旧版本的支持,如果目前项目APP的开发者已不支持旧版本兼容尤其是Android2.3之前的,那么测试也可以选择放弃对该类型版本的兼容。

其中Ios不同的系统版本具体分布及市场占有率如下:

image

从表中数据可以得出,Ios8.X以下市场占有率不到2%,可以选择放弃8.X以下版本的兼容,重点覆盖8.X,11.X,10.X,9.X系统的覆盖。

3.2厂商兼容

Android和Ios都有不同的手机设备,苹果几乎每年会进行一次换代,目前换代到iphone X 。相比而言, Android 系统源码是开放的,只要遵从相应的协议,就可以对源码进行修改,国内各个厂商就把基于 Android 源码改造成自己对外发布的系统,比如我们熟悉的小米手机 Miui 系统、华为手机 EMUI 系统、Oppo 手机 ColorOS 系统等(只有谷歌Nexus和Pixel系列才是原生系统,但是目前国内很少人用。)由于每个厂商都修改过 Android 原生系统源码,这里面就会引发一个问题,那就是著名的Android 碎片化问题,本质就是不同 Android 系统的应用兼容性不同,哪怕是搭载完全相同的硬件,不同品牌的手机在运行速度、软件兼容上都会有区别的。

image

3.3屏幕分辨率兼容

在不同分辨率、尺寸的设备上,很容易出现字体异常、UI样式异常、换行错位等UI问题,所以需要测试程序在不同尺寸和不同的分辨率下能否正常显示

目前市面上主流的分辨率为:1280x720、2560*1440、1920x1080等等,主流的尺寸是5.5,5.0和4.7。

image

image

3.4网络兼容

保证各种网络环境能够覆盖,包括WiFi、3大运营商的2G和3G、4G网络、有鉴权的wifi和无鉴权的wifi.

按运营商分:电信、移动、联通
按网络模式分:2G、3G、4G、WiFi
按接入点分:wap、net

在目前4G,wifi盛行的时代在非视频游戏类APP测试中网络兼容显得没那么重要。
一般APP网络的兼容主要是针对IPV6网络兼容、弱网兼容、wap和net接入、不同地域(地理位置)的运营网络、有鉴权的wifi和无鉴权的wifi、代理类wifi。

3.5其他兼容

数据兼容性(不同版本间的数据兼容)
蓝牙设备兼容性测试 (如果是一款使用蓝牙的应用)
存储卡兼容性测试(比如文件管理器)
第三方软件兼容冲突(比如输入法冲突)

4. 制定测试策略提升兼容测试效率

从上一章节中可以看到,APP兼容性测试需要覆盖的维度就有那么多,每个维度可以继续分裂,兼容性测试关注点如此之多,不可能在测试阶段每个机型每个系统版本网络等进行逐个覆盖,那么怎么在既保证质量的同时,又提高测试效率呢?下面将会从测试需求阶段到上线监控阶段的测试全流程中,讲解每个测试环节应该制定怎样的测试策略来提升兼容性测试效率。

4.1 需求阶段

测试越早介入,测试的成本就越低,兼容性测试也是如此。
需求分析阶段,测试童鞋需要和开发、产品、设计师根据需求的场景、历史运营用户数据、市场占有率数据讨论及确定好当前版本需求兼容的系统、系统版本、厂商、屏幕分辨率、网络等的适配方案,这样测试童鞋在需求阶段确定好需要裁剪的系统,系统版本、分辨率兼容。

例如:
系统版本兼容覆盖上:如果Android4.4以下市场占有率不到8%,份额小且适配难度高,目前项目APP的开发者已不支持旧版本兼容Android4.4之前的,那么测试可以在需求阶段和产品、开发确认选择裁剪对该类型版本的兼容。
版本差异兼容覆盖上:需求阶段和产品、开发了解程序底层交互及接口调用,结合本次适配测试重点,就能知道着重检查哪些页面和交互,原则上如果版本之间差异无前端UI和交互变动,则可以裁剪该版本的兼容覆盖。
屏幕分辨率及尺寸:与开发or设计师讨论在不同的分辨率下系统的适配方案,对已不支持不适配的分辨率和尺寸进行裁剪

4.2 测试设计阶段

4.2.1组合交叉矩阵测试设计

通过做一些调研,当前市场和线上运营用户的各系统版本、厂商的使用率,结合移动设备分辨率的特性,得出APP的兼容测试矩阵,减少用例的重复设计和冗余。
例如下表(参考):APP兼容矩阵设计(仅供参考)

 

APP兼容矩阵设计(仅供参考).png

4.2.2 根据具体测试场景进行兼容测试用例设计

兼容性测试关注点有很多,有效的方法是根据测试项或者系统版本的特点、场景实现角度可以对明显差异的内容选择性进行测试设计,减少不必要的兼容覆盖设计。

具体场景特征角度举例如下:
(1)类似图片上传、ocr识别、人脸识别这种与摄像头、手机相册与手机系统应用交互的场景需要考虑系统权限和系统厂商的特征兼容,所以如果有相关需求场景的在测试设计时需重点考虑厂商、系统版本的兼容
(2)类似UI元素密集或图片上传场景,则与分辨率强关联,在测试设计时该类需求需重点兼容屏幕分辨率维度
(3)类似视频播放、数据上传下载、需要实时进行数据刷新的场景则与网络强关联,网络的强弱会很影响用户体验,在测试设计时该类需求需重点考虑网络的兼容(与网络兼容强关联)

从功能实现角度举例如下:
(1)类似页面数据获取,按钮跳转不涉及网络请求后端服务的,直接从本地数据库获取数据来实现的功能则可以直接考虑裁剪网络兼容测试设计
(2)类似PUSH测试等无UI设计的功能则可以考虑直接裁剪屏幕分辨率、尺寸的兼容测试
(3)类似通过webview页面展示的功能,例如webview在Android4.4以后有http与https的安全认证方式的区别,默认不保存cookie的区别,那么针对类似用webview实现的页则需要重点考虑系统版本的兼容设计

从系统版本,厂商特征角度举例如下:
(1)android 6.0以上的部分危险权限需要通过运行时动态申请。所以涉及权限相关功能如定位功能、相机使用,相册调用功能、存储权限、读取通讯录、读取sd卡等功能运行使用时的权限对话框均需要进行系统6.0以下和6.0以上版本兼容测试设计
(2)android8.0通知栏的机制有较大的变化,需要特别留意通知栏、消息推送、通知弹窗、悬浮窗等的兼容测试设计
(3)ROM有特殊定制功能例如典型的三星,vivo和oppo的权限管理问题:

  • 对于国外的手机比如三星,不询问权限直接调用,会直接崩溃,这符合android原生系统的权限管理策略。
  • 对于国内手机,比如vivo,不询问相机权限,照样会给出弹窗,而且即使勾选“不在提醒”且拒绝权限,下次调用还是照样弹窗直到用户授权才能用,这是vivo系统定制的。
  • 对于国内手机,魅族系列,不询问相机权限,依然可以使用相机。
    所以不同手机rom和framework不一样都会导致兼容问题出现,测试童鞋需要去分析各个厂商ROM存在哪些不同以及系统在使用过程中的调用方式,对差异性进行评估,然后针对性去设计兼容测试场景。

4.3 开发阶段

(1)在开发阶段,可以推动开发同学在代码里面打埋点,从而去获取当前APP线上用户覆盖的top n款手机数据,为后续版本兼容测试设计提供数据依据。
(2)加强代码扫描:通过Lint、sonar工具进行静态代码扫描去提前发现因厂商、API不适配的兼容问题
(3)加强开发代码评审,包括基础框架的代码和各业务代码

4.4 SIT测试阶段

由于在测试前期,我们已经做好兼容测试的部分裁剪确认工作和兼容测试设计工作、以及静态代码扫描工作,所以在SIT测试阶段,兼容性测试工作就会轻松不少。
到了SIT测试阶段,就是一个测试执行的过程,测试执行也有相应的测试策略。
(1)兼容测试执行只要开发提测准入通过了就可以开始进行,测试童鞋可以在测试过程中根据兼容测试矩阵在不同测试轮次中切换不同的测试机进行测试并记录
(2)根据二八原则,在做功能测试时先拿历史常出问题机型进行测试覆盖
(3)几轮测试下来,不停切换手机,安装测试包进行测试也是一件繁琐的事,另外测试机可能还存在非空闲情况,有条件的同学可以搭建STF平台进行组内测试机设备管理平台,所有兼容测试工作可以在PC端远程控制真机完成,省时又省力,还能做到测试组内手机共享使用,减少沟通成本。
(4)利用业内已有的云测平台进行兼容测试:
目前基本上大的云测平台都有推出首次免费或者日首次免费的随机安装启动标准兼容服务,免费的一般只能做50~100款机型。如果要做全面的机型覆盖和深度兼容则需要付费了,而且目前各大云测平台的收费较高,如果要全面覆盖所有机型的话,是笔不小的开销。
所以,什么时候用云测平台呢,这个要根据你测试的产品具体特征来考虑:

  • 如果测试的app属于受众广泛,运营效果不错,月活过亿的,用户千万、亿级用户的比如微信,qq,支付宝类型的,那么就很有必要投入金钱或者组织人力搭建云测平台进行全面的机型覆盖。
  • 如果测试的app受众用户只有不到万,日活月活很低的产品比如中小银行app、房产交易app,个人认为没有必要投入大量的金钱去兼容全部的机型。但是可以利用云测平台去复现线上用户个别未覆盖机型所遇到的bug,拿到日志和解决方案,这样投入的成本相对小且有针对性。
  • 如果测试的app受众介于以上两者特征之间的,而且效益也不错,月活日活也能达到上万的例如一些理财产品APP、证券类app、电商app,则可以对目前app当前市场各版本和品牌的使用率,获取当前APP用户覆盖的top n款手机,在云测平台进行top n款手机的覆盖测试

4.5 UAT测试阶段

通过组织UAT测试,利用用户或者业务人员的测试能力和测试资源,在短时间内完成大工作量的产品测试和体验,从用户体验的角度出发,反馈兼容Bug,并对产品提出改进建议。

4.6 线上阶段

(1)APP上线发布市场后,可以通过crash平台、bugly等监控平台收集因兼容问题导致的闪退和无法安装、运行的错误信息传到后台服务器端,然后开发根据错误日志进行定位,从而找出问题原因并解决。
(2)另外,测试童鞋应该对这次版本不管是测试过程中还是上线发布市场后发现的兼容问题,做问题分析总结,反馈补充兼容测试用例和测试场景,加强测试后续版本的测试手段。
(3)测试及开发童鞋需要对主流手机及ROM更新保持较高的质量敏感性,时刻关注厂商升级资讯和特性,一旦有更新,需要测试线上APP兼容适配情况,快速应变,及时适配到主流机型和ROM。

5.总结

一切测试工作要围绕质量和效率来进行开展:对当前测试痛点的把握和分析,制定相应的测试策略、通过工具提高测试效率,归纳总结每一次测试的典型问题和疏漏点,指导我们后续的测试工作开展。


 

 

手机APP测试如何进行兼容性测试?

 

Android App兼容性测试是一个比较重要的App评价内容,实际上兼容性测试不仅仅和测试人员相关,在开发阶段就应当着重考虑,因为兼容性问题是除了实现App本身要求的功能后,必须要关注、而且至关重要的一个点。因此,App兼容性是否良好,首先要求App开发人员在开发阶段进行保障,有经验的Android工程师能够在开发过程中保证60%以上用户机型的兼容与适配,经验丰富的工程师几乎能够做到90%以上的兼容适配。

当然,由于市场上Android机型出新速度快,系统升级快,一味的追求在开发阶段的兼容适配保障,一方面延误开发进度,另一方面需要较高的开发投入,因此需要做好权衡,这也是后续Android兼容性测试这一关键测试阶段必要存在的原因。

  再说到测试阶段,兼容性测试主要是对App在各类机型上的兼容、适配等情况进行测试。搞清楚这一阶段的测试重点后,因此,Android App在进行兼容性测试前,一定要做好其前序测试内容,否则兼容性测试效果将会较差,甚至出现无效测试。

 

兼容性测试如何展开

 

这是兼容性测试流程问题;另一个是为了兼容性测试,需要配置各类机型手机么,这是兼容性测试的设备基础问题。

 

机型配置问题

 

  Android兼容测试一定要做到宽范围覆盖,如果做不到这个,那么就违背了兼容性测试的目标——测试App在各类机型、系统上的运行是否兼容、适配。

  因此,兼容性测试必须要在各个机型、系统上对App进行运行、测试,查看相关UI是否适配、功能是否正常。所以,必须要为兼容性测试配备尽可能多的机型。这是不是意味着,你的公司要去购置各类机型设备?当然不是。对于一般的公司或者开发者,这将会是一大笔开销,为了节约资金而造成进行覆盖率较低的话,则失去了兼容性测试的意义。另外,这也是没必要的,因为往往你就一个或两三个App,为了这少量App测试,而去购置如此大量的设备,无疑是一种资源浪费。除此,还有一个原因,将在兼容性测试如何展开里去说。除此,机型量的多少也是一个权衡的过程,目前,通用的兼容性测试一般覆盖Top100-300的机型,对于实在是小量机型或者老旧机型,用户量非常小,在一定程度上,是否需要覆盖则需要权衡,总的来说,Top排名的手机基本足够。

  再来说一下第一个问题,兼容性如何展开。

  这是一个经验性的过程,可以去借鉴大型互联网公司的成熟App的测试方法。目前,无论是国际知名App,还是国内知名App,谷歌、Facebook,BAT等,他们都有大量的App对外推出,对于App兼容性要求非常高,因此,他们的做法是非常值得借鉴的。这些公司的兼容性测试,都有一个相同的解决方案,那就是自动化测试框架与平台的实现。通过浏览上述公司在各种大会公布的内容,或者通过论坛知识分享,都能看到,他们不仅有自己的测试实验室,拥有大量的手机,除此,还有一整套的自动化测试平台,来完成兼容性测试。这就是前面说的不用配置如此多的机型的另一个原因,即便是配置足够的机型,你还缺乏一套兼容性测试自动化平台,能养得起一大批测试人员和维护人员。因此,我们可以看到,兼容性测试目前大型互联网公司的做法,通常是采用自动化测试平台,搭建自己的测试实验室,完成如此多的机型测试。

  针对个人开发者、初创公司,以及App比较单一的公司,实际上是不推荐效仿大型公司的做法,这种做法提高了App发布成本,另外还需要扩充开发团队,增加管理成本,最终落实到实际使用上又造成了较大的资源浪费。那如何去完成呢?实际上,目前很多的公司,已经提供了兼容性云测服务,例如TestIn、TestBird,除此,大型公司也对外推出自己的测试工具,比如谷歌、腾讯WeTest、百度MTC、阿里MQC等等,这些平台,我都有去体验使用过,其实不乏一些付费项目。

 

 

链接:https://blog.csdn.net/FlyPigYe/article/details/92834962

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何保证APP兼容性覆盖测试和手机APP测试如何进行兼容性测试?(学习笔记) 的相关文章

  • 2019/5/13 基于模型的强化学习方法

    注 论文写作四项工作 工作一 查阅100篇 挑选30篇 核心参考3 5篇 看懂 一篇 工作二 提出难点问题 提出新概念 例 多光谱 注意力机制 工作三 修改算法 网络结构 损失函数 步数 工作四 写写写 改改改 图片精修 丰富实验 首句中心
  • ARM64撬开逆向大门

    图片
  • QML和QWidget混合开发(初探)

    为什么要搞混合开发 Qml已经越来越成为Qt开发的主流 相比与QWidget的界面开发更快 也更容易上手 实现效果上也更好 但老旧项目都是QWidget的框架 大家不可能一次性的把QWidget项目界面全部换成qml 这时候我们可以将新开发
  • python条件运算符_Python中的条件运算符

    python条件运算符 如果条件运算符 if else conditional operator Just like other programming languages Python also provides the feature
  • Spring全家桶

    Spring Spring的架构体系 spring是一个基于java语言写的一个轻量级的一站式解决方案框架 它的最底层是核心容器 在核心容器上面提供了AOP这些中间层技术 然后再往上就可以去集成别人的技术 比如像Dao层的MyBatis J
  • 银河麒麟V10 wireshark安装说明(断网离线)

    下载离线安装包 链接 https pan baidu com s 11QFRmCGlIJrJaiKcHh9Hag pwd u9wv 提取码 u9wv 安装步骤 tar zxvf wireshark tar gz cd wireshark s
  • python连接wss走自己的代理

    我开了一个vpn 然后用py写wss连接 怎么才能让他这个连接走我系统代理呢 vpn 开9090端口 set https proxy socks5 127 0 0 1 9090 set http proxy socks5 127 0 0 1
  • 类的六大默认构造函数

    缺省的构造函数和析构函数 等于放弃了自己初始化和清除的机会 缺省的拷贝构造和缺省的赋值函数 采用 位拷贝和值拷贝 若类中出现指针时 这两个函数出错 class String public String const char str NULL
  • 整理Rapid object detection using a boosted cascade of simple features论文中的要点

    整理Rapid object detection using a boosted cascade of simple features论文中的要点 使用haar特征 在24 24像素的框内有180000以上不同的haar特征 怎么算的 终于
  • openwrt路由器-timeout while waiting for PADS.

    最近使用openwrt路由器进行PPPoE拨号的时候 经常出现 远程服务器无响应 的错误 log打印日志如下 pppoe Timeout waiting for PADS packets Unable to complete PPPoE D
  • c语言错误不允许使用不完整的类型,C语言中的void和void*的定义及用法

    void void最常见的用法 就是在函数中限定函数的参数和返回值的 void draw void 表明函数draw没有参数也没有返回值 void在别的的地方的应用我也没见过 实际上 如果把void 和int char double等类型放
  • 「猜题第一篇」2019年大学生电子设计竞赛

    点击上方 大鱼机器人 选择 置顶 星标公众号 福利干货 第一时间送达 昨天出了清单之后 第一时间我是懵逼的 脑子里想的是 这都是啥啊 后面仔细的理了一下 关于三脚架和小车的用处 极大概率三脚架会是和无人机使用 但也不排除 和小车一起使用然后
  • MYSQL8-快速生成表结构(用于生成文档)

    MYSQL8 快速生成表结构 用于生成文档 SELECT rownum rownum 1 AS 序号 column name AS 代码 CASE WHEN column comment IS NULL OR TRIM column com
  • C语言技巧 ----------调试----------程序员必备技能

    作者前言 作者介绍 作者id 老秦包你会 简单介绍 喜欢学习C语言和python等编程语言 是一位爱分享的博主 有兴趣的小可爱可以来互讨 个人主页 小小页面 gitee页面 秦大大
  • 解决端口被占用问题,安装MySQL出现端口被占用

    1 快捷键 Win R 打开命令提示符 输出命令 netstat ano 目的 查看占用3306端口的 PID 值 上图可以看出 占用3306 窗口的 PID值为 13620 2 打开任务管理器 点击 详细信息 选中该程序 鼠标右键 点击
  • 密度聚类DBSCAN、主成分分析PCA算法讲解及实战(附源码)

    需要源码请点赞关注收藏后评论区留言私信 一 基于密度的聚类 基于密度的聚类算法的主要思想是 只要邻近区域的密度 对象或数据点的数目 超过某个阀值 就把它加到与之相近的聚类中 也就是说 对给定类中的每个数据点 在一个给定范围的区域中必须至少包
  • 操作系统最全面试题汇总

    1 操作系统的特点 共享 资源可被多个并发执行的进程使用 并发 可以在同一时间间隔处理多个进程 需要硬件支持 异步 进程走走停停 每次执行的速度不一样 但是要保证进程每次执行结果相同 虚拟 将物理实体映射成为多个虚拟设备 操作系统的组成 驱
  • Python中的pandas库简介及其使用

    pandas模块 pandas是一个强大的分析结构化数据的工具集 它的使用基础是Numpy 提供高性能的矩阵运算 用于数据挖掘和数据分析 同时也提供数据清洗功能 Pandas中常见的数据结构有两种 Series DateFrame 类似一维
  • 股票相关信息

    股票开头数字代表什么 600 开头的股票是上证 A股 属于大盘股 其中 6006 开头的股票是 最早上市的股票 6016开头的股票为大盘蓝筹股 900 开头的股票是上证 B股 000 开头的股票是深证 A股 001 002开头的股票也都属于

随机推荐

  • C++11尝鲜:右值引用和转发型引用

    C 11尝鲜 右值引用和转发型引用 2013 10 05 19 52 5979人阅读 评论 4 收藏 举报 分类 C 33 版权声明 本文为博主原创文章 未经博主允许不得转载 目录 右值引用 为了解决移动语义及完美转发问题 C 11标准引入
  • 软考高项学习教程【第一阶段】:第1章-信息系统开发基础【考点笔记1】

    文章目录 前言 一 信息系统开发基础 1 1 信息系统与信息化 1 信息系统建设 信息与信息系统的概念 2 信息系统的类型 了解 3 信息系统的生命周期 产品生命周期 重要 4 信息系统规划方法 5 信息系统开发方法 考点 5 1 结构化方
  • To install it, you can run: npm install --save module

    简直就是有毛病 和智障无异 吃了个午饭 VUE项目突然就不能运行了 报了个错 说让我npm install save module 报错如下 在main js文件中莫名其妙多了个webpack的引入 导致这个报错 然后按照提示我安装了这个m
  • Mac M1下安装、升级npm(国内源)

    我们介绍使用Homebrew安装node npm等环境 brew的安装见如下文章 Mac M1芯片电脑Java开发环境准备 重要的事情说三遍 国内源 国内源 国内源 要不然慢的要死 要卡死 npm我们也要使用国内源 安装很简单还是之前的套路
  • Asp.net 之Cookie简单介绍与使用

    什么是Cookie Cookie 有时也用其复数形式Cookies 指某些网站为了辨别用户身份 进行session跟踪而储存在用户本地终端上的数据 通常经过加密 所以查看浏览器保存到本地的Cookie时 一般都是一个文本文件这些文件通常是以
  • 为什么InnoDB使用B+树而不是B树

    出于对IO性能的考虑 B树每个节点都存储数据 而B 树只有叶子节点才存储数据 所以在查询相同数据量的情况下 B树的IO会更频繁 因为索引本身存储在磁盘上 当数据量大时 就不能把整个索引全部加载到内存 只能逐一加载每一个磁盘页 更何况B树的索
  • 【性能测试】第四篇

    主流性能测试工具 1 Loadrunner HP Loadrunner 是一种工业级标准性能测试负载工具 可以模拟上万用户实施测试 并在测试时可实时检测应用服务器及服务器硬件各种数据 来确认和查找存在的瓶颈 支持多协议 WEB HTTP H
  • Python+Selenium实现短视频自动上传与发布

    前言 最近有人对自动上传与发布很感兴趣 都私下找我说了好几次了 今天 必须把他安排 必须实力宠粉 本篇依次介绍目前主流的短视频平台 抖音 快手 B站 小红书 微视 百度好看视频 西瓜视频 微信视频号 搜狐视 频 一点号 大风号 趣头条等 的
  • # 若依-点击重置清空table列表,不刷新数据

    若依点击清空按钮 清空table数据 思路 点击清空按钮 触发输入框清空 并且移除列表中所有数据 实战 找到ry ui js新增restNoRefresh函数 ry ui js路径 src main resources static ruo
  • FPGA 频率计实验

    参考 正点原子开拓者 FPGA 开发指南 数字频率计是一种基本的测量仪器 被广泛应用于航天 电子 测控等领域 基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低 在使用中有较大的局限性 而等精度频率计不但具有较高的测量精度 而且
  • Jfinal报错Can not create instance of class: demo.DemoConfig

    根据文档demo 启动项目时报错 WARN oejuc AbstractLifeCycle FAILED jfinal java lang RuntimeException Can not create instance of class
  • vector对象的定义和初始化以及vector迭代器iterator

    vector对象的定义和初始化 vector类定义了好几种构造函数 用来定义和初始化vector对象 vector
  • JVM调优

    1 JVM参数分类 共分为三种 标准参数 开头 所有的Hotspot都支持 分标准参数 X开头 特定版本Hotspot支持特定命令 不稳定 XX开头 下个版本可能会取消 XX PrintCommandLineFlags 打印虚拟机启动时带的
  • 【计算机网络 (谢希仁) 习题题解】第5章 运输层 (4)——TCP的拥塞控制

    拥塞控制的一般原理 在计算机网络中的链路容量 即带宽 交换结点中的缓存和处理机等 都是网络的资源 在某段时间 若对网络中某一资源的需求超过了该资源所能提供的可用部分 网络的性能就要变坏 这种情况就叫做拥塞 congestion 可以把出现网
  • Celery raises ValueError: not enough values to unpack

    翻译Stack Overflow的 Celery raises ValueError not enough values to unpack 尝试使用 Celery 运行简单示例并收到异常 RabbitMQ 是在 Docker 中启动的 也
  • no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1

    问题 no matching key exchange method found Their offer diffie hellman group exchange sha1 diffie hellman group14 sha1 diff
  • C语言牛顿法解非线性方程组,牛顿法解非线性方程组

    Newton cpp Defines the entry point for the console application include stdafx h include include define N 3 void get Chuz
  • python 安装包时添加国内源

    python 安装包时添加国内源 清华源 i https pypi tuna tsinghua edu cn simple
  • 苹果mac电脑如何安装虚拟机?CrossOver Mac2023

    Mac虚拟机怎么安装系统 macOS系统无法正常安装Windows应用 无法正常使用Windows系统中的文件 在macOS系统中安装虚拟机是一种比较恰当的解决方案 mac电脑怎么安装虚拟机 mac电脑安装虚拟机需要根据个人需求 有选择性地
  • 如何保证APP兼容性覆盖测试和手机APP测试如何进行兼容性测试?(学习笔记)

    1 背景 众所周知 APP兼容性覆盖测试一直以来被认为是一个高成本 耗时低效 耗人力的测试工作 且兼容性测试是一项必须要进行的测试项目 因为有不同的机型 系统平台 分辨率 网络 厂商 数据兼容以及不同兼容问题场景需要进行覆盖 本文章将通过本