Jun 16 2011

QA: автоматизация валидации HTML-страниц

Category: QAingvar @ 02:25


В предыдущей статье Локальный W3C XHTML валидатор для Mac OS X рассматривался способ запуска валидатора HTML-страниц локально для ускорения процесса тестирования. Сам процесс проверки HTML-страниц можно автоматизировать используя различные инструменты, например: Selenium, phpUnit, PEAR пакет Services_W3C_HTMLValidator…

Рассмотрим такой инструмент, как Services_W3C_HTMLValidator. Этот PEAR пакет представляет из себя ООП интерфейс для взаимодействия с API cервиса W3c HTML Validator.


Возможности Services_W3C_HTMLValidator:

  • возможность использовать своей сервис w3c, например локально или на отдельном сервере
  • валидация отдельных страниц
  • валидация html кода
  • проверка состояния пройден тест или нет

Ограничения Services_W3C_HTMLValidator:

  • пакет не может проверить сам HTML-страницы без дополнительных инструментов, если страницы доступны только после авторизации

Алгоритм валидации всех HTML-страниц на сайте:

  • для получения HTML-кода используем дополнительный инструмент, который позволяет «ходить» по сайту, с возможностью авторизации и выполнения каких-нибудь простых действий. В качестве такого инструмента воспользуемся Goutte клиент от автора фреймворка Symfony Fabien Potencier, Goutte доступен в качестве phar архива Goutte.phar. Клиент работает  только под PHP 5.3
  • Goutte возвращает HTML-код запрашиваемой страницы
  • проводим валидицию полученного HTML-кода с помощью Services_W3C_HTMLValidator
  • для автоматизации проверки большого количества страниц можно воспользоваться например phpUnit

Установка Services_W3C_HTMLValidator:

pear install Services_W3C_HTMLValidator

Пример валидации HTML-страницы:

<?php
require_once 'Services/W3C/HTMLValidator.php';

$validator = new Services_W3C_HTMLValidator();
$validator->validator_uri = 'http://localhost/w3c-validator/check'; // http://validator.w3.org/check
$r = $validator->validate('http://google.com/');
if ($r->isValid()) {
  echo $r->uri . ' is valid!';
}
else {
  echo $r->uri . ' is NOT valid!';
}

Что почитать:

Tags: , ,

Leave a Reply