вторник, 16 януари 2007 г.

Отвъд Selenium или как да автоматизираме досадните задачи

В последните дни имам удоволствието да работя с инструмента да автоматизирано теставане на уеб приложения Selenium. С две думи той позвалява да запишеш действията, които правиш в браузъра и след това да ги пускаш отново и отново. Също така дава възможност да провериш дали действието, което си извършил (например натискане на бутон) e успяло (като провериш дали на страницата се появил определен текст).

Аз, обаче, го използвах за нещо по-различно - да автоматизирам качването на картинки в фото галерията Picasa Web и клипове - в Google Video. Проблемът е, че качването на картинка по картинка е доста досадно. Не желая да ползвам Picasa за Linux за тази цел, защото използвам свободната digikam на моя компютър; Google Video Uploader - това осакатено Java приложение за Linux потребители - e пълно с "буболечки" и просто не работи. "Ко прайм ся?". Аз искам да укажа директория с картинки/видео файлове и след малко да ги видя в "Интернет"

Ето тук се намесва Selenium. Записаните стъпки за качване на една картинка се експортират като HTML файл със следната проста и лесна за рабиране структрура:

<tr>
<td>clickAndWait</td>
<td>link=Upload Photos</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>file0</td>
<td>/home/svilen/alex_koleda/convert/DSCF3616.JPG</td>
</tr>
<!-- може да се попълнят още 4 полета с картинки-->
<tr>
<td>clickAndWait</td>
<td>startbutton</td>
<td></td>
</tr>

За да кача N снимки, просто трябва да повторя тези стъпки N пъти с различна картинка. С помощта на един прост шаблон на Template::Toolkit аз мога да го генерирам такъв HTML файл с много картинки и да оставя Selenium IDE да контролира браузъра и той сам да ги качва.

Ето как приложих тази идея:
  1. Инстлирах си Selenium IDE разширението за Firefox
  2. Създадох шаблон picasa.tt, който генерира Selenium инструкции за всяка една картинка от дадена директория
  3. С помощта на този Template::Toolkit шаблон генерирах теста (програмата tpage се инсталира при инсталирането на Template::Toolkit):
    tpage --eval_perl --define dir=/parh/to/images picasa.tt > test.html
  4. Отворих Picasa Web, създадох нов албум и го отворих (все още празен)

  5. Стартирах Selenium IDE от Firefox > Tools > Selenium IDE и отворих от Selenium IDE > File > Open новосъздадения test.html

  6. Натиснах зелената стрелкичка за да стартира теста
Изведнъж, все едно дух се е вселил в браузара ми, картинките започнаха да е се качват сами :)

Същия трик го прилагам и при качването на видео файлове в Google Video

Няма коментари: