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

Фотография

Как пробовать делать что-то? :)


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

#1 nazarov

nazarov

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:CB-1

Отправлено 04 октября 2006 - 08:50

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

#2 Clauster

Clauster

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

  • Members
  • PipPipPipPipPipPip
  • 1 913 сообщений
  • ФИО:Худобородов Валерий
  • Город:Espoo

Отправлено 04 октября 2006 - 09:00

А что не получается-то? Или вы в школе операторы ветвления не проходили?
  • 0

#3 Tiana

Tiana

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Girnyk S. Tatyana
  • Город:Украина, Харьков

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

1. Выполнить действие.
2. Анализ текущей ситуации.
3. Оценка текущего и желаемого результата. Оператор IF и описание дальнейших действий для каждого условия.
  • 0

#4 nazarov

nazarov

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:CB-1

Отправлено 04 октября 2006 - 09:32

)) Я думал может есть возможность писать примерно так:

"Сделать"
Window SetContext, "Caption=Тест;Class=TfmMain", ""
GenericObject Click, "Text=ActionMainMenuBar1", "Coords=86,10"
"Не получилось"
начало
SQALogMessage...
Exit Sub
конец
"Получилось"
SQALogMessage...
.....
  • 0

#5 Nadezhda

Nadezhda

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • Город:Харьков

Отправлено 04 октября 2006 - 11:01

Чтобы скрипт, как вы выразились, не глохнул, нужно выбрать опцию Continue Execution в Tool/GUI Playback Options/Error Recovery.
Насколько мне известно, аналога try-catch в SQABasic нет. Для того, чтобы "попробовать" что-то сделать, можно предположить, что может вам помешать это сделать. Например, вы не уверены, что элемент, по которому вам нужно кликнуть, присутствует. Тогда нужно использовать функцию SQAFindObject, и только если она даст положительный результат, продолжать действовать. Это предупреждающий подход.
Конечно, не всегда можно предсказать, что может помешать выполнить то или иное действие. Тогда нужно использовать подход, который описала Tiana, т.е. после выполнения действия анализировать, выполнилось ли оно в действительности.
  • 0

#6 nazarov

nazarov

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

  • Members
  • Pip
  • 24 сообщений
  • ФИО:CB-1

Отправлено 04 октября 2006 - 12:05

Я так и знал. :good:
  • 0

#7 Tiana

Tiana

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Girnyk S. Tatyana
  • Город:Украина, Харьков

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

Чтобы скрипт, как вы выразились, не глохнул, нужно выбрать опцию Continue Execution в Tool/GUI Playback Options/Error Recovery.

Тут я не совсем согласна. Если функциональность в приложении взаимозависима, т.е. нельзя перейти к следующему шагу без корректного завершения предыдущего или сложно спрогнозировать результат, то выбор опции Continue Execution/Skip Current Script/Abort Playback зависит от степени связности выполняемых процедур/функций.
На мой взгляд, опция Skip Current Script может быть более удобна при соответствующей организации скриптов. Т.е в пределах одного скрипта вызываются взаимозависимые функции. Если где-то происходит сбой, ошибка записывается в лог, затем начинается выполнение следующего скрипта, успешность выполнения которого, не зависит от сбоя в предыдущем скрипте.

Насколько мне известно, аналога try-catch в SQABasic нет.

Можно покопаться в "On Error Statement".

Nadezhda, а чем отличается этот подход:

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

от этого:

1. Выполнить действие. (к примеру, загрузить страницу)
2. Анализ текущей ситуации. (страница загружена или нет)
3. Оценка текущего и желаемого результата. (проверка контента страницы, наличия объектов, значений их свойств). Оператор IF и описание дальнейших действий для каждого условия. (продолжать действовать, но то, как действовать, зависит от каждого случая/результата).

По-моему суть одна, а по-вашему выходит, что подхода два :good:
  • 0

#8 Nadezhda

Nadezhda

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • Город:Харьков

Отправлено 05 октября 2006 - 07:06

В описанных подходах суть действительно одна, а разница в том, что я предложила проверять возможность выполнения действия до выполнения действия. Т.е. получается сначала пункт 2 - анализируем ситуацию, потом 3 - сравниваем ожидаемый и полученный результаты, и потом по одной из веток IF пункт 1 - выполняем действие.

Если функциональность в приложении взаимозависима, т.е. нельзя перейти к следующему шагу без корректного завершения предыдущего или сложно спрогнозировать результат, то выбор опции Continue Execution/Skip Current Script/Abort Playback зависит от степени связности выполняемых процедур/функций.
На мой взгляд, опция Skip Current Script может быть более удобна при соответствующей организации скриптов.

Согласна. Мне следовало написать не "нужно", а "можно" выбрать указанную опцию. Все зависит от конкретной ситуации.
  • 0

#9 Tiana

Tiana

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Girnyk S. Tatyana
  • Город:Украина, Харьков

Отправлено 05 октября 2006 - 07:47

Т.е. получается сначала пункт 2 - анализируем ситуацию, потом 3 - сравниваем ожидаемый и полученный результаты

Сами себя запутали :) Обычно анализируется ситуация, после выполнения действия, для возможности выполнения следующего действия (цикл). Вроде такого - мы же не можем анализировать была ли корректно загружена страница до того, как мы выполнили действие "загрузить страницу". :smile:
Мы анализируем корректность загрузки страницы и возможность входа в пользователя в систему (к примеру), и затем уже выполняем вход пользователя в систему и проверяем выполнение входа и т.д.
  • 0

#10 Nadezhda

Nadezhda

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • Город:Харьков

Отправлено 05 октября 2006 - 08:24

Обычно анализируется ситуация, после выполнения действия, для возможности выполнения следующего действия (цикл).

Здесь вы объединили оба варианта :smile:

мы же не можем анализировать была ли корректно загружена страница до того, как мы выполнили действие "загрузить страницу".  :ok:

Я и не предлагала анализировать, загрузилась ли страница, до того как мы выполнили действие "загрузить страницу" :ok: Я предлагала проверить, есть ли на странице ссылка, на которую надо кликнуть, чтобы нужная страница загрузилась. И эту проверку как раз можно сделать до того, как собственно выполнять действие "загрузить страницу". В случае запуска браузера с нужной страницей в качестве стартовой этот вариант, естественно, не подходит :blush:

Мы анализируем корректность загрузки страницы

Это анализ после выполнения действия "загрузка страницы"

и возможность входа в пользователя в систему

а это - до выполнения действия "вход пользователя".

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

#11 Tiana

Tiana

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Girnyk S. Tatyana
  • Город:Украина, Харьков

Отправлено 05 октября 2006 - 09:17

Обсуждение напоминает мне "что раньше было яйцо или курица". :smile:


Обычно анализируется ситуация, после выполнения действия, для возможности выполнения следующего действия (цикл).

Здесь вы объединили оба варианта

Здесь я описала более детально описанный мною выше подход. Что сначала все-таки есть действие. Ведь с чего вы начинаете выполнение ваших скриптов, сразу с проверки или все-таки с действия (загрузка браузера/страницы)? Думаю, что с загрузки браузера. :ok: После чего будет следовать набор проверок и соответствующих последующих действий.

Я предлагала проверить, есть ли на странице ссылка, на которую надо кликнуть, чтобы нужная страница загрузилась. И эту проверку как раз можно сделать до того, как собственно выполнять действие "загрузить страницу".

Было ли какое-то действие перед тем, как ссылка появилась? Думаю, что было. Т.е. сначала все таки "действие", которое привело к появлению необходимой Вам ссылки.

Тут бы я немного перефразировала:


Мы анализируем корректность загрузки страницы

Это анализ после выполнения действия "загрузка страницы"



и возможность входа в пользователя в систему

а это - до выполнения действия "вход пользователя".


вот так:
Анализ корректности загрузки страницы - это анализ после выполнения действия "загрузка страницы". Возможность входа пользователя в систему - это анализ после действия "загрузка страницы" и до действия "вход пользователя в систему".

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

Я написала выше "возможность входа пользователя", а не успешный вход. Успешность выполнения входа пользователя в систему, конечно же, будет проверяться после выполнения действия "вход пользователя в систему". :blush:
  • 0

#12 Nadezhda

Nadezhda

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • Город:Харьков

Отправлено 05 октября 2006 - 09:44

:smile:
  • 0

#13 Tiana

Tiana

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Girnyk S. Tatyana
  • Город:Украина, Харьков

Отправлено 05 октября 2006 - 09:50

:smile:


Да, только каких усилий это стоило! :ok:
  • 0


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

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