如何使用Xamarin UI Test测试安卓已安装应用(无需重装/安装APK)
使用Xamarin UI Test测试已安装的安卓应用
嘿,我来帮你搞定这个问题!既然你的安卓应用已经装在设备上了,不用折腾重新安装APK,那用Xamarin UI Test测试其实很简单,跟着下面的步骤一步步来就行:
1. 先把测试项目的基础配置弄好
- 首先,确保你的Xamarin UI Test项目里已经装了
Xamarin.UITest这个NuGet包,选稳定版本就好,别用太新的预览版避免踩坑。 - 要是你还没创建测试项目,直接在Visual Studio里新建个「Xamarin UI Test App」项目,或者给现有解决方案添个测试项目都可以。
2. 拿到你已安装应用的包名
这步是核心,Xamarin UI Test得靠包名找到并启动你设备上的应用。获取包名有几个简单方法:
- 用adb命令查:把安卓设备开了USB调试连到电脑,打开命令行敲
adb shell pm list packages,输出里找你应用对应的那行,比如com.yourcompany.yourapp就是包名。 - 从源码里找:要是你有应用的Android源码,打开
AndroidManifest.xml,里面的package属性值就是包名。 - 在设备上看:进安卓设备的「设置」→「应用」→找到你的应用→「应用信息」,里面一般会显示「包名」或者「应用ID」。
3. 修改测试代码,指定启动已安装的应用
默认的Xamarin UI Test代码是从APK安装启动的,我们得改成直接调用已安装的应用。给你个示例代码参考:
using Xamarin.UITest; using NUnit.Framework; namespace YourUITestProject { [TestFixture(Platform.Android)] public class AppTests { IApp app; Platform platform; public AppTests(Platform platform) { this.platform = platform; } [SetUp] public void SetupBeforeEachTest() { // 把这里替换成你刚才拿到的应用包名 string targetAppPackage = "com.yourcompany.yourapp"; // 要是知道应用的主Activity类名就填上,不知道的话可以留空,框架会自动找 string mainActivity = "com.yourcompany.yourapp.MainActivity"; app = ConfigureApp .Android // 关键:告诉测试框架用已安装的应用,传入包名 .InstalledApp(targetAppPackage) // 可选:指定启动的主Activity,找不到的时候加上这个很有用 .StartActivity(mainActivity) .StartApp(); } [Test] public void VerifyAppLaunchesSuccessfully() { // 这里写你的测试逻辑,比如截图验证,或者检查某个控件是否存在 app.Screenshot("已成功启动目标应用"); // 示例:检查首页的标题是否存在 app.WaitForElement(c => c.Marked("home_title")); } } }
4. 连接设备跑测试
- 确保你的安卓设备开了USB调试,用
adb devices命令确认电脑能识别到设备。 - 在Visual Studio里打开Test Explorer,找到你的测试方法,点击运行就行;或者右键测试项目选「运行测试」也可以。
一些小提示
- 要是启动应用时碰到权限问题,检查下设备有没有允许「USB调试」、「通过USB安装应用」这些权限,测试过程中别手动关掉应用。
- 要是应用有启动页、登录页这些前置步骤,记得在测试的SetUp或者测试方法里加上对应的操作,比如等待启动页消失、输入账号密码等。
- 要是框架找不到主Activity,打开应用后在命令行敲
adb shell dumpsys window | grep mCurrentFocus,输出里就能看到当前的Activity名称,填到StartActivity里就行。
内容的提问来源于stack exchange,提问作者小械褉谐械泄
相关产品推荐
相关产品推荐

