Selenium: существует ли какой-либо инструмент покрытия кода JS (JavaScript), который мы можем интегрировать с Selenium Server/RC
Selenium: существует ли какой-либо инструмент покрытия кода JS (JavaScript), который мы можем интегрировать с Selenium Server/RC
Привет,
Я хочу, чтобы покрытие кода JS выполнялось моим Selenium Test Suite
Есть ли какой-нибудь инструмент покрытия кода, который можно интегрировать с моей существующей средой Selen RC?
6 ответов
Я нашел решение для своих нужд, доступно несколько инструментов, но мне нужен инструмент, который можно легко интегрировать в мою существующую автоматизацию
Инструментом является ОАО http://tntim96.github.io/JSCover/
Просто запустите сервер
- Запустите сервер java -cp JSCover-all.jar jscover.server.SimpleWebServer . 8080
Запустите прокси-сервер java -jar target/dist/JSCover-all.jar -ws --proxy --port=3128 --report-dir=target
Добавьте прокси в ваш Webdriver для указанного порта, 3128 в моем случае
После выполнения теста Generate Reports с помощью
((JavascriptExecutor) driver).executeScript("jscoverage_report();");
Вы можете добавить эту строку, где вы выходите из WebDriver или Test Case
Теоретически вы можете использовать любой инструмент покрытия, который использует код JavaScript для сбора данных покрытия.
Например, вы можете использовать JSCoverage либо в прокси-режиме (для инструментов в реальном времени), либо для статических инструментов, чтобы запускать тесты Selenium из инструментального кода.
Одним из технических препятствий может быть разработка способа накопления данных о покрытии на нескольких страницах. У выбранного вами инструмента покрытия может быть поддержка накопления данных из нескольких прогонов страниц. Если нет, вам, возможно, придется справиться с этим битом самостоятельно, но это, вероятно, не является чем-то тривиальным.
Посмотрите на https://github.com/yui/yuitest/wiki/Code-Coverage
Я интегрировал этот инструмент в свои тесты Selenium некоторое время назад. Вам нужно немного поработать, чтобы собрать информацию о покрытии до изменения страницы (в любом случае js вызывает перезагрузку страницы, ссылку и т. Д.)
После того, как вы все настроите, он будет полностью покрывать все js, исполняемые при загрузке Selenium и тестировать страницы вашего сайта.
PS: Даже если он был специально адаптирован для теста YUI, вы можете использовать его с селеном.
Не знает об инструменте для Selenium, но JsTestDriver имеет дизайн, очень похожий на Selenium RC (может запускать тесты из командной строки, и они запускаются на сервере, который управляет браузерами без головы) и предоставляет информацию о покрытии кода.
IntelliJ интегрируется с JsTestDriver и обеспечивает визуальное отображение информации о покрытии.
Я не знаю, чего вы пытаетесь достичь, но:
- Selenium тестирует окончательный результат, как видно на самой странице.
Так что на самом деле не имеет значения, является ли его PHP, HTML, JSP, ASP или.NET - Selenium предназначен для имитации конечного пользователя и щелчка по конечному приложению - конечному HTML-коду, сгенерированному из того, что находится под капотом.
Selenium также не так хорош для тестов покрытия кода - один кусок кода может быть на многих страницах - поэтому лучший подход с селеном состоит в том, чтобы сделать "пользовательское" покрытие - попытаться охватить все возможные действия, которые живой человек мог бы совершить с вашей страницей
Не существует конкретного инструмента, который мог бы интегрироваться с Selenium для покрытия JS. Однако существует множество инструментов, которые тестируют JS на каждой странице и могут определить, были ли ошибки в JS, выполняющемся на вашей веб-странице. Это может быть не идеальным решением, но на каждой странице вы будете иметь меру uptil, которая указывает, как правильно выполняется JS на тестируемой веб-странице. Для этого есть два решения:
1.) JSErrorCollector API: он будет интегрирован напрямую с Selenium и сообщит, есть ли какие-либо ошибки на странице. Может быть найдено по адресу: http://mguillem.wordpress.com/2011/10/11/webdriver-capture-js-errors-while-running-tests/
2.) Полноценные инструменты покрытия JS: здесь есть отличный список инструментов, которые по существу помогут вам в освещении JS на ваших веб-страницах. Можно найти по адресу: Инструменты модульного тестирования JavaScript для TDD