智能体测开Day35APP测试
手机测试
终端测试:手机、平板或者穿戴设备的测试,包括硬件和软件结合的测试,车载,智能家居家电
整机测试:手机的整机测试
app测试:第三方app软件
本质上是app测试
手机的操作系统
1) Android
Google发布的,基于Linux平台开发的一款操作系统。每个Andriod应用都使用了不同的用户。每个应用部署在一个独立的虚拟机中,应用与应用之间是隔离的。一些文件,只有同一个用户的应用才能访问。每个应用只能访问自己的数据,不能访问无权使用的功能。
*Andriod相关的一些属性(四大组件)
Activity(活动page):一个活动可以理解成应用程序与用户之间的一个交互界面。百度首页面、编辑页面、保存按钮。
service(后台服务):边听音乐边使用微信发朋友圈。有一个后台播放音乐的服务在运行着。没有图形化界面,不影响前台用户体验的一个组件。
contentProvider(内容供应组件):内容供应组件管理应用程序可共享的数据。手机上用户的数据一般存储在文件中或者sqlite数据库中。比如手机的通讯录,其他应用程序,比如微信、QQ要访问通讯录,通过内容供应组件来实现。
broadcast Receivers(广播接收组件):Andriod里面有各种广播,应用程序需要接收这些广播,针对性的处理。比如电池状态、来电、来短信等,都是Andriod通过广播发给各种应用的。2) ios
苹果设备使用的系统。
每个应用程序运行在一个属于自己的沙盒(sandbox)中。应用之间是互相隔离的,应用A不能访问应用B的沙盒。
应用程序要读取一些公共的资源,这些资源在沙盒之外,比如通讯录、短信、照片等。苹果是提供了公共的API来访问公共资源,每次访问时要授权。3) 鸿蒙
鸿蒙系统(Harmonyos)则是华为自主研发的一种基于微内核、面向全场景的分布式操作系统。华为于2019年8月9日首次推出鸿蒙系统。鸿蒙系统与安卓系统在技术和应用层面存在显著差异,并非简单的套壳关系。
adb(重点)
环境撘建
1) java的环境,jdk
2)Android的环境sdkmanger.exe
3) adb工具安装
AndriodsKPlatformTools:一个工具集,包含了一些命令行工具比如adbexe
AndriodsDKBui1dTools:用来编译、打包安卓应用程序的一个工具
oogleusB Driver:使用电脑连接安卓设备时,使用的驱动程序,能自动识别设备。
Andriod support Repository:安卓应用程序开发时用的一个支持库,里面提供API工具,可以支持不同版本的安
卓系统和设备。
4)安装Android设备:模拟器真机
概述
adbandroid debug bridge 命令行工具,有了它,就能通过命令行和Android设备通信
ADB是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是android设备
adb客户端:电脑上的命令行窗口
adb守护端:Android设备上的,后台进程的方式运行
adb服务器:电脑上,以后台进程的方式运行,用来管理客户端
adb命令***
1)连接命令
adb devices2)安装命令
adb install apk工具 adb install d:\apks\meitu6.0.1.1.apk3)升级:覆盖安装
adb install -r apk工具 adb install -r d:\apks\meitu8.6.2.0.apk4)查看安装了哪些app(查看app的包)
adb shell pm list packages 查看手机上所有的包 pm:package manger adb shell pm list packages | findstr "mt" 管道符查找 adb shell pm list packages -3 查找客户安装的app包5) 卸载app
adb uninstall app包 adb uninstall com.mt.mtxx.mtxx6)启动app
第一步,获取首个activity类 aapt工具可以查看apk工具包的详情:
aapt dump badging apk工具包 aapt dump badging d:\apks\meitu8.6.2.0.apk aapt dump badging d:\apks\meitu8.6.2.0.apk | findstr activity 结果:com.mt.mtxx.mtxx.TopViewActivity第二步:
启动app adb shell am start 包名/.activty类 adb shell am start com.mt.mtxx.mtxx/.TopViewActivity7)强制停止
app adb shell am force-stop app包名 adb shell am force-stop com.mt.mtxx.mtxx8)传递数据
电脑上的文件--》手机上
adb push 电脑路径的文件 手机路径的文件 adb push d:\cat.jpeg /storage/emulated/0/Download/cat1.jpeg手机上的文件--》电脑上
adb pull 手机路径的文件 电脑路径的文件 adb pull /storage/emulated/0/Download/cat1.jpeg d:\apks\cat.jpeg10)日志查看
adb logcat adb logcat >> d:\apks\log.txt adb logcat -help 帮助文档 ctrl+c 停止查看日志11)重启
adb rebooapp专项测试-安装卸载升级
APP属于应用类软件,运行在手机、Pad、智能穿戴产品上等。跟PC端的程序相比,移动端运行的 实体小,以移动 的方式与服务进行通信。
传统的测试方法与技术在APP上也是适用的,除此之外,还有一些专项测试。
安装包:
Android:*.apk Android Package IOS:.ipa iPhoneApplication安装渠道:应⽤市场、下载安装包安装、豌⾖荚、应⽤宝、360⼿机助⼿等
关注点
安装关注点
1)安装后,APP是否能正常启动
2)app覆盖安装能否成功
3)不同型号,不同系统,不同屏幕大小,不同分辨率的手机上安装
4)安装时,界面的显示信息是否正确
5)取消安装
6)在一些异常的场景下能否安装成功(内存不足,存储空间不足,关机/重启手机,断网)
卸载关注点
1)卸载后,相应的文件目录是否卸载干净
2)不同型号,不同系统,不同屏幕大小,不同分辨率的手机上卸载
3)在一些异常的场景下能否卸载成功(内存不足,存储空间不足,关机/重启手机,断网)
4)取消卸载
5)取消卸载后,APP能否正常使用
6)手机应用市场,豌豆荚,应用宝等各种方式安装、卸载
升级关注点
1)升级时,客户端有新版本提示
2)如果是强制升级,用户选择不升级,APP无法继续使用
3)跨版本升级:eg v8.0.0-->V8.1.0 v6.0.0-->v8.1.0
测试方式
1)手工测试 手动测试 在真实的手机上,对被测的app进行测试,查看安装卸载升级等以及app功能能否正常使用
迭代测试:需要对Top50的机型进行测试
上线前:需要对Top20/10的机型进行测试,对之前有问题的机型进行测试
Top 20 /Top 10的机型查看网址: https://www.phb123.com/pinpai/top66381.html
2)adb命令进行自动化测试
3)appium进行自动化测试
编写python代码
4)使用第三方云服务平台测试 收费
wetest 后台有很多手机集群,进行测试,测试的手机版本和型号比较全https://wetest.qq.com/
testin 深度兼容性测试用的比较多,生成比较详细的报告https://www.testin.cn/样例报告:https://realneo.testin.cn/index?adaptid=ttcf4a8b7c92ec7b8b3ad196424c6974
背诵内容
android的架构是什么?我们测试的app属于Android架构的哪一层
Linux 内核层(最底层)基于 Linux 改造,管理硬件驱动、内存、进程、电源、网络、权限,衔接硬件和上层软件。
系统运行库 & ARTC/C++ 底层库(图形、数据库、音视频)+ ART 虚拟机,用来运行 Java/Kotlin 代码。
应用框架层系统提供的整套 API、系统服务(页面管理、窗口、通知、定位、控件体系); 开发 App 时调用的所有系统接口都来自这一层。
应用层(最上层)所有可直接点开使用的应用软件。
日常测试的 APP 属于:应用层
微信、淘宝、OA 系统、各类自研业务 App、手机自带短信 / 相机软件,全部归属应用层;
App 本身是依托应用框架层提供的系统接口开发出来的,运行在 ART 虚拟机之上;
测试人员功能测试、UI 测试、兼容性测试,操作的对象就是应用层程序;
*Android的四大组件?作用分别是什么? 常见的手机系统有什么?
Andriod相关的一些属性(四大组件)
Activity(活动page):一个活动可以理解成应用程序与用户之间的一个交互界面。百度首页面、编辑页面、保存按钮。
service(后台服务):边听音乐边使用微信发朋友圈。有一个后台播放音乐的服务在运行着。没有图形化界面,不影响前台用户体验的一个组件。
contentProvider(内容供应组件):内容供应组件管理应用程序可共享的数据。手机上用户的数据一般存储在文件中或者sqlite数据库中。比如手机的通讯录,其他应用程序,比如微信、QQ要访问通讯录,通过内容供应组件来实现。
broadcast Receivers(广播接收组件):Andriod里面有各种广播,应用程序需要接收这些广播,针对性的处理。比如电池状态、来电、来短信等,都是Andriod通过广播发给各种应用的。常见的手机系统:Android、ios、鸿蒙
Android和ios的特点分别是什么?他们之间的差别是什么?
Android 特点
开源、自由度高、机型多、文件管理方便、自定义强,久用易卡顿
iOS 特点
闭源、软硬适配好、流畅持久、安全性高、隐私严格,可定制性差
核心差异
- 开源:安卓开源;iOS 封闭
- 自由度:安卓限制少;iOS 管控严格
- 流畅:iOS 长期更顺滑
- 应用:安卓可安装安装包;iOS 主要依靠 App Store
- 生态:iOS 多设备联动更佳
*web测试和app测试的差别有哪些?
1. 运行载体:网页靠浏览器;App安装在手机系统
2. 安装升级:网页无需安装;App要测安装、卸载、版本更新
3. 兼容侧重点:网页兼容各类浏览器;App兼容不同手机、系统版本
4. 特有测试项:App需测中断、网络切换、耗电、权限、前后台切换;网页不用
5. 更新方式:网页刷新即时更新;App必须打包发新版本
6. 交互:App支持触屏各类手势;网页手势较少
***常见的adb命令
1. **查看设备**
`adb devices`
2. **安装APP**
`adb install xxx.apk`
3. **卸载APP**
`adb uninstall 包名`
4. **查看所有应用包名**
`adb shell pm list packages`
5. **打开APP**
`adb shell am start -n 包名/启动页`
6. **关闭应用**
`adb shell am force-stop 包名`
7. **查看日志(抓log)**
`adb logcat`
8. **截图保存到电脑**
`adb exec-out screencap -p > screen.png`
9. **文件传到手机**
`adb push 电脑路径 手机路径`
10. **手机文件拉到电脑**
`adb pull 手机路径 电脑路径`
11. **进入手机终端**
`adb shell`
12. **重启手机**
`adb reboot`
13. **查看手机系统信息**
`adb shell getprop`
