八、移动测试
- java和Android环境的安装和配置
- Android模拟器的配置
- adb命令概念及原理
- 常用的adb命令
- Appnium的介绍及安装配置
- Appnium中常见的测试操作
- Appnium+nuittest框架应用
(一)移动测试概念
1)定义
测试手机程序
2)测试的方面
- 功能测试:查看功能是否正常
- 安装卸载测试
- 升级测试
- 兼容性测试
- Android系统版本
- 厂商二次开发版本
- 不同分辨率
- 不同网络
- 网络切换、中断测试
- 使用中来电话、短信
- 横竖屏切换
- 健壮性:耗电性、流量消耗、崩溃回复
(二)环境搭建
1.java jdk
- 安装
- 配置环境变量
新建JAVA_HOME: C:\Java\jdk
新建CLASS_PATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
PATH: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
2.Android SDK
- 解压(路径不含中文及特殊字符和空格目录下)
- 配置环境变量
新建ANDROID_HOME,并将第一步放置的sdk路径配置到该环境变量中
在PATH里面添加: %ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools
系统变量>>双击Path>>编辑环境变量
配置path:%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
验证是否配置成功
1、cmd打开命令窗体,输入android命令
2、在cmd界面输入adb
版权声明:本文为CSDN博主「yopky」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
配置好后,可以在命令行里面运行adb,可以出现命令提示即可。
3.虚拟机安装
使用夜神模拟器
也可以使用真机
- 手机通过usb线连接到电脑
- 在手机上打开文件传输(通知栏,手机正在充电)
- 在电脑上会发现多了一个CD驱动器,里面时手机的驱动
- 安装驱动,电脑的设备管理器中就可以看到型号了
- 开启开发者模式:手机-设置-关于手机-版本号(多次点击)
- 打开usb调试:手机-设置-开发者选项-usb调试(打开)
MUMU模拟器:http://mumu.163.com
mumu模拟器12操作:https://mumu.163.com/help/20230214/35047_1073151.html
安装使用问题:
1、此应用无法在你的电脑上运行
在以下路径进入cmd
~:\Program Files\MuMu\emulator\nemu\vmonitor\bin
2、打开成功,但是adb devices 查询不到,且无法正常使用
List of devices attached
adb server version (32) doesn't match this client (40); killing...
adb F 02-16 23:02:07 7180 15148 main.cpp:45] cannot open D:\Program Files\Tmp\adb.log: Permission denied
could not read ok from ADB Server
* failed to start daemon
error: cannot connect to daemon
打开以下路径:
~:\Program Files\MuMu\emulator\nemu\vmonitor\bin
右键点击属性->兼容性,勾选管理员权限打开
如果不行,则将sdk安装目录下的adb替换adb_server.exe,并重命名为adb_server.exe。
(三)ADB
1)ADB概念及原理
关系:
会在电脑上创建处理一个服务(ADB服务),手机连上电脑后,都会与服务建立连接,要想发送指令给手机,需要把指令发送到服务中。
作用:
通过命令行去操作手机。
ADB命令原理:
ADB是Android Debug Bridge的简称,是android平台的调试工具。Android开发工程师必须掌握,测试工程师在作android测试工作时也会用到,需要掌握。
ADB包含三部分:
- Client端:Client本质上就是Shell,运行在开发机中,即开发电脑,用例发送ADB命令
- Server端,同样运行在开发机器中,用来管理Client端和手机端的Deamon之间的通信
- Deamon守护进程:运行在调试设备中,手机或模拟器,用来接收并执行ADB命令。
ADB工作过程:
- client端通过命令发送给server端
- server端会将命令发送给deamin端
- deamon端进行执行
- 将执行结果返回给server端
- server端将结果返回值给client端
2)常用ADB命令
命令:重要
- 连接adnroid手机或模拟器
在输入其他的ADB命令之前,应该先是应用ADB连接android手机或模拟器。
注:
真机连接时,需要先安装对应手机的手机驱动程序,打开开发者模式允许USB调试,安装完毕后可通过USB和wifi两种方式进行连接。虚拟机上打开开发者选项的操作:设置->关于平板电脑->版本号(快速点击3次以上),然后再去开发者选项打开USB调试。
MUMU模拟器使用介绍:http://mumu.163.com/help/20210531/35047_951108.html
链接adb需要在CMD运行框中将路径切换到
~:\Program Files\MuMu\emulator\nemu\vmonitor\bin
注:~代表模拟器所在安装路径的文件夹
问题诊断可以查看ADB调试 端口,即是7555位置的端口
之后输入以下代码:
adb_server.exe connect 127.0.0.1:7555
adb connect 127.0.0.1:16384
adb devices #列出当前已连接的所有设备,证明连接成功
adb_server shell
exit
预处理bat:
-
服务(如果发现代码连不上手机了)
adb kill-server #关闭服务器
adb start-server #打开服务器
-
查看设备
adb devices #列出当前已连接的所有设备。
adb connect IP地址:端口 #连接
mumu: adb_server.exe connect 127.0.0.1:7555
mumu模拟器端口时7555
夜神模拟器端口:6201
本机IP:127.0.0.1
-
进入手机终端
adb shell
问题:
adb端口为5037,如果发现adb无法启动,可以通过下面命令查询占用端口的进程
netstat -ano | findstr 5037
taskkill -f -pid pid号 #杀掉对应的进程,释放端口
-
获取信息
绿色是当前运行的程序activity,红色是当前程序运行的activity所在的包。
获取手机android版本:
adb shell getprop ro.build.version.release
获取手机当前运行的程序和界面的名称:
adb shell dumpsys window windows | findstr mFocusedApp
包名:package name。用于唯一标识一个app的应用。(不是应用的名字,应用名字可以相同,单包名一定不同,也不是apk名字)
activity名:在android中每个界面叫一个activity,获取activity名其实就是获取界面名字。
应用场景:自动化测试需要通过代码的形式告诉手机测试点是哪个应用的哪个界面,可以通过这个命令获取。
- 查询apk包名和启动activity的名称
有apk包的情况下,使用aapt工具查看(在android sdk路径下的build-tools文件夹下)
aapt dump badging apk文件路径 | findstr package
aapt dump badging apk文件路径 | findstr launch #启动activity后查询
eg
aapt dump badging D:\Study\计算器.apk | findstr package
没有apk包的情况下,直接运行adb命令查看。
adb shell dumpsys activity | findstr Run
(注意大小写)
可将其路径配置到环境变量的path中,可在任何目录下直接打开使用。
- 文件传输
adb push 电脑上的文件路径名 手机上的位置
adb pull 手机上的文件路径 电脑上的位置
导出文件时注意一点,由于权限问题不呢个导出到电脑根目录(比如d盘,会报错),之呢个导出到某个具体文件夹内(文件夹需要事先存在)。
由于我就在文件目录下进入cmd,可不输入txt的本地目录
- 软件安装卸载
adb install 电脑上的apk文件路径