【问题标题】:Firebase Robo Test doesn't follow the Robo Script created in Android StudioFirebase Robo 测试不遵循在 Android Studio 中创建的 Robo 脚本
【发布时间】:2021-02-17 19:02:13
【问题描述】:

我从 android studio 创建了 roboscript,并将创建的 json 文件与最新的 apk 文件一起上传到 Robo 测试实验室以进行负面测试(使用错误的凭据)。但是 Firebase Robo 测试中的所有测试都失败了,当我查看视频时,Robo 测试只是随机点击,而不是按照指导。任何人都可以请帮助解决这个问题吗?非常感谢!

以下是使用的机器人脚本:

[ { "eventType": "VIEW_CLICKED", “时间戳”:1604457186524, "replacementText": "跳过", “动作代码”:-1, “延迟时间”:0, “canScrollTo”:假, “元素描述符”:[ { "className": "androidx.appcompat.widget.AppCompatTextView", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 2, "resourceId": "com.kim.themobile.dev:id/tvSkipBtn", “内容描述”:“”, “文本”:“跳过” }, { "className": "android.widget.RelativeLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 0, "resourceId": "", “内容描述”:“”, “文本”: ”” }, { "className": "androidx.appcompat.widget.ContentFrameLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 1, "resourceId": "android:id/content", “内容描述”:“”, “文本”: ”” } ] }, { "eventType": "VIEW_TEXT_CHANGED", “时间戳”:1604457315709, "replacementText": "(我的电子邮件:正确的电子邮件)", “动作代码”:-1, “延迟时间”:0, “canScrollTo”:是的, “元素描述符”:[ { "className": "androidx.appcompat.widget.AppCompatEditText", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 0, "resourceId": "com.kim.themobile.dev:id/etEmail", “内容描述”:“”, “文本”: ”” }, { "className": "android.widget.LinearLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 3, "resourceId": "com.kim.themobile.dev:id/llEdittext", “内容描述”:“”, “文本”: ”” }, { "className": "android.widget.RelativeLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 1, "resourceId": "", “内容描述”:“”, “文本”: ”” } ] }, { "eventType": "VIEW_TEXT_CHANGED", “时间戳”:1604457570870, "replacementText": "(我的密码错误密码无效登录)", “动作代码”:-1, “延迟时间”:0, “canScrollTo”:假, “元素描述符”:[ { "className": "androidx.appcompat.widget.AppCompatEditText", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 0, "resourceId": "com.kim.themobile.dev:id/etPassword", “内容描述”:“”, “文本”: ”” }, { "className": "android.widget.RelativeLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 3, "resourceId": "com.kim.themobile.dev:id/rlPassword", “内容描述”:“”, “文本”: ”” }, { "className": "android.widget.LinearLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 3, "resourceId": "com.kim.themobile.dev:id/llEdittext", “内容描述”:“”, “文本”: ”” } ] }, { "eventType": "VIEW_CLICKED", “时间戳”:1604457800428, "replacementText": "登录", “动作代码”:-1, “延迟时间”:0, “canScrollTo”:是的, “元素描述符”:[ { "className": "androidx.appcompat.widget.AppCompatButton", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 0, "resourceId": "com.kim.themobile.dev:id/btnSubmitLogin", “内容描述”:“”, “文本”:“登录” }, { "className": "android.widget.RelativeLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 4, "resourceId": "com.kim.themobile.dev:id/rlbuttons", “内容描述”:“”, “文本”: ”” }, { "className": "android.widget.RelativeLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 1, "resourceId": "", “内容描述”:“”, “文本”: ”” } ] }, { "eventType": "VIEW_CLICKED", “时间戳”:1604457812228, “替换文本”:“”, “动作代码”:-1, “延迟时间”:0, “canScrollTo”:假, “元素描述符”:[ { "className": "android.widget.ImageView", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 1, "resourceId": "com.kim.themobile.dev:id/ivRevealPw", "contentDescription": "显示密码", “文本”: ”” }, { "className": "android.widget.RelativeLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 3, "resourceId": "com.kim.themobile.dev:id/rlPassword", “内容描述”:“”, “文本”: ”” }, { "className": "android.widget.LinearLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 3, "resourceId": "com.kim.themobile.dev:id/llEdittext", “内容描述”:“”, “文本”: ”” } ] }, { "eventType": "VIEW_TEXT_CHANGED", “时间戳”:1604457818109, "replacementText": "(我的密码)", “动作代码”:-1, “延迟时间”:0, “canScrollTo”:假, “元素描述符”:[ { "className": "androidx.appcompat.widget.AppCompatEditText", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 0, "resourceId": "com.kim.themobile.dev:id/etPassword", “内容描述”:“”, “文本”:“Hnm234!@” }, { "className": "android.widget.RelativeLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 3, "resourceId": "com.kim.themobile.dev:id/rlPassword", “内容描述”:“”, “文本”: ”” }, { "className": "android.widget.LinearLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 3, "resourceId": "com.kim.themobile.dev:id/llEdittext", “内容描述”:“”, “文本”: ”” } ] }, { "eventType": "VIEW_CLICKED", “时间戳”:1604457894026, "replacementText": "登录", “动作代码”:-1, “延迟时间”:0, “canScrollTo”:是的, “元素描述符”:[ { "className": "androidx.appcompat.widget.AppCompatButton", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 0, "resourceId": "com.kim.themobile.dev:id/btnSubmitLogin", “内容描述”:“”, “文本”:“登录” }, { "className": "android.widget.RelativeLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 4, "resourceId": "com.kim.themobile.dev:id/rlbuttons", “内容描述”:“”, “文本”: ”” }, { "className": "android.widget.RelativeLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 1, "resourceId": "", “内容描述”:“”, “文本”: ”” } ] }, { "eventType": "VIEW_CLICKED", “时间戳”:1604457961623, “替换文本”:“”, “动作代码”:-1, “延迟时间”:0, “canScrollTo”:假, “元素描述符”:[ { "className": "com.google.android.material.tabs.TabLayout$TabView", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 1, "resourceId": "", "contentDescription": "热门故事", “文本”: ”” }, { "className": "com.google.android.material.tabs.TabLayout$SlidingTabIndicator", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 0, "resourceId": "", “内容描述”:“”, “文本”: ”” }, { "className": "com.google.android.material.tabs.TabLayout", “recyclerViewChildPosition”:-1, “adapterViewChildPosition”:-1, "groupViewChildPosition": 0, "resourceId": "com.kim.themobile.dev:id/tlTab", “内容描述”:“”, “文本”: ”” } ] } ]

【问题讨论】:

    标签: android json firebase firebase-test-lab


    【解决方案1】:

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

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

    此外,请确保您的应用在录制和回放阶段的外观和行为方式相同。特别是,您的应用在调试和发布 APK 时应具有相同的应用包名称,并在录制和回放阶段显示相同的屏幕。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 1970-01-01
      • 2022-06-17
      相关资源
      最近更新 更多