如何在 Xamarin.Forms.UITesting 中触发/调试后门功能?
Posted
技术标签:
【中文标题】如何在 Xamarin.Forms.UITesting 中触发/调试后门功能?【英文标题】:How to trigger / debug backdoor functionality in Xamarin.Forms.UITesting? 【发布时间】:2019-09-19 11:02:26 【问题描述】:我正在尝试将 BackdoorMethod 添加到 Xamarin.Forms 应用程序以绕过登录(IDP - 在 chrome 浏览器中打开)步骤。我感觉该方法没有被触发,但不确定,我不知道如何确定它。
我在这里阅读了文档:https://docs.microsoft.com/en-us/appcenter/test-cloud/uitest/working-with-backdoors
查看这个帖子:https://forums.xamarin.com/discussion/85821/xamarin-uitest-backdoor-on-droid-with-splash-screen-how-do-i-access-my-mainactivity
检查了这个例子:https://github.com/brminnick/UITestSampleApp/tree/master/Src
在 MainActivity.cs 文件中,我定义了 BackdoorMethod:
[Preserve, Export(nameof(BypassLoginScreen))]
public string BypassLoginScreen()
// some additional code here. the code is working, when I called it
// directly from OnCreate it was executed without any error
return "called";
我试图从测试用例中调用它:
public constructorMethod(Platform platform)
this.platform = platform;
app = AppInitializer.StartApp(platform);
var result = app.Invoke("BypassLoginScreen"); // result == "<VOID>"
我没有收到任何错误消息,该方法根本没有被调用,或者没有返回任何内容。 (或者我不知道那里发生了什么,因为断点在应用程序从设备启动时也不起作用)
【问题讨论】:
【参考方案1】:这应该已经可以工作了。我有类似的代码,它对我有用。 你可以在你的函数中添加
android.Util.Log.WriteLine(Android.Util.LogPriority.Info, "BypassLoginScreen", $"Some text as info");
并在Device Logs中观察结果,通过BypassLoginScreen过滤,看看是否有任何使用标签BypassLoginScreen创建的日志
【讨论】:
以上是关于如何在 Xamarin.Forms.UITesting 中触发/调试后门功能?的主要内容,如果未能解决你的问题,请参考以下文章
如何在异步任务中调用意图?或者如何在 onPostExecute 中开始新的活动?