Робо-скрипт не работает для Robo Test в Firebase Test Lab

Я загрузил APK в Test Lab и сценарий JSON (сгенерированный с помощью Robo Script Recorder внутри Android Studio), но тест Robo работает случайным образом, так как сценарий Robo не имеет никакого эффекта. Пожалуйста, помогите мне, если я пропускаю что-то важное. Пока что сообщества не так много поддержки, так как Robo Script был представлен только в декабре 2017 года. Я сделал несколько итераций. Вот сценарий JSON, созданный Robo Script Recorder.

Пожалуйста, помогите мне, если у вас был успешный опыт работы с Robo Script

[
  {
    "eventType": "VIEW_TEXT_CHANGED",
    "timestamp": 1519108428358,
    "replacementText": "Version  2.0.1 - stg",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.TextView",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 2,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_app_version",
        "contentDescription": "",
        "text": "Version"
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 3,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_layout_bottom_bar",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/login_layout_background",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "VIEW_TEXT_CHANGED",
    "timestamp": 1519108430125,
    "replacementText": "20-FEB-2018 11:34 AM",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.TextView",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 3,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_build_date",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 3,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_layout_bottom_bar",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/login_layout_background",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1519108437083,
    "replacementText": "",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.EditText",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_username",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_form",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.LinearLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_controls",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "VIEW_TEXT_CHANGED",
    "timestamp": 1519108438911,
    "replacementText": "[email protected]",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.EditText",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_username",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_form",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.LinearLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_controls",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "VIEW_TEXT_CHANGED",
    "timestamp": 1519108457605,
    "replacementText": "8240",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.EditText",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 5,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_password",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_form",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.LinearLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_controls",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1519108468385,
    "replacementText": "LOGIN",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.Button",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 2,
        "resourceId": "com.directsalesmobile.connect21:id/ui_activity_login_btn",
        "contentDescription": "",
        "text": "LOGIN"
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/login_layout_background",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.FrameLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "android:id/content",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1519108473787,
    "replacementText": "Accept",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.Button",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.directsalesmobile.connect21:id/ui_inapp_license_view_accept_btn",
        "contentDescription": "",
        "text": "Accept"
      },
      {
        "className": "android.widget.LinearLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 3,
        "resourceId": "",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "DELAYED_MESSAGE_POSTED",
    "timestamp": 1519108492539,
    "actionCode": -1,
    "delayTime": 10000,
    "canScrollTo": false,
    "elementDescriptors": []
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1519108502208,
    "replacementText": "",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.FrameLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 2,
        "resourceId": "com.directsalesmobile.connect21:id/tabsLayout",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.TabWidget",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 2,
        "resourceId": "android:id/tabs",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.LinearLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1519108507006,
    "replacementText": "Package",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.Button",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 2,
        "resourceId": "com.directsalesmobile.connect21:id/view_courses",
        "contentDescription": "",
        "text": "Package"
      },
      {
        "className": "android.widget.TableRow",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/view_switcher",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.TableLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.directsalesmobile.connect21:id/AudioVideoHeader",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "DELAYED_MESSAGE_POSTED",
    "timestamp": 1519108511679,
    "actionCode": -1,
    "delayTime": 10000,
    "canScrollTo": false,
    "elementDescriptors": []
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1519108512263,
    "replacementText": "",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.LinearLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": 0,
        "groupViewChildPosition": -1,
        "resourceId": "",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.ListView",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.directsalesmobile.connect21:id/gift_given_users_list",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.LinearLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 2,
        "resourceId": "com.directsalesmobile.connect21:id/send_gift_list_view_container",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "DELAYED_MESSAGE_POSTED",
    "timestamp": 1519108514916,
    "actionCode": -1,
    "delayTime": 10000,
    "canScrollTo": false,
    "elementDescriptors": []
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1519108516244,
    "replacementText": "",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.ImageButton",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 3,
        "resourceId": "com.directsalesmobile.connect21:id/ui_course_detail_fragment_downloading_bt",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/ui_course_detail_header_info_container",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1519108528267,
    "replacementText": "",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.widget.ImageButton",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 3,
        "resourceId": "com.directsalesmobile.connect21:id/ui_course_detail_fragment_downloading_bt",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/ui_course_detail_header_info_container",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "DELAYED_MESSAGE_POSTED",
    "timestamp": 1519108529946,
    "actionCode": -1,
    "delayTime": 300,
    "canScrollTo": false,
    "elementDescriptors": []
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1519108534032,
    "replacementText": "",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.support.v7.widget.AppCompatImageButton",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/ui_downloading_row_inprgoress_btn_pause",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.LinearLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/ui_downloading_row_cancel_btn_holder",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.directsalesmobile.connect21:id/ui_downloading_row_btn_holder",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "DELAYED_MESSAGE_POSTED",
    "timestamp": 1519108535675,
    "actionCode": -1,
    "delayTime": 300,
    "canScrollTo": false,
    "elementDescriptors": []
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1519108537244,
    "replacementText": "",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "android.support.v7.widget.AppCompatImageButton",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/ui_downloading_row_inprgoress_btn_pause",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.LinearLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.directsalesmobile.connect21:id/ui_downloading_row_cancel_btn_holder",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.directsalesmobile.connect21:id/ui_downloading_row_btn_holder",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {
    "eventType": "DELAYED_MESSAGE_POSTED",
    "timestamp": 1519108538787,
    "actionCode": -1,
    "delayTime": 300,
    "canScrollTo": false,
    "elementDescriptors": []
  }
]

введите здесь описание изображения


person Adeel Ahmad    schedule 20.02.2018    source источник
comment
Скрипт должен запуститься, после чего Robo продолжит сканирование в обычном режиме. Цель сценария - обойти экраны, требующие определенного ввода.   -  person Doug Stevenson    schedule 21.02.2018


Ответы (3)


Ваш сценарий Robo и то, как вы его загрузили в Test Lab, выглядят нормально. Робо выполняет действия из сценария до первого сбоя, после чего возобновляет обычное сканирование. Чтобы узнать, сколько действий из Робо-сценария было выполнено успешно, вы можете найти строку «Робо-сценарий» в файле logcat, созданном сканированием. В качестве альтернативы вы можете подождать несколько дней и повторно запустить тест Robo - в этот момент статус скрипта Robo должен отображаться непосредственно в видеоролике сканирования.

Другая проверка работоспособности - записать те же действия, что и для сценария Robo, но с помощью «Выполнить» -> «Записать тест эспрессо» и посмотреть, проходит ли сгенерированный тест локально.

person Stanislav Negara    schedule 21.02.2018
comment
Спасибо за ответ. Проверка журналов была действительно полезной, и я уже пробовал записывать Espresso, и он не выдал ошибок, связанных с поиском ресурсов в xml против идентификаторов, проблема, похоже, связана с несколькими идентификаторами приложений для разных вариантов сборки, поскольку проект довольно большой с 5 вариантами сборки и 6 варианты сборки. Я потрачу некоторое время на то, чтобы правильно переопределить содержимое пакетов в соответствующих пакетах. Это, наверное, самое разумное решение, поэтому я принимаю ответ :) - person Adeel Ahmad; 21.02.2018

Есть лучший способ протестировать Robo Scripts локально -

  1. Вам необходимо настроить App Crawler.
  2. Затем вызовите средство запуска App Crawler, используя следующую команду
    # P2 #

Примечание: здесь мы добавляем путь к робо-скрипту, используя

—- файл-робо-скрипта ‹путь-робо-скрипта>

Подробнее об этом можно прочитать здесь: Тестируйте скрипты робо локально: полезно для тестовой лаборатории Firebase и отчетов перед запуском

person Rohit Surwase    schedule 05.11.2019

Проверьте вариант сборки apk, из которого вы получаете свои автоматизированные тесты, т.е. создание теста из варианта отладки не будет работать в варианте выпуска.

person HARSHIT GUPTA    schedule 23.12.2020