前言
原生和混合
在市场上区分原生、混合开发原生:是区分安卓(Andriod)和IOS(C 语言) 。 1. 一个 app 有两套代码,两个不同的岗位去完成的。 2. 性能会更好、兼容性也会好 3. 开发成本高、时间慢
混合:原生 +H5 。一般可以实现一套代码生成安卓版本和 iOS 版本。 1. 成本会低、多平台兼容
纯 H5App : 性能会差很多。H5更适合推广,不用下载app就能打开别人分享的页面。
App相关的关键字
安卓、ios对应的安装包的扩展名
安卓:apk
ios:ipa
手机的快慢 ? 运行内存 -- RAM 手机能够存储多少东西 ? 存储内存 --ROM 最高权限 : ROOT
问题: APP兼容性测试时,版本怎么选择?
1. 会选择常用的设备,先确定功能的正确性
2. 选择对应的手机进行兼容性测试,主要测试主流程。
确保APP能够正确的使用,并且页面布局正确
3. 选择的手机一般选该手机的最新版本往下走四个版本左右,及最旧的。
苹果 :
小米:最近比较火的手机选择几个
华为 :最近比较火的手机选择几个 ,版本各有不同
总结: 10 -15 个手机确定主流程的正确性即可。(如果时间多,你可以适当的再选选)
Web测试和App测试有什么异同点?
相同点:
1:流程、测试方法、测试理论都是一样
2:包含功能测试、兼容性测试、性能测试、安全测试
不同点:
1:架构不一样,web测试是B/S架构,App测试是C/S架构
2:环境不一样,web测试是比较稳定和单一的,网络环境比较稳定和单一,App测试比较多变,网络环境:2G/3G/4G/WIFI/5G
3:部分测试内容不一样,web兼容性测试主要考虑平台、浏览器、分辨率,App兼容性测试系统、分辨率、尺寸、品牌。App测试有电量、流量、弱网、内存泄露、外网场景等测试策略,web没有这些。
4:测试的工具不一样,web自动化selenium,App自动化Appium
adb安装
1、下载压缩包,解压
2、配置环境变量:把文件路径配置到Path里
3、验证:cmd输 adb version
地址:https://developer.android.google.cn/tools/releases/platform-tools?hl=zh-cn
配置手机(真机)或者模拟器
模拟器可以百度进行下载,比如说夜神、雷电、逍遥等等,这边推荐使用夜神。(安装简单,一键安装)
配置模拟器:
1. 打开模拟器
2. 进入设置设置对应的模式为手机,性能
3. 进入到手机设置页面- 找到个人中心(版本号)--点击5次
4. 返回到设置 页面,会有一个开发者选项
5. 开启调试模式
配置真机 :
1. 使用usb进行调试,一定要授权!!!(不要是充电)
2. 配置模拟器的后三步都需要做。(百度搜索一下你的手机是怎么开启开发者权限)
adb常用命令
adb devices 列出所有的设备
adb -s 设备号 [命令] 针对连接多台设备,指定操作哪台,如:adb -s 设备号 shell
adb root 获得root权限
adb remount 获得system文件的读写权限
安装
adb install apk包名路径 通过命令安装安卓应用
adb install -r apk包名路径 覆盖安装
卸载
adb uninstall apk包名 通过命令卸载安卓应用
adb shell cmd package uninstall -k 包名 保留之前的数据
adb shell pm list packages 列出手机装的所有app的包名,在安卓中,所有的包名存在、data/data中
文件操作(日志文件怎么导出)
adb push 本地路径 远程路径 上传本地文件到手机上
如:adb push g:\adbtest\log.txt /system
adb pull 远程路径 本地路径 把手机上的文件下载到本地(本地路径最好放在一个文件夹下)
如:adb pull /system/log.txt g:\adbtest
日志操作
adb logcat 查看日志,ctrl+c退出
adb logcat >本地日志路径 输出的日志保存在本地文件
如:adb logcat >g:\adbtest\log.txt 输出的日志保存在本地文件
adb logcat -c 清理日志
adb logcat *:E 日志筛选,只输出error日志
adb bugreport 输出日志,包含logcat、同时也有一些功耗、CPU等日志信息,只支持安卓7.0以上
adb bugreport > 本地日志路径
adb shell 进入shell,进入shell后可执行linux命令,exit(退出)
adb kill-server 关闭adb服务
adb start-server 启动adb服务
移动端稳定性测试工具——Monkey
稳定性测试:长时间的去运行软件,确定软件能够友好的为用户提供服务。
monkey:随机的向应用发送对应的操作,人工的去模拟用户的操作,确定APP的稳定性。
monkey在哪里,需要安装吗?==手机自带的,通过adb去调用。
monkey命令及参数
adb shell monkey 指令
1、基本参数
count : 必填,指定操作多少次
-p :指定对应的包,可以指定多个 -p 包名1 -p 包名2
如:adb shell monkey -p com.hcedu.hcdeom 5000
--throttle :设置每个动作的间隔时间,如6000ms
如:adb shell monkey -p com.hcedu.hcdeom --throttle 6000 5000
-v、-v-v、-v-v-v(最为详细):日志级别
如:adb shell monkey -p com.hcedu.hcdeom --throttle 600 -v-v-v 5000 >d:\test\log.log
-s :指定对应的种子(seed),进行回归测试。如果需要回归测试可以直接指定对应的种子即可。
如:adb shell monkey -s 1676758881596 -p com.hcedu.hcdeom -v-v-v 5000 >d:\test\log.log
2、调试选项
如何避免出现错误不要让它停止运行? 调试选项 -- 都带上 -- ignore - crashes 忽略在应用程序出现crash时导致的monkey 停止 -- ignore - timeouts 忽略在应用程序出现 ANR 问题时导致 monkey 停止 -- ignore - security - exceptions 忽略应用程序发生许可错误时导致 monkey 停止 -- kill - process - after - error 当应用程序发生错误时,应用程序停止运行并保持在当前状态 adb shell monkey - s 1676758881596 - p com . hcedu . hcdeom -- ignore - crashes -- ignore - timeouts -- ignore - security - exceptions -- kill - process - after - error - v - v - v 5000 > d : \test\log . log
3、事件类型选择
事件类型百分比可以随意组合,不要超过100%即可。
稳定性测试连接真机用wifi连接步骤
真机:通过usb或者wifi(拔掉usb数据线后也能运行)
1. 设置--开发者选项--打开USB调试 2. 连接USB线,文件传输的选择(文件、图片),并允许权限操作 3. 确定手机和电脑是同一个局域网之中 4. 输入:adb devices,回车,确定设备连接 5. 再输入:adb tcpip 5555 把手机默认的连接方式是USB,通过此命令是把USB连接方式改为tcpip方式 6. 拔掉数据线,输入:adb connect ip:5555 比如:adb connect 192.168.2.217:5555 7. 连接成功之后,执行相应的monkey操作。
如何杀掉monkey进程
adb shell ps | find "monkey" adb shell kill 进程号
monkey的日志在我们cmd中显示,没有在我们文档中显示怎么办
可以选择标准流 和 异常流在不同的文件中adb shell monkey -p com.hcedu.hcdeom --pct-touch 80 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error -v-v-v 500 1>d:\test\log.log 2>d:\test\err.log
以上的命令,可以在cmd中输入后回车进行执行,也可以把命令放在一个.bat文件里,然后双击。(mac的话是放在.sh文件里)
Monkey日志分析
1. 在log 日志当中关注测试的包、测试的种子(seed--回归测试),以及对应的时间。
// Short Msg: java.lang.IndexOutOfBoundsException
2. 重点需要的关注的是err的日志。
做法:
1. 通过对应的关键字进行定位-错误信息(log日志) -- 发现bug、定位bug
通过Exception 、CRASH、包名等进行定位
下标超过对应的长度限制
// Short Msg: java.lang.NullPointerException
空指针异常 2. 把对应的日志发给开发或者通过缺陷管理系统进行提交问题 -- 修改bug
3. 去进行回归测试。 -- 回归bug -通过种子去进行回归:seed
问题: 你测试一晚上,却发现没有问题。
-- 可能压根测试没有测试完
进行确认,本次测试是否完成 ?
6:30 -- 执行命令 -- 7:00 (停止)-- 第二天早上
体现:
1. 一定进行稳定性测试要保持手机是常亮的状态 (长时间操作)
2. 保证手机是有电的状态 。(充电)
3. 测试完成之后,你可以去看手机的后台运行程序打开的状态;如果没有对应的应用证明重启过
4. 看手机对应的开机时间 :设置-关于手机-状态信息- 已开机的时间。
遇到的问题
输入adb devices命令后报adb server version (36) doesn't match this client (41); killing...
是因为adb版本不一致导致的。
解决办法:把sdk里的adb.exe复制出来,重命名为nox_adb.exe,替换\Nox\bin下的nox_adb.exe文件后重启模拟器即可