Тестирование живого сайта с помощью QUnit - PullRequest
4 голосов
/ 08 декабря 2011

Могу ли я протестировать живые сайты, используя QUnit?Например, могу ли я написать тест, который говорит:

  • Перейти на google.com
  • Введите поисковый запрос
  • Нажмите "Поиск Google"
  • Проверьте, есть ли 10 результатов и 2 объявления

Будет ли QUnit подходящим инструментом для такого "живого" тестирования?

Ответы [ 2 ]

7 голосов
/ 16 декабря 2011

Этого можно добиться, используя qunit, если qunit - единственный инструмент / среда тестирования, доступная для вас, и тестируемая страница позволяет получать запросы GET.

Как это сделать, вы можете сделать ajax-вызов на страницу, которую вы тестируете, используя JSONP, и получить ответ.Тогда вы бы заявили, что в ответе существуют определенные элементы.

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

Я бы использовал qunit для самостоятельного тестирования компонентов javascript без зависимостей.

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

Удачи.

5 голосов
/ 17 декабря 2011

Хотите протестировать свой собственный сайт или случайный живой сайт?

  • Если вы хотите протестировать свой собственный сайт Вы можете встроить работающий сайт в iframe и выполнять действия в пользовательском интерфейсе в своих тестах.
  • Если вы хотите протестировать действующие веб-сайты, такие как google.com, вам нужно выполнить эту настройку на стороне сервера, поскольку вы не можете получить к ним доступ из javascript / QUnit.

Когда вы являетесь владельцем такого сайта, как google.com, вы можете сделать:

var submitted = false;
function starttests(){
     if(!submitted)
     test("testInput", function() {
         expect(1);
         submitted = true;

         var dom = iframe.contentWindow || iframe.contentWindow.document;
         jQuery(dom).find('input[type=text]').val("Testing google.com");
         jQuery(dom).find('form').submit();
         ok( true, "form submitted" );
     });

     else
     test("testResult", function() {
         var dom = iframe.contentWindow || iframe.contentWindow.document;

         // Check for elements in dom.
     });
}

iframe.onload(starttests);
iframe.src = "http://google.com";
...