Как подать заявку тестирования PowerBuilder UI?

befunge-93
                                    v
>v"Please enter a number (1-16) : "0<
,:             >$*99g1-:99p#v_.25*,@
^_&:1-99p>:1-:!|10          < 
         ^     <

тайный язык Chris Pressey Eye Technologies CAT .

6
задан Justin Ethier 25 February 2010 в 16:21
поделиться

4 ответа

Я экспериментирую с кодом для инструмента для автоматизации графических интерфейсов на основе PowerBuilder. Из того, что я вижу, лучше всего было бы использовать собственный интерфейс PowerBuilder (PBNI) и вызывать код PowerScript из своего NVO.

Если хотите, не стесняйтесь отправить мне электронное письмо (см. Мой профиль для адрес электронной почты), мне было бы интересно обменяться идеями о том, как это сделать.

2
ответ дан 17 December 2019 в 04:48
поделиться

Я какое-то время не использовал PowerBuilder, но полагаю, что проблема, которую вы пытаетесь решить, аналогична той, которую я пытаюсь решить для людей, создающих проекты с системами SCADA, такими как Wonderware Intouch.

Проблема с таким приложением состоит в том, что нет API для получения или установки значения элемента управления. Так что подход pywinauto не может работать.

Я сделал небольшой инструмент для имитации пользовательских событий и получения результатов из снимка экрана. Я использую PIL и pytesser ORM для анализа снимков экрана. Это не самый простой способ, но он работает нормально.

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

Если вы умеете читать по-французски, вот одна статья о тестировании приложений на основе Intouch

Извините за саморекламу, но я столкнулся с аналогичной проблемой без решения, поэтому я написал свою собственную. В любом случае, это бесплатно и с открытым исходным кодом ...

1
ответ дан 17 December 2019 в 04:48
поделиться

Если вы тестируете DataWindows (класс pbdwxxx, например, pbdw110), вам нужно будет использовать комбинацию щелчка по определенным координатам и отправки клавиш Tab, чтобы перейти к нужному элементу управления. Конечно, вы также можете отправлять клавиши со стрелками вверх и вниз для перемещения между строками. Проще всего начать с обычного элемента управления, такого как SLE, и перейти к DataWindow. Проблема в том, что DataWindow - это, по сути, просто изображение. Для данного поля нет элемента управления, пока вы не переместите туда фокус, щелкнув или нажав табуляцию. Я также обнаружил, что интерфейс iAccessible в DataWindow немного странный. Если вы спросите у DataWindow объект с фокусом, вы не получите правильного ответа. Если вы перечислите всех детей, вы сможете найти того, у кого есть фокус. Если вы можете изменить источник, я также советую вам установить AccessibleName для своих элементов управления DataWindow, иначе вы, вероятно, не сможете идентифицировать элементы управления, кроме как по положению (под элементами управления DataWindow я имею в виду те, которые находятся внутри DataWindow, а не непосредственно DataWindow) . Если это приложение MDI, вам также может быть полезно найти окно MicroHelp (класс fnhelpxxx, например, fnhelp110, найти из главного окна приложения), чтобы помочь определить текущий контекст.

Отредактировано для добавления: Сикули выглядит очень многообещающим для тестирования PowerBuilder. Он работает путем распознавания объектов на экране по сохраненному фрагменту скриншота. То есть вы делаете снимок экрана той части экрана, которую хотите найти.

1
ответ дан 17 December 2019 в 04:48
поделиться

В службе поддержки AutomatedQa я видел рецепт, рекомендующий использование msaa и установку некоторых свойств для элементов управления. Не знаю, работает ли.

1
ответ дан 17 December 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: