Сегодня хочу предложить решение по автоматизации работы Qlik Sense Cloud, а именно автоматический загрузчик файлов данных. Хотя, конечно, правильное решение – это использование коннекторов ко всему спектру всевозможных данных с автоматическим обновлением данных в Qlik Sense Cloud, но пока список этих коннекторов не так велик, как хочется пользователю.

Скачать Робот автоматической загрузки файлов в Qlik Sense Cloud

Итак, для установки робота автозагрузки данных, нам нужно выполнить следующие шаги:

  1. Установить Selenium Webdriver.
  2. Установить AutoIT.
  3. Настроить код AutoIT и Selenium для вашей среды.
  4. Создать и запланировать задачу в планировщике заданий Windows.

НА ЗАМЕТКУ! Для работы с Selenium или AutoIT не нужно иметь опыта обширного работы с ними — разобраться с ними достаточно просто. Используя предложенное руководство, вам потребуется максимум четыре часа для решения всей задачи автоматической загрузки данных в Qlik Sense Cloud.

Установка Selenium Webdriver

Selenium Webdriver — инструмент для автоматизации реального браузера, как локально, так и удаленно, наиболее близко имитирующий действия пользователя, с открытым программным кодом. Также это и набор библиотек для различных языков программирования, позволяющих управлять браузером из программы, написанной на этом языке программирования.  Однако, мы не получим полный контроль над Windows GUI при помощи этого инструмента, поэтому мы будем использовать AutoIT для интеграции с диалоговым окном Windows для подключения к окну загружаемых файлов в Qlik Sense Cloud.

НА ЗАМЕТКУ!  При помощи Selenium можно (и даже нужно!) автоматизировать любые рутинные действия, выполняемые через браузер. Selenium напрямую вызывает команды браузера, используя родной для каждого конкретного браузера API. Как совершаются эти вызовы и какие функции они выполняют зависит от конкретного браузера.

В Selenium можно использовать разные языки (Java, C#, Ruby, Python, JavaScript). Мы же будем использовать Java для автоматической загрузки файлов данных в Qlik Sense Cloud.

Для запуска скрипта можно использовать любой браузер, но в этом примере я использую Firefox, который имеет специальный плагин от Selenium для записи действий пользователя, которые мы можем сконвертировать в Java.

Скачать Firefox с официального сайта.

Для дальнейшей работы робота нужно пройти шесть шагов, указанных на картинке, а именно установить Java, Eclipse, а также Selenium Webdriver Java Client. Я установил все на мой сервер. Также вам стоит установить среду разработки на ваш ПК.

Инструкция по установке Java для Selenium Webdriver Java

Настраивая Eclipse и Webdriver, вы создадите первый java-проект. После этого нужно запустить тест на GeckDriver, прежде чем создавать первое тестовое задание. Это позволит устранить возможные баги в вашей среде, прежде чем работать с кодом.

Теперь пойдем далее, займемся установкой AutoIt

Установка AutoIt

AutoIt — свободно распространяемый язык для автоматизации выполнения задач в Microsoft Windows. AutoIt использует симуляцию нажатия клавиш, движений мыши и манипуляции с окнами, элементами управления. Это позволяет автоматизировать задачи пользователя Windows, таким образом, какой невозможен или затруднён в других языках программирования.

Мы будем использовать его для определния диалогового окна Windows и симуляции нажатия клавиш. В вашей среде разработки, скачайте и установите AudIt. После этого мы можем перейти к тестированию и настройке кода для закачки файлов с данными в Qlik Sense Cloud.

Настройка кода

Итак, добавим код. Сначала настроим код AutoIt для работы с диалоговым окном Windows, а после этого настроим код Selenium Webdriver, который управляется через Qlik Sense Cloud.

Настройка кода: AutoIt

Откройте редактор скрипта SciTe в начальном меню и вставьте следующий скрипт.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

 

Итак, сначала по коду мы ожидаем открытие окна “File Upload”. Затем делаем переход в место, где хранятся файлы, а затем выбираем файлы, которые нужно загрузить. В строке 5 вам нужно указать, где находятся ваши файлы, а также список файлов с данными для загрузки в строке 17.

НА ЗАМЕТКУ! Если вы загружаете файлы с названием из более чем 259 букв, то вы можете либо укоротить имена, либо запустить скрипты дважды из Selenium-кода.

Итак, после настройки этого куска кода, нужно перейти в окно загрузки файлов в Qlik Sense Cloud. Затем откройте редактор скрипта SciTe, где у вас есть измененный код, нажмите F5 для запуска скрипта. Должны обновиться названия файлов

https://i0.wp.com/poverconsulting.com/wp-content/uploads/2017/03/FileUploadWindow.jpg?zoom=1.25&resize=438%2C230

НА ЗАМЕТКУ! В некоторых случаях потребуется указания название окна загрузки файлов, согласно языку интерфейса программы (русский/английский), например:

ControlSend(«Загрузка файлов», «», «[CLASS:Edit; INSTANCE:1]», «{ENTER}»)

После всех процедур сохраните файл скрипта (.au3). Для запуска файла в Selenium Webdriver, нужно сохранить его в формате .exe. В редакторе скрипта SciTe Script Editor нужно открыть инструменты и выбрать компиляцию. Теперь откройте директорию, где сохранен файл .au3, вы увидите там файл .exe с тем же именем. Мы используем этот файл в следующем разделе.

Настройка кода: Selenium Webdriver

Далее заменяем тесты на реальный скрипт, вставим код в новый проект Eclipse.

1

 

В первой строке задайте название созданного проекта.

package automationFramework;

В 14 измените название пути на то, где вы сохранили файл geckodriver.exe.

System.setProperty(«webdriver.gecko.driver», «C:\\\\YourPath\\geckodriver.exe»);

В строке 27 и 31 добавьте имя пользователя и пароль Qlik Sense Cloud.

driver.findElement(By.id(«MemberLoginForm_LoginForm_QUsername»)).sendKeys(«john.doe»);

driver.findElement(By.id(«MemberLoginForm_LoginForm_qPassword»)).sendKeys(«123456»);

В строке 47 замените текущую ссылку на вашу собственную.

НА ЗАМЕТКУ! Войдите в ваш аккаунт Qlik Sense Cloud, нажмите по вашей рабочей области, скопируйте адрес ссылки.

driver.get(«https://us.qlikcloud.com/hub/groups/myWorkSpaceID»);

В строке 56 измените путь на то место, где вы сохранили скрипт AutoIT с исполняемым файлом из предыдущего шага.

Runtime.getRuntime().exec(«C:/MyPath/AutoItScript.exe»);

После всех изменений сохраните скрипт и запустите исполнение скрипта.

НА ЗАМЕТКУ! В строке 59 указано время ожидаемой загрузки файла с данными. Если для этого нужно дополнительное время, то измените параметр, указанный в этой строке кода.

Добавление нового кода

Если вы хотите добавить дополнительные действия в скрипте, то вам будем полезно использовать плагин для Firefox, Selenium IDE

https://i1.wp.com/poverconsulting.com/wp-content/uploads/2017/03/Download_Selenium_IDE.jpg?zoom=1.25&resize=438%2C216

После установки расширения, выберите параметры его отображения в панели инструментов.

https://i0.wp.com/poverconsulting.com/wp-content/uploads/2017/03/Customize_Firefox_Menu.jpg?zoom=1.25&resize=438%2C200

После этого при открытии Qlik Sense Cloud, выбрав Selenium IDE, откроется дополнительное окно, в котором будут записываться ваши действия. Запуск записи должен стартовать автоматически. Если это не произойдет, то вам нужно нажать на кнопку записи.

https://i0.wp.com/poverconsulting.com/wp-content/uploads/2017/03/SeleniumIDE_Recording.jpg?zoom=1.25&resize=438%2C230

Selenium IDE по умолчанию записывает все в HTML. Язык скрипта можно изменить при копировании и вставки кода в Eclipse, сменив формат на Java.

http://poverconsulting.com/wp-content/uploads/2017/03/_d_improd_/SeleniumIDE_Clipboard_Format_f_improf_481x391.jpg

Так, для обработки действий в браузере в формат Java не нужно быть гуру разработки на Java.

Настройка планировщика

Итак, после обработки всех кодов и их конфигурации, пришло время автоматизировать процесс запуска задания. В моем примере используется планировщик Windows, но можно использовать и другие планировщики.

Итак, у меня такой способ решения этой задачи – создать исполняемый файл jar, а затем — командный файл. Итак, инструкцию по решению этих задач: откройте Eclipse и экспортируйте код в jar-файл. Затем откройте текстовый редактор и вставьте такую строку:

java -jar «C:\YourPath\UploadDataFiles.jar»

Затем сохраните текстовый файл с расширением .bat.

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

Во вкладке Триггеры определите триггер задачи, который соответствует вашей цели.

Во вкладке действие добавьте действие нажмите создать действие – запуск программы и выберите ваш bat-файл.

НА ЗАМЕТКУ! Проверьте работу задачи в ручном режиме, а затем включайте ее на автоматическое выполнение.

Вот собственно и вся процедура создания автоматизированного робота загрузки данных в Qlik Sense Cloud. Отличных вам разработок с Qlik и новых идей!