Среда, 27.11.2024
Мой сайт
Меню сайта
Наш опрос
Оцените мой сайт
Всего ответов: 5
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Презентация BASIC-ABC Преимущества и недостатки языка Синтаксис языка Команды языка Файловая структура скрипта

Презентация BASIC-ABC

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

Язык BASIC-ABC предназначен для автоматизации любых рутинных действий с программным обеспечением на вашем компьютере. Это достигается путем эмуляции ваших действий с помощью набора скриптов, исполняемых интерпретатором языка, последовательно, шаг за шагом.

Почему basic-abc удобен для написания плагинов для любых программ?

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

Интерпретатор языка написан на java. Фактически это оболочка для класса Robot из пакета java.awt. Этот класс позволяет эмулировать действия пользователя и сканировать экранные области.

Для начала рассмотрим процесс эмуляции некоторых действий пользователя на языке java.

Например:


Robot robot = new Robot();

int x=500;

int y=500;

robot.mouseMove(x,y);

Данный код перемещает указатель мыши по координатам 500, 500 на экране монитора или ноутбука.


int keycode1 = KeyEvent.VK_WIN;

int keycode2 = KeyEvent.VK_R;

robot.keyPress(keycode1);

robot.delay(20);

robot.keyPress(keycode2);

robot.delay(50);

robot.keyRelease(keycode2);

robot.delay(20);

robot.keyRelease(keycode1);

Данный код эмулирует нажатие пользователем комбинации клавиш WIN+R.

Таким образом, опытный программист Java сможет написать код, эмулирующий запуск любого браузера, переход на нужную страницу и выполнение на этой странице любых действий, вплоть до ввода значений и отправки их на сервер путем клика по кнопке Submit. Затем программист может сделать скан результирующей страницы и сравнить ее с эталоном. Результат сравнения даст ответ прошел ли тест-кейс.

Но что делать простому пользователю, не знакомому с языком java? Он ведь не сможет написать такой сложный код. А теперь посмотрите на этот скрипт:


hit key:WIN+M

pause ms:500

hit key:WIN+R

pause ms:500 

type text:{chrome}

pause ms:500

hit key:ENTER

pause ms:2000

hit key:ALT+SPACE

hit key:DOWN times:4 delay:500

hit key:ENTER

Как видите, он совершенно понятен:

нажата клавиша WIN+M

сделана пауза на 500 миллисекунд

...

напечатан текст chrome

...

нажата клавиша - стрелка вниз 4 раза с задержкой 500 милисекунд

Данный скрипт запускает браузер chrome и раскрывает его на весь экран.

Как проверить результат?

С помощью Paint или другого простого графического редактора делаем копию участка экрана с результатом и сохраняем в каталог скрипта, например название файла etalon.png Тогда инструкция:

find context ctx:etalon

вернет истинное true или ложное false значение в зависимости от того будет ли найден на экране эталон, то есть участок экрана, заранее сохраненный в графическом файле.

ВАЖНО: результатом выполнения скрипта будет истинное или ложное значение.

Как видите - все очень просто.

Пользователь совершенно отделен от знания о внутренней реализации языка. Его задачей является простое описание в скрипте последовательности действий относительно объекта, который он хочет использовать тем или иным образом

Особую гибкость языку придает возможность использования вложенных скриптов. Например:


mouse click btn:left px:500 py:500

run script scr:mouse_clicked_and_login_type

run script scr:email_checked

Второе, что нужно понять и что является ПРИНЦИПИАЛЬНО ВАЖНЫМ:

Какой бы глубины вложенности не был скрипт, он выполнится целиком, то есть вернет TRUE, только если будут достигнуты ВСЕ УСЛОВИЯ, определенные в нем.

То есть абстрактно можно записать жизненный цикл скрипта из 7 инструкций в виде:

BEGIN->TRUE->TRUE->TRUE->TRUE->TRUE->TRUE->TRUE->END

все семь инструкций выполнились, скрипт вернул TRUE

BEGIN->TRUE->FALSE->END

выполнилась только первая инструкция, скрипт вернул FALSE и интерпретатор закончил работу

Скрипт или выполняется целиком или не выполняется.

Презентация BASIC-ABC Преимущества и недостатки языка Синтаксис языка Команды языка Файловая структура скрипта

Преимущества языка:

  • Прост в изучении.
  • Легко дополняется новыми инструкциями (но я оставляю за собой право запретить любое дополнение не соответствующее философии языка).
  • Мета-язык, так работает поверх приложений и позволяет использовать интерфейсы других приложений в интересах пользователя.
  • PROLOGоподобный логический язык, так результат выполнения каждой инструкции есть логическое значение true или false.
  • Не требует соглашений с производителями программного обеспечения, то есть, если в Selenium WebDriver нет поддержки версии нового браузера - то вы не сможете составить тест. Для BASIC-ABC данная проблема не существует. BASIC-ABC в легкой, доступной и понятной форме позволяет эмулировать ЛЮБЫЕ действия пользователя с программным продуктом в виде набора скриптов.
  • Особая прелесть языка в том, что он является носителем ФОРМАТА для разработчиков программного обеспечения. Его функциональная полнота сама по себе определяет набор требуемых для интерфейсов реализаций. То есть, когда пользователь станет писать скрипт на языке BASIC-ABC для определенного продукта он естественным образом увидит ограниченность интерфейса этого продукта с точки зрения взаимодействия с пользователем. Например, если в интерфейсе:
    • - отсутствуют горячие клавиши
    • - отсутствуют контекстно-зависимые функции
    • - отсутствует возможность копирования-вставки
    • - отсутствует возможность отмены действий
    • - не показаны явные результаты выполнения различных действий
    • - и пр..

    все это будет выявлено на этапе написания скрипта.

Презентация BASIC-ABC Преимущества и недостатки языка Синтаксис языка Команды языка Файловая структура скрипта

Синтаксис языка:

< имя команды - одно или два ключевых слова > < один или несколько параметров с указанными значениями >

Список всех параметров:

  • btn параметр, определяющий какая кнопка мышки будет нажата. Значения: left или right. Записывается так: btn:left или btn:right
  • x параметр, определяющий координату x экрана в некоторых командах. Записывается так: x:число, например: x:0 или x:234
  • y параметр, определяющий координату y экрана в некоторых командах. Записывается так: y:число, например: y:0 или y:234
  • ms параметр, определяющий в миллисекундах время задержки.Записывается так: ms:1000 это одна секунда
  • text параметр, определяющий текст, который нужно напечатать. Записывается так: text:{тут то, что нужно напечатать}
  • key параметр, определяющий клавишу(или несколько), которые нужно нажать. Записывается так: key:название_клавиши или key:название_клавиши+название_клавиши. Например: key:ENTER или key:WIN+R
Презентация BASIC-ABC Преимущества и недостатки языка Синтаксис языка Команды языка Файловая структура скрипта

Команды языка:

Список команд:

  • nop - нет операций. Команда заглушка, ничего не делающая
  • mouse click - кликнуть кнопкой мышки
  • mouse move - переместить указатель мышки
  • execute until - исполнять, пока условие истинно или ложно
  • pause - приоставить выполнение скрипта на указанное время
  • hit - нажать клавишу на клавиатуре
  • type - напечатать текст
  • find context - найти область на экране
  • run script - запустить другой скрипт

nop

Нет операции. Интерпретатор скрипта, встречая эту команду, ничего не выполняет, команда возвращает логическое значение true. Используется для тестирования.

mouse click

Пример:

mouse click btn:left x:220 y:115

Команда используется для автоматического перемещения указателя мышки по указанным параметрами координатам и нажатию (клику) определенной параметром кнопки мышки

mouse move

execute until

pause

hit

Пример:

hit key:WIN+R

Команда используется для автоматического нажатия двух клавиш WIN и R

type

find context

run script

Презентация BASIC-ABC Преимущества и недостатки языка Синтаксис языка Команды языка Файловая структура скрипта

Файловая структура скрипта:

Поиск
Календарь
«  Ноябрь 2024  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz