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

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Презентация 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 и интерпретатор закончил работу

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

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

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


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