Перейти к содержимому

Фотография

Как устроены программы для автоматизации тестов?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 elle

elle

    Новый участник

  • Members
  • Pip
  • 17 сообщений

Отправлено 18 ноября 2004 - 09:50

Как программы для автоматического тестирования GUI понимают, что написано, например, в третьей строчке какого-нибудь ListView в моей программе?
Это же разные процессы, разные адресные пространства.
  • 0

#2 Mike

Mike

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 1 079 сообщений
  • Город:Москва

Отправлено 18 ноября 2004 - 11:10

Да. Но вот только к объектам GUI (которые с точки зрения Windows все поголовно являются окнами) есть доступ через WinAPI посредством window handles. Я не знаю подробностей (хранятся ли данные, относящиеся к объектам GUI в пространстве процесса или ОС - думаю, всё же, в пространстве OC), но точно знаю, что любая программа имеет доступ ко всем объектам пользовательского интерфейса через WinAPI, не только своим. И уж точно любому объекту пользовательского интерфеса можно послать любой WM (window message, event) - а window messages это основа работы любой программы для автоматизированного функционального тестирования.
  • 0
Best regards,
Майк.

#3 elle

elle

    Новый участник

  • Members
  • Pip
  • 17 сообщений

Отправлено 18 ноября 2004 - 12:06

Сообщение послать можно, но как контрол может ответить на это сообщение?
Чтобы ListView мог сказать, что в третьей строке у него написано то-то, ему нужно передать какой-то буфер.
Мы можем дать адрес буфера в адресном пространстве тестирующего приложения, но ListView может работать только с адреcным пространством своего GUI приложения.
Я плохо знаю WinAPI:( Было бы очень интересно посмотреть самый простой пример, в котором одно приложение считывает данные из control'а другого приложения.

Еще любопытно, как тоже самое реализуется в Java-приложениях. Там же нет window messages.
  • 0

#4 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 18 ноября 2004 - 15:09

Если вам очень интересно как работает recording в инструментах автоматизированного функционального тестирования посмотрите WinRunner Customization Guide. Там есть пример custom функции, которая реализует recording на нестандартном элементе, т.е. элементе, который по умолчанию относится к классу object (generic в Rational Robot).

Win32 API позволяет вам не только посылать events различным контролам (на чем собственно и основано автоматическое воспроизведение действий пользователя), но также и получать значения любых свойств этих контролов, которые разработчик сделал доступными внешнему миру, т.е. например, не объявил их private. Поэтому получить значение из 3-ей строчки ListView никакого труда не составляет.

Java приложения не являются исключением. В среде Windows любой элемент вашего UI будет иметь свой window handle, который является ключом к работе с этим элементом через Win32 API.
  • 0
Дмитрий Шевченко

HP Software


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных