模拟器控制
简介
在测试中,测试人员通常会依赖测试设备进行自动化调试。为了方便测试,常选择使用模拟器。模拟器分为原生模拟器和第三方模拟器两类。
原生模拟器是指由 Android Studio 提供的内置模拟器,通过 Android Studio 工具轻松创建。这种模拟器具有官方支持,稳定性高,而且操作相对直观。
除了原生模拟器,还有第三方模拟器如网易 MUMU 模拟器、夜神模拟器等,它们提供了更多的功能和更灵活的配置选项。这些模拟器在性能、调试工具以及对不同设备的模拟上有各自的特点,以满足测试人员不同的需求。
原生模拟器的特点
相较于第三方模拟器,原生模拟器在模拟器控制上具有一定的优势,因为它是由 Android 官方提供的工具,在使用上得到了广泛的官方支持,并且可以提供相对可靠的性能,在模拟器的控制上所体现的优势具体表现在如下几个方面:
- 官方支持和更新:原生模拟器得到了 Android 官方支持,能够及时适应最新版本的 Android 系统版本。
- 稳定性和一致性:由于原生模拟器是官方提供的工具,因此它们经过了更严格的测试和优化,具有较高的稳定性和一致性,使得开发者和测试人员更容易在模拟环境中重现和调试问题。
- 系统集成:原生模拟器通常可以更好地与 Android Studio 等开发工具集成,提供更直观和便捷的控制界面。
模拟器控制
在使用 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 拖入模拟器即可安装成功。
但是也会存在高版本模拟器通常存在应用无法安装的问题。为了解决此问题,可以通过一些应用市场软件进行安装。
总结
- 控制原生模拟器