Firebase Robo 测试不遵循 Android Studio 中创建的 Robo 脚本

Muh*_*imi 5 android json firebase firebase-test-lab

我从 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": "android:id/content", "contentDescription": "", "text": "" } ] }, { "eventType": "VIEW_TEXT_CHANGED", "timestamp": 1604457315709 , "replacementText": "(我的电子邮件:正确的电子邮件)", "actionCode": -1, "delayTime": 0, "canScrollTo": true, "elementDescriptors": [ { "className": "androidx.appcompat.widget .AppCompatEditText”,“recyclerViewChildPosition”:-1,“adapterViewChildPosition”:-1,“groupViewChildPosition”:0,“resourceId”:“com.kim.themobile.dev:id/etEmail”,“contentDescription”:“”,“ text": "" }, { "className": "android.widget.LinearLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 3, "resourceId": "com.kim.themobile .dev:id/llEdittext", "contentDescription": "", "text": "" }, { "className": "android.widget.RelativeLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, “groupViewChildPosition”:1,“resourceId”:“”,“contentDescription”:“”,“text”:“”}]},{“eventType”:“VIEW_TEXT_CHANGED”,“时间戳”:1604457570870,“replacementText”:“ (我的密码-密码错误登录无效)", "actionCode": -1, "delayTime": 0, "canScrollTo": false, "elementDescriptors": [ { "className": "androidx.appcompat.widget.AppCompatEditText" , "recyclerViewChildPosition": -1,“adapterViewChildPosition”:-1,“groupViewChildPosition”:0,“resourceId”:“com.kim.themobile.dev:id/etPassword”,“contentDescription”:“”,“text”:“”},{“className” :“android.widget.RelativeLayout”,“recyclerViewChildPosition”:-1,“adapterViewChildPosition”:-1,“groupViewChildPosition”:3,“resourceId”:“com.kim.themobile.dev:id / rlPassword”,“contentDescription” : "", "text": "" }, { "className": "android.widget.LinearLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 3, "resourceId": " com.kim.themobile.dev:id/llEdittext", "contentDescription": "", "text": "" } ] }, { "eventType": "VIEW_CLICKED", "时间戳": 1604457800428, "replacementText": "登录", "actionCode": -1, "delayTime": 0, "canScrollTo": true, "elementDescriptors": [ { "className": "androidx.appcompat.widget.AppCompatButton", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 0, "resourceId": "com.kim.themobile.dev:id/btnSubmitLogin", "contentDescription": "", "text": "登录" }, { " className": "android.widget.RelativeLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 4, "resourceId": "com.kim.themobile.dev:id/rlbuttons", " contentDescription": "", "text": "" }, { "className": "android.widget.RelativeLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 1, "resourceId" : "", "contentDescription": "", "text": "" } ] }, { "eventType": "VIEW_CLICKED", "时间戳": 1604457812228, "replacementText": "", "actionCode": -1, "delayTime": 0, "canScrollTo": false, "elementDescriptors": [ { "className": "android.widget.ImageView", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 1, "resourceId": "com.kim.themobile.dev:id/ivRevealPw", "contentDescription": "显示密码", "text": "" }, { "className": "android.widget.RelativeLayout", "recyclerViewChildPosition “:-1,”adapterViewChildPosition“:-1,"groupViewChildPosition": 3, "resourceId": "com.kim.themobile.dev:id/rlPassword", "contentDescription": "", "text": "" }, { "className": "android.widget.LinearLayout ”,“recyclerViewChildPosition”:-1,“adapterViewChildPosition”:-1,“groupViewChildPosition”:3,“resourceId”:“com.kim.themobile.dev:id/llEdittext”,“contentDescription”:“”,“文本” : "" } ] }, { "eventType": "VIEW_TEXT_CHANGED", "timestamp": 1604457818109, "replacementText": "(我的密码)", "actionCode": -1, "delayTime": 0, "canScrollTo": false, "elementDescriptors": [ { "className": "androidx.appcompat.widget.AppCompatEditText", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 0, "resourceId": "com.kim .themobile.dev:id/etPassword", "contentDescription": "", "text": "Hnm234!@" }, { "className": "android.widget.RelativeLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition ": -1, "groupViewChildPosition": 3, "resourceId": "com.kim.themobile.dev:id/rlPassword", "contentDescription": "", "text": "" }, { "className": " android.widget.LinearLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 3, "resourceId": "com.kim.themobile.dev:id/llEdittext", "contentDescription": " ", "text": "" } ] }, { "eventType": "VIEW_CLICKED", "timestamp": 1604457894026, "replacementText": "登录", "actionCode": -1, "delayTime": 0, " canScrollTo": true, "elementDescriptors": [ { "className": "androidx.appcompat.widget.AppCompatButton", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 0, "resourceId": " com.kim.themobile.dev:id/btnSubmitLogin", "contentDescription": "", "text": "登录" }, { "className": "android.widget.RelativeLayout", "recyclerViewChildPosition": -1, “adapterViewChildPosition”:-1,“groupViewChildPosition”:4,“resourceId”:“com.kim.themobile.dev:id/rlbuttons”,“contentDescription”:“”,“text”:“”},{“className” : "android.widget.RelativeLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1,“groupViewChildPosition”:1,“resourceId”:“”,“contentDescription”:“”,“text”:“”}]},{“eventType”:“VIEW_CLICKED”,“时间戳”:1604457961623,“replacementText”:“ ", "actionCode": -1, "delayTime": 0, "canScrollTo": false, "elementDescriptors": [ { "className": "com.google.android.material.tabs.TabLayout$TabView", "recyclerViewChildPosition" : -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 1, "resourceId": "", "contentDescription": "热门故事", "text": "" }, { "className": "com.google .android.material.tabs.TabLayout$SlidingTabIndicator", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 0, "resourceId": "", "contentDescription": "", "text": "" }, { "className": "com.google.android.material.tabs.TabLayout", "recyclerViewChildPosition": -1, "adapterViewChildPosition": -1, "groupViewChildPosition": 0, "resourceId": "com. kim.themobile.dev:id/tlTab", "contentDescription": "", "text": "" } ] } ]

小智 2

您的 Roboscript 在什么操作上失败了?Firebase 测试实验室中的 Robo 运行结果提到了成功执行了多少 Roboscript 操作。知道这一点后,您可以相应地截断您的 Roboscript 并尝试失败的操作(例如,更改其 elementDescriptors)。

另一种调试方法是使用 Espresso Test Recorder 在 Android Studio 中记录等效的 Espresso 测试(从主菜单,运行 -> 记录 Espresso 测试)。在 Android Studio 中运行此测试应该会产生与在 Firebase 测试实验室中使用 Robo 运行相应 Roboscript 类似的结果。

另外,请确保您的应用程序在录制和重放阶段的外观和行为方式相同。特别是,您的应用程序对于调试和发布 APK 应该具有相同的应用程序包名称,并在录制和重播阶段显示相同的屏幕。