我想尝试firebase设备测试 - 但我得到一个非常通用的错误消息:
Failed to create a test matrix.
Run Code Online (Sandbox Code Playgroud)
谁知道怎么解决这个问题?配额不应该是问题 - 我按下的按钮说"开始2测试"我已经删除了一些设备,以防它是配额.不幸的是谷歌搜索错误并没有真正导致结果..
我最近升级到Firebase的'Blaze'计划.我正在尝试使用Firebase测试实验室测试发布APK,但每次上传APK时,我都会得到这个.
该文件无法上传到Google云端存储(GCS).此问题可能是由不正确的GCS权限引起的.
如何解决这个问题呢?我是否需要更改项目中的某些设置?
PS - 我知道这不是一个编程相关的问题.我不得不求助于SO,因为即使将此问题提交给Firebase支持,我也没有解决方案.
每次将新版本上传到 google Play 商店时,我都会在大约 10 分钟内获得大约 8 个新用户登录我的 Firebase 分析控制台。我还没有公开发布我的应用程序,它处于封闭测试轨道,没有其他人选择加入。唯一可能的原因似乎是谷歌的内部测试,例如发布前报告。这些数字真的会弄乱我的分析数据,所以我想从 Firebase 分析中排除这个测试流量。
在遵循这些先前问题中的建议之后,不幸的是,没有提到的解决方案成功地排除了测试活动
在我的 AndroidManifest.xml 中应用程序标记的第一行之后,我有:
<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" />
Run Code Online (Sandbox Code Playgroud)
在我的 MainActicity 的 onCreate() 开始时,我有:
if(!isTestDevice(this))
{
FirebaseAnalytics.getInstance(this).setAnalyticsCollectionEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
我有以下功能:
public static boolean isTestDevice(Context context) {
String testLabSetting = Settings.System.getString(context.getContentResolver(), "firebase.test.lab");
return "true".equals(testLabSetting);
}
Run Code Online (Sandbox Code Playgroud)
一开始我以为isTestDevice函数可能工作不正常,于是在我的主屏幕上添加了以下调试代码:
if(isTestDevice(linearLayout.getContext())) {
TextView testText = new TextView(linearLayout.getContext());
testText.setText("TEST DEVICE");
testText.setId(linearLayout.generateViewId());
linearLayout.addView(testText, 0, params);
TextView disabledText = new TextView(linearLayout.getContext());
disabledText.setText("Analytics disabled");
disabledText.setId(linearLayout.generateViewId()); …Run Code Online (Sandbox Code Playgroud) 我只看到Firebase测试实验室中有大约16个设备,而Google I/OI给人的印象是会有更多.在一个会话Q/A中特别提出了一个问题.是否有比设备选择屏幕上列出的设备更多的设备,如果有,它们如何被访问?
目前我们正在使用AWS,它拥有数百种受支持的设备,包括在不同网络上运行的设备,我期待在这个大概中更多的东西.
我最近发现了一个问题,我的应用在Firebase中的设置.我们已配置启动前报告,这意味着测试实验室设备正在为我们的分析贡献大量匿名会话.
有没有办法检测设备是否正在运行这些测试?例如,对于测试实验室中的测试,isUserAMonkey或isRunningInTestHarness会返回true吗?如果是这样,这将允许我调整我的分析/等的配置.
我试图在firebase TestLab上为我的react本地应用程序运行robo测试,但无法获得robo test pass登录。
第一个问题是它没有输入电子邮件和密码。
在我的js文件中,我有:
<Input ... testID="usernameInput" />
<Input ... testID="passwordInput" />
Run Code Online (Sandbox Code Playgroud)
我把它放在我的firebase控制台中
但是,它根本不起作用。我检查了录像,没有输入。
第二个问题是,即使我在调试apk中对用户名和密码进行了硬编码,它甚至都不会单击定义为的登录按钮:
<Button onClick={() => {this.handleLogin()}}>Login</Button>
Run Code Online (Sandbox Code Playgroud)
我不知道这里发生了什么。是否有人使用过React Native应用程序进行过Firebase TestLab机器人测试?
firebase react-native react-native-android firebase-test-lab
我试图使用Firebase TestLab,但似乎只能针对资源ID。我有这样的元素:
<Input {...props} testID="usernameIput" />
Run Code Online (Sandbox Code Playgroud)
但是似乎testID没有映射到资源ID。如果这不是做到这一点的方法,那么我如何才能在react-native中访问resource-id?如果我不能在android studio中添加resource-id的方法是什么?
是否可以使用 Firebase TestLab 测试 React Native(Expo 托管)应用程序?
我还没有成功。几种可能的路线,到目前为止还没有成功:
1) 是否可以强制 Robo 测试在指定的时间内继续运行?目前,默认的 Robo 测试仅运行很短的时间(<~1 分钟),然后“成功”终止。如果我能让测试持续更长时间,我就可以在应用程序内部运行所有需要的测试。游戏循环方法似乎不适用于 React Native 应用程序。
2) 是否可以创建一个通过 testID 选择 UI 元素的 Robo 脚本?在 React Native 中,对原生渲染元素的控制是最小的。但是,可以在元素上指定 testID。
3)是否可以使用Android Studio在React Native(Expo)应用程序上生成Robo脚本?当我尝试过时,我可以使用 Android Studio->Firebase->Record Robo Script 让应用程序运行,但是当我在设备上执行操作时,它们没有记录在脚本中(实际上,什么都没有,所以没有脚本)生成的,只是空 JSON)。
谢谢
我正在研究 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) 我已经为自定义视图编写了 AndroidUnitTest。它们在本地运行良好,但在 FTL 上崩溃
Test failed to run to completion. Reason: 'Instrumentation run failed due to 'Process crashed.''. Check device logcat for details
Run Code Online (Sandbox Code Playgroud)
在 Firebase 控制台的“测试问题”选项卡下,它显示了这一点。
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'generic/gce_x86_phone/gce_x86:9/PGR1.190916.001/5877764:userdebug/test-keys'
Revision: '0'
ABI: 'x86'
pid: 7369, tid: 7436, name: tiDexTestRunner >>> com.domain.debug <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'field.cc:78] Check failed: art_field != nullptr '
eax 00000000 ebx 00001cc9 …Run Code Online (Sandbox Code Playgroud)