有没有办法在启用了Android Test Orchestrator 的情况下从 Android Studio 在 Firebase 测试实验室中运行仪器测试?
在我的build.gradle 我有所有必需的陈述:
android {
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments clearPackageData: 'true'
}
testOptions {
execution 'ANDROID_TEST_ORCHESTRATOR'
}
}
dependencies {
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestUtil 'com.android.support.test:orchestrator:1.0.2'
}
Run Code Online (Sandbox Code Playgroud)
当我在自己的物理设备上运行测试时,Orchestrator 正在运行。
我能够在 Android Studio 中创建运行/调试配置以在 Firebase 测试实验室中运行测试,并且它们运行成功,但没有 Orchestrator。是否有一个选项可以在 Android Studio 中启用 Orchestrator,以便它也可以在 Firebase 运行中运行?
android android-testing firebase android-studio firebase-test-lab
我尝试通过命令行在 firebase 上运行 UI 测试时收到以下错误:
Test [matrix-1dy3j2omlw7n9] has been created in the Google Cloud.
Firebase Test Lab will execute your instrumentation test on 1 device(s).
Creating individual test executions...failed.
ERROR: (gcloud.firebase.test.android.run)
Matrix [matrix-1dy3j2omlw7n9] failed during validation: The test APK does not contain the test runner class specified by the user or the manifest file. The test runner class name may be incorrect, or the class may be mislocated in the app APK..Run Code Online (Sandbox Code Playgroud)
当我尝试使用 2 个 APK 在本地通过命令行运行测试时,我能够很好地运行测试。这是我在命令行中使用的从 firebase 获取错误消息的方法:
我正在研究 CircleCI,并且我正在尝试使用 Firebase 测试实验室为 Android 库执行仪器化测试(因为 CircleCI 不支持 Android 虚拟设备)。
我的 Instrumented 测试在 Android Studio 下工作起来就像一个魅力,但在 Firebase 测试实验室下执行时,它很挣扎!
事实上,主要问题是当我编译我的库时,输出中没有 APK 文件,而是一个 AAR 文件!
$ ./gradlew assembleDebug
$ ./gradlew assembleDebugAndroidTest
Run Code Online (Sandbox Code Playgroud)
那么您对使用 Firebase 测试实验室为 Android 库运行 Instrumented Test 有什么建议吗?
这里我的命令不起作用(由 fastlane 生成):
$ ./gradlew assembleDebug
$ ./gradlew assembleDebugAndroidTest
Run Code Online (Sandbox Code Playgroud)
$ gcloud firebase test android run \
--type instrumentation \
--app lib/build/outputs/apk/androidTest/debug/lib-debug-androidTest.apk \
--test lib/build/outputs/apk/androidTest/debug/lib-debug-androidTest.apk \
--device model=walleye,version=28,locale=en_US,orientation=portrait \
--timeout 30m
Run Code Online (Sandbox Code Playgroud) 我已经在我的应用程序上实现了google sign-in和通过 firebase 的匿名登录。
每当我向 Google Play 控制台提交新的 apk 时,Google 都会运行测试并生成预发布报告,该报告非常好、信息丰富且良好。
但问题是,我的 firebase auth 选项卡充满了很多垃圾匿名用户,以及许多不同的随机 google 帐户。
有没有办法删除这些帐户?或者指定在 google 登录流程中应使用哪个用户?
我有 Android Studio (AS) 3.4.1。尝试为我的 Flutter 项目的 UI 录制 Robo 脚本。遵循 Google Firebase 测试实验室的几乎所有内容。录音仅记录手机的物理按钮按下,而不记录屏幕上的任何点击。下面的例子。
我已经尝试过 Android 模拟器和物理设备。两者都有同样的问题。尝试从 AS 卸载并安装 Firebase 相关插件,包括中间重新启动。
任何帮助将不胜感激。
在将应用程序上传到 Google Play 之前,我使用 Firebase 测试实验室对其进行了测试。
从屏幕截图和视频来看,看起来就像真实的广告是从 admob 显示然后点击的。
现在我知道您可以设置测试设备来显示测试广告,但我找不到 firebase 测试设备的任何 id,或者我可以在代码中以某种方式识别这是一个机器人测试,以便我可以阻止真正的广告吗?
另外我想知道谷歌播放预发布报告测试是否也有同样的问题?
我试图在本地运行应用程序爬虫,以测试在 Android Studio 中创建的机器人脚本。
我遵循这篇方便的文章(https://android.jlelse.eu/test-robo-scripts-locally-useful-for-firebase-test-lab-pre-launch-reports-41da83d5769f)并遇到了爬虫程序的问题刚才说爬行开始,爬行立即完成。我在谷歌上找不到这个问题的任何答案。
这是日志中的错误:
权限拒绝:不允许从 pid=3778、uid=3778 启动检测 ComponentInfo{androidx.test.tools.crawler/androidx.test.tools.crawler.CrawlMonitor},因为包 androidx.test.tools.crawler 没有签名匹配目标 androidx.test.tools.crawler.stubapp
我终于找到了解决方案,所以我提出这个问题来帮助那些可能像我一样陷入困境的人。听起来有些人在这个问题上有同样的问题(/sf/answers/4104184451/)
我\xe2\x80\x99m 在使用 FirebaseUI 完成的应用程序中使用 Google 登录时遇到了奇怪的问题。我已在 Firebase 控制台中添加了 OAuth 所需的 3 个 SHA-1 密钥(调试、发布和应用签名密钥),更新了我的 google-services.json 文件,并确保我的 Google API 控制台中的所有内容都匹配。我可以在从 Play 商店下载的调试版本、发布版本和 Alpha 测试版本中使用 Google 登录。但是,当我在 Firebase 测试实验室中运行我的应用程序时,Google 登录失败并显示 \xe2\x80\x9ccode 10, message 10\xe2\x80\x9d 错误:
\nW/GoogleSignInHandler(10263): Developer error: this application is misconfigured. Check your SHA1 and package name in the Firebase console.\nE/AuthUI(10263): A sign-in error occurred.\nE/AuthUI(10263): com.firebase.ui.auth.FirebaseUiException: Code: 10, message: 10: \nE/AuthUI(10263): at com.firebase.ui.auth.data.remote.GoogleSignInHandler.onActivityResult(GoogleSignInHandler.java:110)\nE/AuthUI(10263): at com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity.onActivityResult(AuthMethodPickerActivity.java:335)\nat android.app.Activity.dispatchActivityResult(Activity.java:7266)\nE/AuthUI(10263): at android.app.ActivityThread.deliverResults(ActivityThread.java:4264)\nE/AuthUI(10263): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4312)\nE/AuthUI(10263): at android.app.ActivityThread.-wrap19(Unknown Source:0)\nE/AuthUI(10263): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1644)\nE/AuthUI(10263): at android.os.Handler.dispatchMessage(Handler.java:106)\nE/AuthUI(10263): at android.os.Looper.loop(Looper.java:164)\nE/AuthUI(10263): at …Run Code Online (Sandbox Code Playgroud) android firebase-authentication firebaseui firebase-test-lab google-play-console
我从 android studio 创建 roboscript 并将创建的 json 文件与最新的 apk 文件一起上传到 Robo Test 实验室以进行负面测试(使用错误的凭据)。但是 Firebase Robo 测试中的所有测试都失败了,当我检查视频时,Robo 测试只是随机单击,而不是按照指导进行。任何人都可以帮忙解决这个问题吗?太感谢了!
以下是使用的 roboscript:
[ { "eventType": "VIEW_CLICKED", "时间戳": 1604457186524, "replacementText": "跳过", "actionCode": -1, "delayTime": 0, "canScrollTo": false, "elementDescriptors": [ { " className": "androidx.appcompat.widget.AppCompatTextView", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 2, "resourceId": "com.kim.themobile.dev:id/tvSkipBtn" , "contentDescription": "", "text": "跳过" }, { "className": "android.widget.RelativeLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 0, "resourceId": "", "contentDescription": "", "text": "" }, { "className": "androidx.appcompat.widget.ContentFrameLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1 , "groupViewChildPosition": 1, "resourceId": …
我正在尝试在 上运行我的集成测试Firebase Test Lab。
flutter build apk -t lib/main_dev.dart
./gradlew app:assembleAndroidTest -Ptarget=lib/main_dev.dart
./gradlew app:assembleDebug -Ptarget=integration_test/login_test.dart
Run Code Online (Sandbox Code Playgroud)
该代码生成app-debug-androidTest.apk,app-debug.apk一旦我在Test Lab测试中上传它们,它们就会完美执行。
现在的问题是我在integration_test. 我不确定如何创建一个app-debug-androidTest.apk 包含 下所有测试用例的测试用例integration_test。
我确实尝试了以下操作:
flutter build apk -t lib/main_dev.dart
./gradlew app:assembleAndroidTest -Ptarget=lib/main_dev.dart
./gradlew app:assembleDebug -Ptarget=test_driver/integration_test.dart
Run Code Online (Sandbox Code Playgroud)
但是这个测试卡在黑屏上,这很奇怪,但这是正确的行为,因为在本地设备中运行集成测试时,我们还需要提供目标和驱动程序。
所以对于本地我有一个脚本
flutter drive \
--driver=test_driver/integration_test.dart \
--target=integration_test/login_test.dart
flutter drive \
--driver=test_driver/integration_test.dart \
--target=integration_test/register_test.dart
Run Code Online (Sandbox Code Playgroud)
它运行所有集成代码。
所以我的问题是如何上传所有测试用例。
或者我们是否必须为每个测试用例进行构建
./gradlew app:assembleDebug -Ptarget=integration_test/login_test.dart
Run Code Online (Sandbox Code Playgroud)
然后将其上传到测试实验室,然后再次上传
./gradlew app:assembleDebug -Ptarget=integration_test/register_test.dart
Run Code Online (Sandbox Code Playgroud)
并再次上传?