耗时一个星期整理的APP自动化测试工具大全
在本篇文章中,将给大家推荐14款日常工作中经常用到的测试开发工具神器,涵盖了自动化测试、APP性能测试、稳定性测试、抓包工具等。
一、UI自动化测试工具
1. uiautomator2
openatx开源的ui自动化工具,支持Android和iOS。主要面向的编程语言是Python,API设计简洁易用,在开源社区也是很受欢迎。
安装:
pip install --upgrade --pre uiautomator2# Or you can install directly from github sourcegit clone https://github.com/openatx/uiautomator2pip install -e uiautomator2
2. Appium
基于Node.js的一款非常成熟的APP UI自动化工具,支持多种语言开发,在测试圈非常流行,可以说是APP UI自动化领域的标杆产品。如果你不知道Appium,都不好意思说自己干测试这行。
3. ATX-Test
基于uiautomator2和unittest封装的一个UI自动化测试框架。项目作者已经把框架设计、可配置化、底层设备连接、日志模块、报告模块都做好了,使用者只需要编写PageObject和脚本逻辑即可,大大提高了uiautomator2的易用性。不仅如此,该项目现在还支持Monkey运行。
4. Airtest
网易开源的一个ui自动化测试工具,通过图像识别和UI控件检索技术,使得游戏测试简单快捷。支持Android、iOS、Windows、Unity、Cocos2dx、白鹭引擎、微信小程序,上手简单,游戏测试的朋友可以体验体验。
5. ATXServer2
支持Android和iOS的移动设备管理平台。可以通过web界面,察看测试手机的状态,可以做到远程操控手机,对于测试兼容性具有较大帮助。部署方便,支持docker-compose部署。
6. STF
远程移动设备管理平台,支持Android、iOS真机管理,功能非常强大。
7. Appetizer
使用十分方便。可以进行APP UI自动化测试,也可以支持APP稳定性测试,提供GUI界面操作,易用性极强,满足日常UI自动化需要。可惜只有部分组件开源。
二、APP稳定性测试工具
8. UICrawler
基于Appium的App UI遍历 & Monkey 工具,支持iOS和Android
9. Maxim
号称是智能monkey,用过的人都觉得真香。支持原生monkey、遍历控件、黑白名单等功能,而且也封装了更加易解析的日志文件。有了它之后,已经可以不需要再用原生monkey了。
10. AppCrawler
一个基于自动遍历的app爬虫工具. 支持android和iOS, 支持真机和模拟器. 最大的特点是灵活性. 可通过配置来设定遍历的规则。
三、APP性能测试工具
11. SoloPi
SoloPi是一个无线化、非侵入式的Android自动化工具,公测版拥有录制回放、性能测试、一机多控三项主要功能,能为测试开发人员节省宝贵时间(官方介绍)。一般用于APP的性能测试比较多。
12. GT
腾讯开源的APP的随身调试平台,可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。
利用 GT,仅凭一部手机,无需连接电脑,即可对 APP 进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash 日志查看、网络数据包的抓取、APP 内部参数的调试、真机代码耗时统计等。如果您觉得 GT 提供的功能还不够满足您的需要,您还可以利用 GT 提供的基础 API 自行开发有特殊功能的 GT 插件,帮助您解决更加复杂的 APP 调试问题。
GT 支持 iOS 和 Android 两个手机平台,其中:
iOS 版是一个 Framework 包,必须嵌入 APP 工程,编译出带 GT 的 APP 才能使用;iPhone 和 iPad 应用都能支持。Android 版由一个可直接安装的 GT 控制台 APP 和 GT SDK 组成,GT 控制台可以独立安装使用,SDK 需嵌入被调测的应用、并利用 GT 控制台进行信息展示和参数修改。
四、抓包工具
13. AnyProxy
阿里开源的抓包工具,基于Node.js可进行二次开发,使用场景:app爬虫、接口数据分析等。
14. mitmproxy
基于Python的抓包工具,对于pythoner更加友好,主要作用是对抓包数据进行采集供后续分析。
1.常见应用模式
Native
Hybird
H5
React Native
2.常用调试工具
Android平台
adb
ddms
aapt
monkey
monkeyrunner
emulator
hierarchyviewer
monitor
UIAutomatorviewer
iOS平台
atos
xcode
instruments
codesign
iExplorer
xcrun
3.常见UI自动化框架
Android平台
Instrumentation
Appium
Robotium
Instrumentation
Athrun
Monkey
MonkeyRunner
UIautomator
Selendroid
Calabash-Android
Espresso
cafe
Macaca
iOS平台
UIautomation
Frank
Appium
Monkeytalk
Calabash-iOS
iOS-driver
XCUITesting
TuneupJs
YNM3K
4.常见的单测框架
Android平台
Robolectric
Mockito
RxJava
Instrumentation
AndroidJUnitRunner
Espresso
iOS平台
XCTest
GHUnit
OCUnit
OCMock
OCMockito
Expecta
OCHamcrest
5.常用的抓包工具
Fiddler
Charles
Tcpdump
Wireshark
BurpSuites
第三方proxy server(如:Anyproxy、mitmproxy、browsermob-proxy)
6.弱网模拟
Fiddler
Charles
ACT(Augmented Traffic Control by facebook)
iOS developer mode
其他限速软件,比如各种随身WIFI、路由器、网卡等
7.常用的专项测试工具
Android平台
集成工具
GT(腾讯开源)
易测(淘宝不开源)
emmagee(网易开源)
iTest(科大讯飞不开源)
CPU
DDMS
Monitor
TraceView
ADB Shell
/proc/stat && /proc/%pid%/stat
Top
dumpsys cpuinfo
Android API
内存
MAT
DDMS(or Monitor)
Android Studio Monitor
Allocation Tracker
LeakCanary
ADB shell
dumpsysmeminfo %package_name% && dumpsys
meminfo %pid%
top
procrank
Android API
Memory Leaks(iOS)
流量
Tcpdump
ADB shell
/proc/uid_stat/uid/tcp_send(上传流量)
/proc/uid_stat/uid/tcp_rcv(下载流量)
Wireshark
Fiddler
Charles
Android API(版本限制)
FPS
ADB shell
service call SurfaceFlinger 1013(需要root)
dumpsys SurfaceFlinger
dumpsys gfxinfo %packagename%(版本限制)
Android开发者模式-GPU呈现模式分析
高速摄像头
启动时间
冷启动定义(无数据首次启动APP)
热启动定义(BACK退出APP后启动APP)
Logcat(Android 4.4+)
am start -W [packageName]/[packageName.MainActivity]
功耗(电量)
Android平台
dumpsys batterystats(版本限制)
反编译获取power_profile.xml查看
Battery Historian Tool(版本限制)
Android API
iOS平台
开发者选项->logging ->start recording + Instrument
功耗测试仪,如安捷伦
8.静态扫描
Android平台
火线
Findbugs
Infer
Sonar
Lint
P3C(阿里基于PMD开发)
PMD
CheckStyle
360代码卫士(商业)
Fortify(商业)
Coverity(商业)
iOS平台
OClint
infer
scan-build
Clang Static Analyzer
9.代码覆盖率
JaCoCo
Cobertura
Emma
Code Coverage in Xcode(iOS)
10.常用的云测平台
免费开源
STF
商业(限时免费)
Testin
百度MTC
阿里MQC
腾讯UTest
东软易测云
腾讯WeTest
TestBird
华为云
Pefecto
LessPainful
TestDroid
11.持续集成
Jenkins
Travis CI
Buildbot
Strider
Integrity
GO
12.监控SDK
探针
BlockCanary
LeakCanary
Bugly
crashlytics
友盟
网易云捕
相关文章:
耗时一个星期整理的APP自动化测试工具大全
在本篇文章中,将给大家推荐14款日常工作中经常用到的测试开发工具神器,涵盖了自动化测试、APP性能测试、稳定性测试、抓包工具等。 一、UI自动化测试工具 1. uiautomator2 openatx开源的ui自动化工具,支持Android和iOS。主要面向的编程语言…...
算法设计与分析(屈婉玲)视频笔记day2
序列求和的方法 数列求和公式 等差、等比数列与调和级数 求和的例子 二分检索算法 二分检索运行实例 2 n 1个输入 比较 t 次的输入个数 二分检索平均时间复杂度 估计和式上界的放大法 放大法的例子 估计和式渐近的界 估计和式渐近的界 小结 • 序列求和基本公式:…...
14-PHP使用过的函数 131-140
131、session_unset 释放当前会话注册的所有会话变量。 没有返回值。 132、session_destroy 销毁当前会话中的全部数据, 但是不会重置当前会话所关联的全局变量, 也不会重置会话 cookie。 如果需要再次使用会话变量, 必须重新调用 session_…...
【第39天】实现一个冒泡排序
本文已收录于专栏 🌸《Java入门一百例》🌸 学习指引 序、专栏前言一、冒泡排序一、【例题1】1、题目描述2、解题思路3、模板代码三、推荐专栏序、专栏前言 本专栏开启,目的在于帮助大家更好的掌握学习Java,特别是一些Java学习者难以在网上找到系统地算法学习资料帮助自身…...
「2」线性代数(期末复习)
🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 方阵的行列式 (1) |A^T||A|(2) |ǖ…...
动态规划专题——背包问题
🧑💻 文章作者:Iareges 🔗 博客主页:https://blog.csdn.net/raelum ⚠️ 转载请注明出处 目录前言一、01背包1.1 使用滚动数组优化二、完全背包2.1 使用滚动数组优化三、多重背包3.1 使用二进制优化四、分组背包总结…...
数据的分组聚合
1:分组 t.groupby #coding:utf-8 import pandas as pd import numpy as np file_path./starbucks_store_worldwide.csv dfpd.read_csv(file_path) #print(df.head(1)) #print(df.info()) groupeddf.groupby(byCountry) print(grouped) #DataFrameGroupBy #可以遍历…...
【Airplay_BCT】Bonjour conformance tests苹果IOT
从Airplay开始,接触到BCT,这是什么?被迫从安卓变成ios用户和开发。。。开始我的学习之旅,记录成长过程,不定时更新 Bonjour 下面是苹果官网关于bonjour的解释 Bonjour, also known as zero-configuration networking, …...
开发微服务电商项目演示(五)
登录方式调整第1步:从zmall-common的pom.xml中移除spring-session-data-redis依赖注意:本章节中不采用spring-session方式,改用redis直接存储用户登录信息,主要是为了方便之后的jmeter压测;2)这里只注释调用…...
Git删除大文件历史记录
Git删除大文件历史记录 git clone 仓库地址 查看大文件并排序 git rev-list --objects --all |grep $(git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -1|awk {print $1})删除大文件 git filter-branch --force --index-filter git rm --cached --ig…...
Seata-Server分布式事务原理加源码(一) - 微服务之分布式事务原理
概念 基础概念:事务ACID • A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失 败的情况。 • C(Consistency)…...
【ZooKeeper】zookeeper源码9-ZooKeeper读写流程源码分析
源码项目zookeeper-3.6.3:核心工作流程ZooKeeper选举和状态同步结束之后的服务启动ZooKeeper SessionTracker启动和工作机制ZooKeeper选举和状态同步结束之后的服务启动 在Leader的lead()方法的最后,即Leader完成了和集群过半Follower的同步之后&#x…...
Python实现批量导入xlsx数据1000条
遇到的问题:用户批量导入数据1000条,导入不成功的问题,提示查询不到商品资料。这个场景需要依靠批量的数据,每次测试的时候需要手动生成批量的数据,然后再导入操作,费时费劲。所以写了个脚本来实现。在前面…...
Ubuntu20.04安装redis与远程连接
一、安装Redis5.7 1、安装Redis apt-get install redis-server2、安装完成后,Redis服务器会自动启动。查看redis是否启动成功 service redis-server status #查看状态如下显示Active:active(running)状态:表示redis已在运行,启动成功。 …...
SAS应用入门学习笔记5
input 操作符: 代码说明: 1)1 表示第1列字符;7表示第7列字符; 2)col1 表示第一列数据;col2 表示第二列数据; 3)4.2 表示的是4个字符,2表示小数点后两位&a…...
PHP新特性集合
php8新特性命名参数function foo(string $a, string $b, ?string $c null, ?string $d null) { /* … */ }你可以通过下面的方式传入参数进行调用foo(b: value b, a: value a, d: value d, );联合类型php7class Number {/** var int|float */private $number;/*** param f…...
【开发环境配置】--Python3的安装
1-开发环境配置 工欲善其事,必先利其器! 编写和运行程序之前,我们必须先把开发环境配置好。只有配置好了环境并且有了更方便的开发工具,我们才能更加高效地用程序实现相应的功能。然而很多情况下,我们可能在最开始就…...
postman实现接口测试详细教程
各位小伙伴大家好, 今天为大家带来postman实战接口测试详细教程 一、通过接口文档集合抓包分析接口 通过fiddler抓包获取到注册接口URL地址及相关参数数据,并通过接口文档分析接口参数内容及参数说明, 如有必要的依赖条件必须进行梳理, 如token等 Fiddler抓包注册接口请求与…...
使用crontab执行定时任务
本来这个东西是挺简单的,是我脑子一直没转过来弯,我就想看看有多少人跟我一样😏 crontab语法自己去菜鸟教程看看就知道了,没什么难度 需求:每分钟定时执行一个PHP文件或者一个PHP命令 这是需要执行的文件࿰…...
剑指 Offer 56 - II. 数组中数字出现的次数 II
题目 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 思路 这题是剑指 Offer 56 - I. 数组中数字出现的次数的变体,本题只有一个数num出现一次,其余的均出现三次 三次的话使用异或消无法…...
C语言学习笔记(八): 自定义数据类型
结构体变量 什么是结构体 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体 结构体的成员可以是任何类型的变量,如整数,字符串,浮点数,其他结构体,指针等 struct Student //s…...
Video Speed Controller谷歌视频加速插件——16倍速
文章目录前言最简单的版本一、如果是简单的话 可以Microsoft Edge使用二、简单的版本 火狐的话使用Global Speed插件三、由于视频受限以上的方法行不通 还是谷歌好用前言 主要是网课刷的时候 太慢所以找到了刷视频的方法 由于前几个的权限受限制 所以还是选用了谷歌浏览器的 V…...
VSCode 的下载安装及基本使用
目录 一、VSCode 是什么? 二、VSCode 的下载和安装 2.1 - 下载 2.2 - 安装 2.3 - 安装汉化插件 三、MinGW-w64 的下载安装及配置 3.1 - 介绍 3.2 - 下载 3.3 - 解压安装 3.4 - 环境变量配置 3.5 - 验证配置是否成功 3.6 - 安装 C/C 插件 四、在 VSCode …...
【操作系统】磁盘IO常见性能指标和分析工具实战
1.磁盘读写常见的指标 (1)IOPS(Input/Output Operations per Second) 指每秒能处理的I/O个数,表示块存储处理读写(输出/输入)的能力,单位为次,有顺序IOPS和随机IOPS比如…...
SpringMVC基础
简介 Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面;Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块;使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择…...
低代码开发平台|制造管理-质检管理搭建指南
1、简介1.1、案例简介本文将介绍,如何搭建制造管理-质检管理。1.2、应用场景质检分别包括来料质检、过程质检、成品质检,来料质检在采购物料入库后会自动发起来料质检的流程,质检合格才可提交结束流程;过程检是在生产过程中的质检…...
推荐一个.Ner Core开发的配置中心开源项目
更多开源项目请查看:一个专注推荐.Net开源项目的榜单 当你把单体应用改造为微服务架构,相应的配置文件,也会被分割,被分散到各个节点。这个时候就会产生一个问题,配置信息是分散的、冗余的,变成不好维护管理…...
Vue3+vite4使用mockjs进行模拟开发遇到的坑
Vue3vite4使用mockjs进行模拟开发遇到的坑 最近没那么忙了,就想着自己写一个后台管理系统的小demo。刚好最近把Vue3的文档撸了一遍,正好可以顺便练习一下Vue3ts。 插件 1、mockjs是必不可少的。 2、vite-plugin-mock。由于现在创建Vue3项目默认都使用vit…...
一起Talk Android吧(第四百九十三回:动画知识总结)
文章目录知识回顾经验总结各位看官们大家好,上一回中咱们说的例子是"精减版动画",这一回中咱们说的例子是" 动画知识总结"。闲话休提,言归正转,让我们一起Talk Android吧!知识回顾 看官们,我们在…...
腾讯云企业网盘正式入驻数字工具箱
腾讯技术公益继腾讯电子签等入驻后,上线近半年的腾讯技术公益数字工具箱再次迎来新成员——腾讯云企业网盘,现已正式接受公益机构申请公益权益。腾讯云企业网盘(https://pan.tencent.com)是由腾讯云推出的一款安全、高效、开放的企…...
wordpress读者墙不显示/全网营销系统是干什么的
12.1 Linux内置命令概述 Linux里有一些特殊的命令,称为内置命令(直接内置在BASH解释器中),它们天生就与其他的普通命令不同,因为它们从系统启动成功的那一刻就已经在内存里安家了。 当其他普通命令还在慢悠悠地…...
上海平台网站建设哪家有/事件营销
RabbitMQ就是一个消息代理(message broker),可以用来接收和发送消息。 消息队列有一些黑话,我们来看下: Producer : 发送message的程序Queue : 可以用来存储messageConsumer : 接收message的程序注意,producer 和 consumer 和 que…...
建设网站的安全性介绍/吸引人的软文标题
传统的Container由于隔离性差而不适合作为Sandbox运行不受信工作负载,VM可以提供很好隔离但却额外消耗较多的内存。Google开源的gVisor为我们提供另外一种选择:在牺牲掉一定性能的情况下,它只额外消耗非常少量的内存,却可以提供了…...
我想卖自己做的鞋子 上哪个网站好/河北seo公司
可自定义设置以下属性: 倒计时数值(countdown),必传,类型 number,单位ms,支持设置未来某时刻的时间戳 或 相对剩余时间,默认值 0 倒计时标题(title)…...
自己做的网站怎么添加文档/建设网站制作
光交换机常用命令 一、常用查看命令 switchshow #查看交换机摘要及端口摘要信息 zoneshow #查看ZONE信息 cfgshow #查看配置信息 alishow #查看别名 ipaddrshow #查看IP地址 licenseshow #查看许可 version …...
新开传奇网站新开网/郑州网站托管
「龙蜥开发者说」第 17 期来了!开发者与开源社区相辅相成,相互成就,这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的,我们希望在这里让更多人看见技术的力量。本期故事,我们邀请了龙蜥社区开发者柳辛…...