Android自动化测试框架:UiAutomator和UiAutomator2的区别与示例代码
UiAutomator和UiAutomator2是两种常用的Android自动化测试框架,它们都是由Google开发的。然而,它们之间存在一些关键的区别:
-
API级别:UiAutomator框架在Android 4.3(API级别18)中引入,而UiAutomator2在Android 5.0(API级别21)中引入。
-
测试能力:UiAutomator只能测试Android系统应用和第三方应用,不能测试Web应用。而UiAutomator2不仅可以测试Android系统应用和第三方应用,还可以测试Web应用。
-
稳定性:UiAutomator2比UiAutomator更稳定,因为它使用了更新的Google Instrumentation测试框架。
-
支持的操作:UiAutomator2支持更多的用户操作,如多点触控、滑动等。
-
维护:UiAutomator已经不再维护,而UiAutomator2仍在持续更新和维护中。
示例:
- UiAutomator: UiAutomator是Android 4.3(API level 18)及以上版本的设备和模拟器提供的一种UI测试框架。它可以创建自动化测试,模拟用户与设备的交互操作,如点击、滑动、输入文本等。UiAutomator可以跨应用程序进行操作,包括系统和第三方应用程序。
示例代码:
import com.android.uiautomator.core.UiDevice; import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class ExampleTest extends UiAutomatorTestCase { public void testDemo() throws Exception { UiDevice device = getUiDevice(); // 按Home键 device.pressHome(); // ... } }
- UiAutomator2: UiAutomator2是UiAutomator的升级版,它在原有的基础上增加了一些新的功能和改进。例如,UiAutomator2支持多窗口UI测试,可以更好地处理Android N及以上版本的新UI特性。此外,UiAutomator2还改进了测试的稳定性和可靠性。
示例代码:
import androidx.test.uiautomator.UiDevice; import androidx.test.uiautomator.By; import androidx.test.uiautomator.Until; import org.junit.Test; import static org.junit.Assert.assertTrue; public class ExampleTest { private UiDevice device; @Test public void testDemo() throws Exception { device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()); // 按Home键 device.pressHome(); // 等待应用程序启动 assertTrue(device.wait(Until.hasObject(By.desc("Apps")), 5000)); // ... } }
博客地址:http://www.cnblogs.com/wem520/
博客版权:如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
博客版权:如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。