暂时未有相关云产品技术能力~
暂无个人介绍
OTT的设备越来越多,用户量也越来越大,因此性能问题特别是应用启动和页面加载耗时的评测需求也越来越多,目前响应耗时类的自动化测试主要有两种方案:一种是通过埋点,一种是通过录屏。 其中埋点方案最大的缺点就是埋点时间和实际时间不一致,特别是一些存在二次刷新的场景,所以埋点方案无法反映用户的真实体感,因此本文主要介绍录屏方案在OTT端的实践。
《简单两步实现 Jacoco+Android 代码覆盖率的接入!(最新最全版)》介绍了如何实现Android端的代码覆盖率接入,基于同样的背景我们也需要实现iOS端的代码覆盖率数据采集。
浅谈自动化测试的价值和常见误区
图解ADB工作原理,建议收藏!
Linux 使用strace命令查找进程卡死原因
自动化检测 Android APP 非 SDK 接口使用,防止非预期异常发生!
自动遍历测试方法与常用工具推荐
Android性能加压方案:提高概率性问题的复现几率
在移动端自动化测试过程中经常会遇到需要截长图的场景,比如大促活动的H5页面、动态信息流页面等,但是目前在网上检索只能搜到关于截长图的软件推荐,没有讲关于如何通过自动化脚本的方式实现的文章,今天就来给大家分享一个简单的实现方案。
Jenkins拉取代码提示 “Current Git branch is HEAD detached at”
测试开发工程师需要知道的 Android和iOS CPU架构基础知识
我们平常使用 pip 命令安装 Python 包时,默认是去 https://pypi.python.org/simple/ 源查找相应的包下载并安装的,但是在企业内网环境我们需要发布一些私有包提供给内部用户使用时,就需要搭建自己的 PyPI Server了。
简单两步实现 Jacoco+Android 代码覆盖率的接入!(最新最全版)(二)
简单两步实现 Jacoco+Android 代码覆盖率的接入!(最新最全版)
在一些移动云测手机机房里Android设备是分批挂载在专门的宿主机集群上的,而执行自动化脚本的机器是在另外一个执行机集群中,因此就会产生这样的需求:执行机上的自动化脚本需要通过网络远程连接的方式来控制宿主机上的Android设备。 今天给大家分享两个实现远程连接Android设备的方案。
在做移动端自动化测试的过程中,有很多场景需要录制设备的屏幕视频,比如Crash现场记录,启动/页面加载耗时类的评测等,那么如何实现Android和iOS设备的屏幕录制呢?
为了提高iOS云真机的稳定性,除了上篇文章《提高iOS云真机稳定性的方法(一)》中讲到电量、存储和清理第三方应用外还需要对iOS手机本身做一些额外的设置。
上篇文章《iOS真机安装WebDriverAgent图文详解》中提到如果使用付费版开发者证书去编译安装WDA,那么就不需要在手机上点击信任,这样更方便自动化测试的执行,今天就给大家详细分享一下如何申请个人付费开发者证书以及如何使用。
在做iOS自动化测试的时候,一般都需要确保手机上已经安装有WebDriverAgent应用,这个WDA应用可以是Airtest修改版、Appium修改版也可以是Facebook原版,今天我们以Appium修改版为例来进行说明,其他版本同样适用。
最近半年投入了比较多的精力在手机机房的建设,踩了不少坑,也积累了很多经验,接下来会分几个篇幅跟大家分享一些比较简单实操的小技巧来提高云真机的稳定性,今天主要讲讲iOS端如何做电量、存储监控以及清理第三方应用。
在之前的一篇文章《移动端UI自动化过程中的难点及应对策略》中,我们提到在Android自动化测试执行过程中经常会遇到一些非预期的系统弹框,我们可以通过无障碍服务来实现智能点击处理,但是通常这个服务只能手动到设置中开启,今天就跟大家分享一下如何实现一个自定义的无障碍服务以及如何自动化的开启它。
在Android自动化测试执行过程中,经常会由于这样或那样的原因导致手机屏幕被锁定从而导致测试失败,如果你使用的是Appium或者Airtest这样的框架,框架中自带了点亮并解锁屏幕的API,但如果是使用的自研框架或者是u2框架,就需要自己去实现这个功能了。
在之前的一篇文章《移动端UI自动化过程中的难点及应对策略》中,我们提到在移动端自动化测试执行过程中经常会由于其他应用或者本应用的通知弹框阻断测试的执行,对此在iOS端我们可以通过关闭手机上的所有应用通知权限来一定程度的避免,在Android端我们则可以通过禁用通知栏来避免此类问题的发生,而如何禁用通知栏就需要用到上篇文章《让Android自动化辅助APP成为设备所有者(一)》中的方法,先将Android自动化辅助APP设置成为设备所有者。
上一篇文章《让Android自动化辅助APP成为设备所有者(一)》分享了如何将应用设置为设备所有者以及如何移除设备所有者权限,但是Android手机品牌和型号众多,特别是国产手机系统时常添加各种中国特色功能,因此其与设备管理员模式的兼容性或多或少存在一些问题,今天专门来讲讲我遇到的一些常见机型兼容性问题。
我们之所以需要将Android自动化测试的辅助APP设置成设备所有者是为了更好的控制系统的一些行为从而让整个测试过程更稳定。
其实作为用户和操作系统来说都是不希望应用常驻后台的,因为这样会造成手机电量和性能的过度消耗,从而影响用户的使用体验,不过我们这里的使用场景主要是为了在Android自动化测试过程中提高测试的稳定性而开发的辅助应用,在这种场景下我们当然是希望我们的辅助APP可以实现永久保活,并通过保活实现事件监听、监控数据上报等等交互行为。那么本文就给大家介绍一下如何简单的给自己的自动化辅助APP实现保活方案。 这里推荐一款开源的框架来方便的实现后台服务保活,当然万能不死的进程保活黑科技是不存在的,这个框架也只是尽最大可能去提高保活的效果。
在之前的文章《移动端UI自动化过程中的难点及应对策略》中我们讨论了影响移动端自动化稳定性的一些因素,其中宿主机环境是一个不可忽视的问题,大家都知道移动端的自动化一般都需要将设备挂载到实体服务器上运行,如果服务器宿主机出现断网或者磁盘空间不足等情况,都会在一定程度上影响自动化任务的执行,因此今天跟大家分享一下如何做服务器宿主机的监控。
应用可能会在单个帧内多次绘制同一个像素,这种情况称为“过度绘制”,过度绘制通常是不必要的,最好避免,它会浪费 GPU 时间来渲染与用户在屏幕上所见内容无关的像素,进而导致性能问题。
在之前的文章《自动化质量评估维度》中,我们探讨了衡量自动化稳定性的误报率指标,今天重点针对移动端UI自动化过程中导致误报的几个难点进行展开分析并给出相应的解决方案。
很多公司级的Python项目不方便上传到公有仓库,这时候就需要搭建自己的私有pypi仓库了,这里如果只是团队部门小范围使用,推荐通过pypiserver搭建。
由于现在很多应用的页面数据都是AI算法推荐生成的,所以每次打开同一个页面数据都会不一样,因此在做客户端UI自动化的过程中都会采用Mock方案,利用MockServer来提供稳定的测试数据,其中MockServer的代理需要手动配置。 拿Android手机举例,过程大致是:进入设置->进入 WLAN ->找对应 wifi 连接->进入详情->找到代理->选择手动->输入主机名->输入端口号->最后保存,可以看到每次都是重复操作,特别当你的自动化设备很多以及MockServer服务不稳定导致IP经常变的情况下累加的时间成本是很高的,而且一不小心,还有可能写错
在之前的文章《自动化测试之进程管理》中讲到了用Supervisor做进程管理的好处,可以很方便的用来启动、重启、关闭进程,类似于 Linux 的 systemd 守护进程一样,通过统一的命令来管理系统的各个服务,当管理的服务挂掉时会自动重新拉起,如果只有一台服务器的情况下,问题倒不大,但是如果你有一个自动化集群,部署着数十个进程服务,那么管理和维护成本就会陡增。 今天就来给大家分享一个解决方案 - CeSi,该工具是 Supervisor 的 WebUI,可以通过这个统一的 WebUI 集中化管理各个服务器节点的进程。
在《APP网络性能测试白皮书》中我们已经探讨了为什么要做弱网测试以及弱网测试中需要关注的一些指标,在《弱网环境搭建方案选型》这篇文章中我们讨论了各种弱网模拟方案的优缺点,其中在预算有限的情况下我是比较推荐基于ATC和树莓派去搭建弱网模拟平台的,这块的内容可以参考《树莓派搭建弱网测试环境全纪录(1)》和《树莓派搭建弱网测试环境全纪录(2)》,基于ATC的方案其实已经可以满足绝大部分场景的需求,但是原生的ATC方案易用性比较差,每次修改网络场景需要把被测APP置于后台,切换到网络模拟界面改参数,然后再切回被测APP,影响被测APP的操作连贯性,今天我要推荐的是一个基于ATC改造后的弱网模拟工具
在经典的性能问题中,一般我们会说两种问题:一种是I/O密集型问题,另外一种就是CPU密集型的问题,今天我就来聊聊如何测试Android应用的 CPU性能。
我们在做Android自动化测试过程中,经常会需要获取应用的启动Activity页面信息,那么今天就来跟大家分享一下有哪些获取应用启动Activity页面信息的方法。
在日常测试开发过程中,特别是跟客户端相关的业务,肯定会遇到需要查看应用源码的需求,今天来给大家推荐一款超级好用的Android反编译神器——JADX。
现在应用市场的要求越来越高了,而且随着Android版本的升级,官方对于权限这部分的管控越来越严格,因此我们秉着最少可用原则,绝不向用户申请额外的权限,但由于团队规模越来越大,很难保证某个模块没有新增权限,所以我们需要一个工具可以简单的给出每个版本应用的权限变化信息。
现在移动应用中内嵌webview的场景越来越多了,我们经常会有这样的需要,出于想要调试某个H5页面或者测试某个H5页面的性能,我们需要得到该页面的地址,但一时找不到负责这个页面的开发同学,今天就跟大家分享一下如何快速查看native应用中的H5页面地址。
之前《Tcpdump流量自动化测试上篇》、《Tcpdump流量自动化测试下篇》这两篇文章里讨论了如何通过tcpdump命令行工具来实现Android应用的流量自动化采集和分析,今天再来跟大家分享一下如何针对应用启动场景来做流量测试,有人可能会问了为什么是启动场景?因为现在工信部要求在用户没有授权网络请求前,应用不得擅自进行网络请求,特别是当跟厂商合作提供预装包的时候对此项的检查很严格。 另外跟大家说明一下,我分享的文章都是亲自实践过的,基本照着方案操作不会有大问题,默认情况下我所使用的操作系统都是MacOS。
大家知道Jenkins有很多种安装方式,可以通过Homebrew、War包等形式,但在 MacOS 上有一种更简单的方式就是通过 dmg 安装,不过这里选择了这种方式安装在后面使用Jenkins的过程中会经常遇到执行某些命令权限不足的情况,果然简单是有代价的
接上一篇《Tcpdump流量自动化测试上篇》讲到通过自动化的方式获取到Pcap文件,今天来讲讲怎么用Wireshark来自动分析统计Pcap包中指定的流量。
在实际的测试开发工作中,由于平时的工作机是Mac再加上自动化测试以及专项性能测试过程中经常会跟各种Linux命令打交道,所以看过好多讲Linux常用命令的书籍和资料,但里面讲到的每个命令的用法、参数都太大而全了,很容易吓退初学者,我觉得这种类型的书更适合作为工具书用来查阅。 这里我打算通过实际工作过程中具体的应用场景来讲解其中用到的一些Linux命令,本文就先以Android Tcpdump抓包分析应用启动流量来展开。
Android应用大部分性能问题归根结底都会成为内存的问题,今天我们就先以Out of Memory(OOM)为起点介绍一下Android内存的原理以及排查内存问题的方法。
iOS模拟动态定位的测试方案
iOS移动应用模拟定位的非侵入式测试方案
Flutter Widget源码解析及实战(二)
Flutter Widget源码解析及实战(一)
基于机器学习的启动耗时自动化测试方案(二)
基于机器学习的启动耗时自动化测试方案(一)
自动化测试脚本设计思想