APP 测试: 什么是app测试? 移动端互联网测试: app测试 H5页面 ---M网站 --就是H5开发的,所以叫H5页面 小程序 微信公众号 什么是手机? Android: 硬件:CPU、内存。。。。 系统:Android --->linux 应用软件: java 开发 IOS: 硬件:CPU、内存。。。。 系统: IOS ---> unix 应用软件: OC、swift 鸿蒙: 概念: app开发: 原生开发: android: 纯java语言开发的app --没网络的时候也可以使用的 IOS: oc/swift 混合开发: Android : 有h5页面的app --- H5+java开发 IOS: 有h5页面的app ----- OC、swift + H5开发 app测试: 分析需求---写测试用例---执行 需要考虑一些专项的场景: 兼容: 系统兼容:Android 和IOS 手机的兼容--硬件设备的兼容:不同的手机厂商,不同手机型号 弱网测试: 网络不好的情况 交互性测试: 手机上的一些特有功能 app的接口怎么看: fiddler抓包 需要做哪些准备: 测试环境准备:前后端代码都部署 app包: android: apk文件 --怎么来的? 找开发要、直接在测试平台上下载测试包 不同的包怎么区分? 通过版本号区分 版本号的含义:微信8.0.19 --->8 代表已经发布过8个大版本 --0中版本---19小版本 版本发布的频率: 大版本: ---对于系统的整个流程有影响,或者有非常大的变更---花费时间非常长 --发布很少 中版本:对于某个部分的主要功能有影响,花费较长的时间 ---较少发布 小版本:可能修改问题,也可能是某些优化,或者某些小功能 ---花费时间较短--发布频繁 IOS: ipa文件 ---从哪里来? 找开发或者内部平台上下载 -----需要安装证书后的app才行 --证书从哪里来?---IOS开发者平台上下载 测试机:真机 --->各个厂商的主流手机 --用户量最大的一些型号 M网站测试:H5页面 怎么测? 从需求分析开始--------执行 测试准备: 环境:测试环境前后端代码部署 URL地址:找开发要测试环境的H5页面地址 测试机:真机 为什么有H5页面: H5页面兼容非常好:跨平台兼容 --URL地址 不同的app 之间也可以直接使用 开发成本低: 普通的web前端人员就可以开发 只需要开发一次 维护成本低: 出现问题后-版本发布比较快--可以热修复---修复后快速生效 可以后台控制---可以随时下线 更新修改对于用户无感知 小程序测试: 测试流程没有区别 准备: 环境准备:前后端代码部署 测试环境小程序:两种方式测试 1.直接在微信上测试 怎么区分生产和测试环境: 测试的小程序包也发布一下,但是做一个权限控制: 可以根据账号,也可以根据网络环境 开发将你的微信号授权:扫码 --测试环境的小程序二维码--进入测试环境小程序去测试 2.用小程序开发者工具测试 类似一个模拟器:开发给代码包后,直接在上面点点点 微信公众号的测试: 测试环境部署后直接在微信上测试 关注测试的公众号: 后台去设置可以使用的功能-然后测试 后台发布文章然后去测试公众号上查看 app专项测试: 兼容性测试: 设备的兼容: 手机: Android: 不同的厂商: 小米、华为、oppo、vivo、三星、诺基亚、努比亚、传音 不同手机型号、不同的分辨率 IOS:不同的手机型号 测得什么? 功能能否正常使用,界面显示是否正常 需要尽量覆盖全所有的手机型号? 使用云测平台测试:testin 版本的兼容: 系统版本: Android :10、11、12 ---高版本中版本低版本 IOS:10、12、14 ---高版本中版本低版本 功能能否正常使用,界面显示是否正常 app版本: 版本更新: 强制更新:不更新不能用 非强制更新:不更新也能正常使用 需要新版本兼容老版本:新版本会有新的功能,但是不能影响不更新的用户的正常使用 怎么测? 在发布新版本后分别安装最新版本的app去使用--执行相关的测试用例 在发布新版本后 继续安装使用老版本的app去使用 ---执行相关的测试用例 交互性测试: 和设备固有功能的交互 主动交互: 定位 存储 电话 短信 相机 重力感应 手电筒 蓝牙 麦克风 wifi 指纹 被动交互: 电话 切换后台 短信 网络切换 手机没电 锁屏 存储空间不足 音量键 充电 插耳机 和其他app的交互: 主动交互: 登录授权 分享 支付 推广广告 被动交互: 微信电话 qq电话 钉钉电话 闹钟 手机电量提醒 导航的提示 弱网测试: 手机是移动设备--可能会到一些信号不好的地方去 网络不好的情况下对app的影响: 游戏 视频:自动切换清晰度,自动缓存机制 直播:提示切换线路,切换清晰度,画面延迟 聊天:重试机制---不能同一条信息重复发送 购物---支付:重复支付 弱网怎么做? 使用工具:fiddler 1. 规则--性能设置--模拟慢速网络 --可以简单模拟弱网环境 2. 精确模拟 具体的234G网络 规则 ---自定义规则--查找到 m_SimulateModem --将对应的速率修改 (需要换算成发送1kb的数据需要花的时间) 现场测试(外景测试):把设备拿到对应的场景下去点点点 adb命令使用: 1. 配置环境 下载sdk 配置环境变量: 1.新增:ANDROID_HOME 值为sdk安装路径,我的是:D:\sdk 2.path路径中新增如下环境变量: %ANDROID_HOME%\tools %ANDROID_HOME%\tools\bin %ANDROID_HOME%\platform-tools 2.使用: 确定和手机设备的连接状态: adb devices 连接设备命令:adb connect 127.0.0.1:7555 查看设备运行日志:adb logcat adb logcat >你需要存放日志文件的地址和文件名(D:\test\009\app测试\test.log) 安装app: adb install apk包的路径 adb install -r apk包的路径 #-r参数为覆盖安装 卸载app:adb uninstall 包名 查看设备上已经安装的应用包名 :adb shell pm list package 精确查找包名:adb shell dumpsys activity | find "mFocusedActivity" #结果的u0后面和/之间的内容即为包名 #需要先将app打开 然后再运行这条命令 切换到shell模式:adb shell 退出shell模式 --ctrl + c 文件上传: adb push 需要上传的本地文件目录 需要存放在手机上的路径 文件下载: adb pull 需要下载的文件在手机上的路径 需要保存的本地地址 当有多个设备时需要指定设备: 在adb 后面加一个 -s 参数然后跟 设备名称 例:当有多个设备时安装 app :、 adb -s 127.0.0.1:7555 install D:\软件包\apk\fanwe_P2P.apk #127.0.0.1:7555 --设备名称 杀死adb 服务: adb kill-server 启动adb服务: adb start-server adb 连接真机: 1.打开手机的开发者选项 --设置--关于手机--手机的版本信息--连续点击手机的版本号 然后会打开手机的开发者选项 将开发者选项开启然后 开发者选项中的内容里有个 usb调试 --开启 2.必须要用数据线 连接电脑和真机 连接电脑的时候会有一个提示信息--是否允许电脑控制设备 --勾选一律允许并且点击允许 3. 使用adb命令连接手机 adb connect 手机的IP地址 稳定性测试: monkey工具: 命令: adb shell monkey -p 包名 -v-v-v 5000 #monkey --指定需要执行的命令,-p 指定需要执行的app的包名,-v-v-v 日志级别:三个v最高一般就使用3个v,5000 事件数 #monkey的参数位置是不固定的,参数位置顺序不影响命令的执行 不同的app 事件的主次不一样(不同的事件的频率不同) 需要根据app来设置事件比例: 0:触摸事件百分比,即参数--pct-touch 1:滑动事件百分比,即参数--pct-motion 2:缩放事件百分比,即参数--pct-pinchzoom 3:轨迹球事件百分比,即参数--pct-trackball 4:屏幕旋转事件百分比,--pct-rotation 5:基本导航事件百分比,即参数--pct-nav 6:主要导航事件百分比,即参数--pct-majornav 7:系统事件百分比,即参数--pct-syskeys 8:Activity启动事件百分比,即参数--pct-appswitch 9:键盘翻转事件百分比,即参数--pct-flip 10:其他事件百分比,即参数--pct-anyevent #设置的总的事件比例需要为100% : 小于100:会自动补充到其他实际上去 大于100:会报错,不会运行,日志中直接报错 #设置事件时间间隔: --throttle 300 #300 为间隔时间 --单位是毫秒 #monkey忽略机制 --ignore-crashes 忽略崩溃 --ignore-timeouts 忽略超时 --ignore-security-exceptions 忽略安全信息 --ignore-native-crashes 忽略本地代码导致的崩溃 --monitor-native-crashes 忽略监视系统中本地代码发生的崩溃 #复现操作步骤: monkey是伪随机事件: 可以使用种子数复现 1. 直接在每次运行的时候设置一个种子数 随便设置一串数字 --下一次运行的时候 就使用和上次一模一样的命令 2. 如果第一次运行的时候没有主动设置种子数 ---查看日志获取第一行的种子数,然后使用上一次同样的命令 但是需要加上上一次运行的种子数再次运行也可以复现 添加种子数: adb shell monkey -p 包名 -v-v-v -s 123456 5000 #-s 种子数参数 123456 --种子数的值 性能测试: fiddler抓手机的包: 前提条件:手机和电脑需要在同一个wifi下 1.设置fiddler-工具--选项--HTTPS(勾选前三项) ---connections --设置端口号为8888--勾选后三项 2. 重启fiddler ---需要重启后以上设置才生效 3. 手机设置---点击WLAN--长按你当前连接的wifi--点击高级选项---代理点开-选择手动--代理服务器主机名:输入你电脑的ip地址 ---代理服务器端口:输入你在fiddler上设置的口号--8888 4. 下载证书: 打开手机的浏览器---地址栏输入 你在上一步设置的ip地址:端口号(192.168.153.1:8888)---点击蓝色的Fiddlerroot certificate 下载证书 5.安装证书: 设置--安全--从SD卡安装证书---选择下载的证书文件-然后安装(证书的名字随便写不要用中文)--可能需要设置pin码(你的锁屏密码-需要自己记住) 如果设置了pin码的需要重新选择证书安装一下 fiddler 篡改接口数据: 1. 选中 你需要篡改数据的接口---右键--保存--响应--响应数据(保存在一个你自己能找到的地方) 2. 自动转发 --将第一行的可以勾选的框框全部勾选--点击加入规则--- ---会有两个输入框:第一个个输入框输入你需要篡改数据的url地址(这个地址不需要参数) ---第二个数据框--点击下拉的最后一个 find a file --然后选择步骤1保存的响应数据 3. 点击第一个输入框后面的保存 4.打开 步骤1保存的响应数据文件,然后修改需要篡改的数据,然后保存 5. 刷新软件页面 查看数据是否篡改成功