2012-02-29 2 views
12

Селен: Есть ли какой-либо инструмент JS (JavaScript) покрытия кода, который можно интегрировать с Selenium сервера/RCСелен: Есть ли JS (JavaScript) инструмент покрытия кода, который можно интегрировать с Selenium сервера/RC

Привет ,

Я хочу покрытие кода JS сделали моего селен Test Suite

есть ли какой-либо инструмент покрытия кода, который может быть интегрирован с моей существующей структурой Selenium RC ??

ответ

2

Я нашел решение для моей потребности, есть несколько инструментов, доступные, но я хочу инструмент, который может быть интегрирован с существующей автоматизацией легко

Tool является JSCover http://tntim96.github.io/JSCover/

Просто запустите сервер

  1. Запустить сервер java -cp JSCover-all.jar jscover.server.SimpleWebServer. 8080
  2. Run Proxy Server Java -jar цель/расстояние/JSCover-all.jar -ws --proxy --port = 3128 --report-Dir = целевой

  3. Добавить прокси-сервер в вашем WebDriver для порта указано, 3128 в моем случае

  4. После выполнения теста Создание отчетов с помощью

    ((JavascriptExecutor) driver).executeScript("jscoverage_report();"); 
    

вы можете добавить эту строку, где вы выйти WebDriver или Case Test

1

Я не знаю, что вы пытаетесь достичь, но:

  • Селен тестирование конечной продукции, как это видно на самой странице.

Так что это не имеет значения, если его PHP, HTML, JSP, ASP или .NET - селен предназначен для имитации конечного пользователя и нажмите окончательное приложение - окончательный HTML-код, созданный тем, что находится под капот.

Selenium также не так хорош для тестов покрытия кода - один код может быть на многих страницах - поэтому лучший подход с селеном заключается в том, чтобы сделать «пользовательский» охват - попытаться покрыть все возможные действия, сделайте со своей страницей

+1

моя ошибка, я говорил о покрытии JS (Javascript). Я хочу знать, сколько JS моих тестов на селен. Это помогает мне в проверке того, что я рассмотрел большинство случаев, и это помогает мне сообщать, есть ли неиспользуемый JS-файл. Может случиться так, что один или два JS-файла никогда не используются, поэтому использование кода с селеном я могу сообщить, что эти JS-файлы не используются и могут быть мусором. –

+0

Я не знаю об этой возможности - конечно, щелчок Selenium и взаимодействие с пользователем обгоняют некоторые действия javascript. Вы можете контролировать их, но, вероятно, нет инструментов, чтобы сказать вам, например. «accounts.js никогда не использовался» –

+0

у меня может не быть инструмента, который может сказать мне, какой JS никогда не использовался, но я думаю, что есть такие инструменты, как сонар, который может определить, какие JS используются, и там используется процент, поэтому я могу также определить, какие JS никогда не используются. Я просто хочу, есть ли какой-либо инструмент для покрытия кода, который можно легко интегрировать с селеном. –

2

Не известно о инструменте для Selenium, но JsTestDriver имеет конструкцию, очень похожую на Selenium RC (может запускать тесты из командной строки и запускаться на сервере, который беззвучно управляет браузерами) и обеспечивает покрытие кода Информация.

IntelliJ интегрируется с JsTestDriver и предоставляет visual display of coverage information.

5

В теории вы можете использовать любой инструмент покрытия, который позволяет использовать код JavaScript для сбора данных о покрытии.

Например, вы можете использовать JSCoverage либо в режиме прокси (для приборов реального времени), либо для статического измерительного прибора для запуска тестов Selenium с инструментального кода.

Одним из технических препятствий может быть создание способа накопления данных покрытия на нескольких страницах. Инструмент покрытия по вашему выбору уже может иметь поддержку для накопления данных из нескольких запусков страниц. Если нет, вам, возможно, придется обработать этот бит самостоятельно, но это, вероятно, не что-то тривиальное.

0

Нет специального инструмента, который может интегрироваться с 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 unit test tools for TDD

+1

Вопрос о http://en.wikipedia.org/wiki/Code_coverage –

1

Посмотрите на https://github.com/yui/yuitest/wiki/Code-Coverage

Я интегрирован этот инструмент в моем Selenium тесты время назад. Вам нужно немного потрудиться, чтобы собрать информацию о покрытии до изменения страницы (в любом случае js запускает перезагрузку страницы, ссылку и т. Д.)

После того, как вы настроили все, оно будет полностью охватывать любые js, выполненные в то время как загрузка Selenium и протестируйте страницы своего сайта.

PS: Даже если он был специально адаптирован для теста YUI, вы можете использовать его с селеном.

+0

Можете ли вы дать более подробную информацию о том, как вы зарегистрировали js-покрытие в то время как селен бежит? – carambir

+0

Перед каждым завершением теста попросите selenium запустить JS на текущей странице: YUITest.TestRunner.getCoverage (YUITest.CoverageFormat.JSON). Это вернет данные о покрытии, которые могут хранить где-то селен. Затем, используя банку отчетов yui, вы можете создать отчет о покрытии для всех данных всех тестов. Для полного и точного покрытия вам необходимо позаботиться о смене страницы (например, вызвано событиями на странице). Сделайте что-то вроде инструментария кода в js, чтобы вызвать функцию покрытия yui перед каждой сменой страницы. – Fabien

Смежные вопросы