模拟器控制
模拟器控制
简介
在测试中,测试人员通常会依赖测试设备进行自动化调试。为了方便测试,常选择使用模拟器。模拟器分为原生模拟器和第三方模拟器两类。
原生模拟器是指由 Android Studio 提供的内置模拟器,通过 Android Studio 工具轻松创建。这种模拟器具有官方支持,稳定性高,而且操作相对直观。
除了原生模拟器,还有第三方模拟器如网易 MUMU 模拟器、夜神模拟器等,它们提供了更多的功能和更灵活的配置选项。这些模拟器在性能、调试工具以及对不同设备的模拟上有各自的特点,以满足测试人员不同的需求。
原生模拟器的特点
相较于第三方模拟器,原生模拟器在模拟器控制上具有一定的优势,因为它是由 Android 官方提供的工具,在使用上得到了广泛的官方支持,并且可以提供相对可靠的性能,在模拟器的控制上所体现的优势具体表现在如下几个方面:
- 官方支持和更新:原生模拟器得到了 Android 官方支持,能够及时适应最新版本的 Android 系统版本。
- 稳定性和一致性:由于原生模拟器是官方提供的工具,因此它们经过了更严格的测试和优化,具有较高的稳定性和一致性,使得开发者和测试人员更容易在模拟环境中重现和调试问题。
- 系统集成:原生模拟器通常可以更好地与 Android Studio 等开发工具集成,提供更直观和便捷的控制界面。
原生模拟器
下载安装
官网地址:https://developer.android.google.cn/studio?hl=zh-cn
进入官网后,下滑后找到 Android Studio 下载
的内容。选择对应系统版本进行下载安装程序。下载后直接安装即可。
模拟器配置
Android 虚拟设备(AVD)是一种配置,它可以定义 Android 模拟器例如:Android 手机、平板电脑、Wear OS、Android 电视或车载设备的特征。AVD 管理器是一个可以从 Android Studio 启动的界面,它可以创建和管理 AVD。 要打开 AVD 管理器,要执行如下操作:
- 打开 Android Studio
- 选择 More Actions > Virtual Device Manager
一个完整的 AVD 包含硬件配置文件、系统映像、存储区域、外观和其他属性。在创建模拟器的时候要先下载对应的镜像文件,才可以创建成功。
打开设备管理界面后,如图点击 create device
进入创建模拟器的界面,配置以下内容,完成模拟器的创建:
- 选择硬件配置:在 Select Hardware 窗口中,选择要模拟的设备类型,例如 Phone -> Pixel 3。
- 选择系统镜像:在 System Image 页面,选择要安装的 Android 系统版本,点击 next。
- 配置虚拟设备:在 AVD Configuration 窗口中,配置虚拟设备的参数,一般默认即可。
启动模拟器
启动模拟器有两种方式:
- 通过 AndroidStudio:打开 Android Studio 选择 More Actions > Virtual Device Manager,点击已创建好设备后的运行按钮。
- 命令行:使用 emulator 命令
emulator -list-avds
:列出已有设备的名称。emulator -avd <虚拟设备名称>
:启动模拟器。
第三方模拟器 - mumu
安装
mumu模拟器官网 然后正常安装即可,作为第三方模拟器,并不需要配置太多信息
mumu 模拟器连接 adb
adb.exe connect 127.0.0.1:16384
(mumu12版本的接口)- 以
mumu6
为例,查看ADB
端口信息:D:\mumu-root\emulator\nemu\vms\nemu-6.0-x64-default找到其中的.nemu后缀文件,在里面搜索adb就能看到adb调试端口
模拟器控制
在使用 appium 进行自动化测试时,可以使用 Capability 中的参数 avd
,运行时会自动启动 emulator
模拟器,参数的值为模拟器的名称。
注意:仅限原生模拟器,该配置不支持第三方模拟器。
Python 示例:
class TestSearch:
def setup_class(self):
caps = {}
caps['platformName'] = 'Android'
caps['platformVersion'] = '6.0'
caps['deviceName'] = 'emulator-5554'
caps['appPackage'] = 'com.xueqiu.android'
caps['appActivity'] = 'com.xueqiu.android.common.MainActivity'
caps['avd'] = 'Pixel_23_6'
self.driver = webdriver.Remote("http://127.0.0.1:4723", caps)
self.driver.implicitly_wait(5)
def teardown_class(self):
self.driver.quit()
def test_mobile(self):
pass
Java 示例:
public class TestSearch {
private static AndroidDriver driver;
@BeforeAll
public static void setUp() throws MalformedURLException {
// 初始化capability
DesiredCapabilities caps = new DesiredCapabilities();
// 设置 app 安装的平台(Android、iOS)
caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
// 设置 appium 驱动
caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
// 设置设备名称
caps.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554");
// 设置 app 的包名
caps.setCapability("appPackage", "com.xueqiu.android");
// 设置 app 的启动页
caps.setCapability("appActivity", "com.xueqiu.android.common.MainActivity");
// 设置模拟器名称
caps.setCapability("avd", "Pixel_23_6");
URL remoteUrl = new URL("http://127.0.0.1:4723");
driver = new AndroidDriver(remoteUrl, caps);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(15));
}
@AfterAll
public static void tearDown() {
if (driver != null) {
driver.quit();
}
}
@Test
public vodi testMobile(){
// 具体的测试用例
}
}
模拟器安装 APK
大部分模拟器安装 APK 都非常简单,直接将 APK 拖入模拟器即可安装成功。
但是也会存在高版本模拟器通常存在应用无法安装的问题。为了解决此问题,可以通过一些应用市场软件进行安装。
总结
- 创建原生模拟器
- 控制原生模拟器
- 原生模拟器安装 apk
- mumu模拟器