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

Фотография

Использование AppState


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

#1 Vittorio

Vittorio

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

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

Отправлено 27 ноября 2006 - 13:20

Люди добрые и знающие помогите новичку пожалуйста. Читал книгу выложенную здесь на форуме и заинтересовался AppState. Но в книжке мало про них написано, может кто поподробнее расскажет как ими пользоваться.
У меня в приложеннии такая проблема - при изменении размеров окна, соответственно изменяются координаты выпадающего списка и тогда при выполнении теста выдается ошибка,что не находит объект такой-то при клике на выпадающий список. Хотел восстанавливать каждый раз окно приложения, но не знаю как. Записал состояние окна и попробовал вызывать функцию SetAppState(). Но при запуске теста SilkTest ругается что верификация провалена(вызывал SetAppState() просле запуска приложения) или что приложения нет(когда до запуска).
  • 0

#2 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 27 ноября 2006 - 13:27

при изменении размеров окна, соответственно изменяются координаты выпадающего списка и тогда при выполнении теста выдается ошибка


а зачем описывать этот выпадающий список по координатам?
неужели нет другого подходящего варианта?
по caption'у, по номеру

использование координат - самое последнее дело
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#3 Vittorio

Vittorio

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

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

Отправлено 27 ноября 2006 - 13:45

а зачем описывать этот выпадающий список по координатам?
неужели нет другого подходящего варианта?
по caption'у, по номеру

Надо кликнуть не просто по полю - на делфи сделано лукап поле. Если по нему не кликать, то выглядит как обычное поле, а чтобы выпал список нужно кликнуть по правому краю этого поля. А в выпавшем списке, поля этого списка не определяются, так что тоже только по координатам клик происходит. Если есть какое-то решение моей проблемы буду рад узнать его.
  • 0

#4 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 27 ноября 2006 - 13:48

а Вы читали в книжке раздел "1.4.1 Использование Class Map" ?

если нет - почитайте, возможно, это и есть решение проблемы
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#5 Vittorio

Vittorio

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

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

Отправлено 27 ноября 2006 - 13:49

А вообще можно как-то определить лукап поле, чтобы видеть его содержание?
  • 0

#6 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 27 ноября 2006 - 14:03

можно попробовать примаппить его к стандартному классу PopupList

как это сделать читайте в вышеназванной главе
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#7 Vittorio

Vittorio

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

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

Отправлено 27 ноября 2006 - 14:04

Спасибо за подсказку. Думаю метод открытия этого списка я допишу, тем более что пример в книге хороший. Но все равно при открытом списке невидно полей, т.к. определяется этот список как диалогбокс. Не могли бы вы подсказать можно ли этот список представить в виде листбоха например и что вообще посоветуете сделать?
  • 0

#8 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 27 ноября 2006 - 14:09

вслепую трудно что-то дельное посоветовать

если есть возможность - приаттачте к сообщению простое приложение, состоящее из одного окна и вашего лукапа в этом окне с несколькими значениями
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#9 Vittorio

Vittorio

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

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

Отправлено 27 ноября 2006 - 15:04

Т.к. лукап поле берет данные из БД, а сама таблица реализована как подключаемый ОСХ-модудь высылать это все смысла нет. Сейчас пробую написать прогу с одним окном и локальным набором данных. Сегодня уже не успею, но завтра попробую сделать.
  • 0

#10 Vittorio

Vittorio

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

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

Отправлено 27 ноября 2006 - 15:05

И кто-нибудь напишите плиз поподробнее как все-таки правильно загрузить нужное состояние.
  • 0

#11 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 27 ноября 2006 - 15:31

И кто-нибудь напишите плиз поподробнее как все-таки правильно загрузить нужное состояние


appstate - это разновидность функции. весь код аппстейта вы пишете сами. там вы можете прописать любые действия, которые нужны при старте/завершении тесткейса (старт приложения, обработка окон, которые могут появиться при запуске приложения, если надо - изменение размеров окна и т.п.)

для проверки текущего состояния тесткейса используется функция GetTestcaseState

но все это описано в руководстве вообще-то

более подробно описано в хелпе
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#12 Vittorio

Vittorio

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

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

Отправлено 28 ноября 2006 - 14:23

Мда, аппстэйт мне пока не поможет. Появились сложности с гридом:
В программе используется dbGridЕН, в котором могут произвольно менятся ширина колонок, а колонки можно менять местами - пользователь может настраивать как ему больше нравиться. Видимо надо обращатся и идентифицировать по капшенам и ячейкам. Но сам грид как стандартный класс не определяется, соответственно напрямую с ячейками я работать не могу. Как можно переопределить класс или еще что сделать, чтобы получить к ним доступ? Можно ли при записи виндовс-декларэйшенс записывать ячейки поименно - т.е. что-то вроде табл.колонка"капшен1"."#3 - третья ячейка колонки с названием "капшен1"
В руководстве было написано:
Например, если на форме имеется элемент ListBox, то SilkTest будет его определять как CustomWin TListBox и, как следствие, работать с ним будет невозможно. Однако если в Class Map'e определить этот класс как ListBox, то все операции, которые можно производить с обычным ListView, станут доступны и для класса TListView. Однако так поступить можно не со всеми элементами (например, с классом GridControl это не поможет).
Хотел бы привести пример, но не получается - для dbGridЕН нужна БД а я пока неразобрался как работать с локальными наборами данных
  • 0

#13 Yury

Yury

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Yury

Отправлено 30 ноября 2006 - 02:27

Мда, аппстэйт мне пока не поможет. Появились сложности с гридом:
В программе используется dbGridЕН, в котором могут ...

А нет ли у вас случайно какого-либо GUI-less интерфейса, чтобы в этой тягомотине вообще не разбираться?
  • 0

#14 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 30 ноября 2006 - 08:39

А нет ли у вас случайно какого-либо GUI-less интерфейса, чтобы в этой тягомотине вообще не разбираться


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

и если уж на то пошло, то лучше написать методы, которые будут нужное количество раз жать кнопки вправо, вниз, и т.п. и использовать буфер обмена для считывания информации
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#15 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 01 декабря 2006 - 07:35

и если уж на то пошло, то лучше написать методы, которые будут нужное количество раз жать кнопки вправо, вниз, и т.п. и использовать буфер обмена для считывания информации

И если учесть, что это тоже воркэраунд, то настоятельно рекомендуется в данном случае забыть о проверках текстов заголовков колонок и строк. Их можно достать, обращаясь к контролу только напрямую.
  • 0

#16 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 07 декабря 2006 - 10:42

У меня есть опыт работы с немыми контролами, когда я получал только хендл окна, из него выковыривал указатель на сам объект и вызывал методы объекта напрямую.
Но для этого нужно либо класс объявлять в dll либо делать его экспортируемым (чтобы можно было кастить класс из CWnd в нужный класс).
Если позволит время и начальство, то попробую еще и грязные хаки (когда класс компилируется вместе с приложением, а я руками в dll-ке вычисляю указатель на него).
Т.к. Вы, как я понял, также и программист, то Вам скорее всего стоит посмотреть в сторону библиотечки EKWIN, которая входит в поставку SilkTest-а.
С её помощью можно добавить свой класс для Вашего dbGridЕН так, чтобы он распознавался Силком как обычный грид.

что касается

табл.колонка"капшен1"."#3

то это можно сделать только если Силк может как-то узнать названия колонок (просто по порядку) и может считывать значения из ячеек по ее координатам.
  • 0


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

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