2013-04-03 3 views
1

У нас есть Мобильное гибридное приложение PhoneGap Sencha Touch, я хочу использовать MonkeyTalk в тестах автоматизации. Может кто-нибудь мне помочь? Заранее спасибо.Поддерживает ли MonkeyTalk приложение Mobile Hibrid на сенсорной панели PhoneGap?

Я установил monkeytalk-1.0.40, он работает хорошо. И с этим я могу проверить собственное приложение очень хорошо.

Я построил гибридное приложение с помощью PhoneGap, это очень просто, только один код - загрузить страницу примера Sencha Touch: super.loadUrl ("http://dev.sencha.com/deploy/touch/examples/production/index.html");

Я также сделал все, что указано в руководстве пользователя MonkeyTalk (www.gorillalogic.com/monkeytalk-documentation/monkeytalk-getting-started/install-agent/android).

Затем все готово, простое гибридное приложение развернуто на тренажере устройства. Интеграция с MonkeyTalk также может подключаться к приложению. Я записываю некоторые действия (коснитесь поля и набрал несколько символов в нем), но записываются только некоторые действия «WebView * tap» (без информации о положении на месте). Когда я воспроизвожу его, он также может воспроизводить некоторые действия с краном, но без позиции позиция крана неверна.

Итак, я должен написать некоторые действия вручную. Иногда я обнаружил, что действие «Label Tap» может работать, но иногда оно нажимает на неправильный элемент. Когда я перехожу на страницу формы (Kitchen Sink -> User Interface -> Forms на dev.sencha.com/deploy/touch/examples/production/index.html), я сыграл действие, чтобы нажать на поле, весь Пользовательский интерфейс перемещен в левый угол экрана, очень странный. И я попытался отправить какой-то текст в поле «имя», ничего не произошло.

Знаете ли вы, в чем проблема? Можно ли исправить? Как мне это сделать?

Большое спасибо!

+0

Вы можете помочь в этом? Спасибо огромное! ~ помогите ~ – user2239510

ответ

0

Я использовал MonkeyTalk и Sencha уже довольно давно. Насколько я понимаю, MonkeyTalk создает собственные идентификаторы (MonkeyID) для каждого (Web-) элемента на текущем представлении. Как только элемент получит MonkeyID, он сохранит его для остальной части теста. Проблема заключается в том, что Sencha не создает уникальные идентификаторы для своих WebElements в первую очередь. Это пугает, потому что это просто нелогично.

В любом случае, что Sencha делает для генерации идентификаторов, поэтому они уникальны только в текущем виде. Когда вы переключаетесь на другой вид и возвращаетесь позже, все элементы могут иметь разные идентификаторы. Возможно, вы можете изменить это в настройках Sencha ...

То, почему MonkeyTalk не может создавать идентификаторы MonkeyID для этих элементов, а MonkeyID - Monkeytalks, только способ взаимодействия с элементами, которые вы просто не можете щелкнуть по ним, отправить текст в их или взаимодействовать с ними любым другим способом. Единственным решением для автоматизации приложений Sencha, которые я нашел до сих пор, является использование XPath и ссылка на ярлык Element. Но сожелению MonkeyTalk не поддерживает, что ...

0

приложения построены с использованием Сенча не самый простой, чтобы проверить из-за того, что сказал Стив McGarret, но MonkeyTalk получает работу, используя альтернативный метод, описанный в documention web page:

MonkeyId также может быть указана как индекс , основанный на 1 (не нулевой) формы #N. В этом случае MonkeyId идентифицирует компонент Nth указанного типа, который в настоящее время отображается.Компоненты индексируются в соответствии с положением верхнего левого положения, то есть путем сортировки компонентов по координате (x, y).

Представьте, что вы хотите автоматизировать регистрацию пользователя. На странице, скорее всего, будет несколько полей ввода, но вы не сможете использовать их идентификаторы, потому что они будут меняться, если вы перейдете к другому виду. Вот что вы можете сделать:

  • Откройте хром и используйте его веб-инспектор (chrome: // inspect/# devices), чтобы найти нужный элемент. Предположим, что поле ввода имеет свойство «name» и значение «firstName».
  • Перейдите в MonkeyTalk и откройте дерево компонентов. Фильтровать по слову «ввод».
  • Примечание вниз ее положение в дереве (например, 3) и приступить к написанию сценария:
    • вход # 3 EnterText Джон
    • Input # 4 EnterText Doe
    • (...)

И все. MonkeyTalk отлично сыграет ваш сценарий. Если у кого-то есть лучшее решение, чтобы получить позицию элемента в дереве компонентов, пожалуйста, дайте мне знать - в противном случае это очень болезненный процесс, если на вашей странице есть много div/элементов, и это не стоит хлопот. Возможно также использовать другую структуру тестирования.