<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Codeception on Илья Маринин</title>
    <link>https://www.marinin.pw/ru/tags/codeception/</link>
    <description>Recent content in Codeception on Илья Маринин</description>
    <generator>Hugo -- 0.138.0</generator>
    <language>ru-RU</language>
    <lastBuildDate>Sat, 01 Jul 2017 13:41:35 +0500</lastBuildDate>
    <atom:link href="https://www.marinin.pw/ru/tags/codeception/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Установка Selenium Server на Ubuntu 16.04</title>
      <link>https://www.marinin.pw/ru/posts/selenium_ubuntu/</link>
      <pubDate>Sat, 01 Jul 2017 13:41:35 +0500</pubDate>
      <guid>https://www.marinin.pw/ru/posts/selenium_ubuntu/</guid>
      <description>&lt;p&gt;Для разработки простых сайтов часто написание модульных и функциональных тестов становится излишним. Иногда нужно просто удостовериться, что с точки зрения конечного пользователя все работает корректно: кнопки кликаются, всплывающие окна появляются, индикаторы меняют состояние, клиентская валидация срабатывает как нужно, а скрипт не валится с ошибкой при отправке формы. Функциональные тесты такой уверенности не дают, так как не умеют тестировать js-код, а тестировать форму в сотый раз руками занятие неблагодарное (особенно когда у нас много важной клиентской логики). Самую критичную и часто используемую логику сайта лучше дополнительно протестировать с помощью приемочных тестов.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Для разработки простых сайтов часто написание модульных и функциональных тестов становится излишним. Иногда нужно просто удостовериться, что с точки зрения конечного пользователя все работает корректно: кнопки кликаются, всплывающие окна появляются, индикаторы меняют состояние, клиентская валидация срабатывает как нужно, а скрипт не валится с ошибкой при отправке формы. Функциональные тесты такой уверенности не дают, так как не умеют тестировать js-код, а тестировать форму в сотый раз руками занятие неблагодарное (особенно когда у нас много важной клиентской логики). Самую критичную и часто используемую логику сайта лучше дополнительно протестировать с помощью приемочных тестов.</p>
<p>Как мы знаем, для php существует <a href="http://codeception.com">Codeception</a>, который прекрасно интегрируются с таким чудесным инструментом как <a href="http://www.seleniumhq.org/">Selenium</a>.</p>
<p>В данной заметке я опишу, как установить и запустить Selenium Server на свой машине для облегчения разработки и запуска приемочных тестов.</p>
<p>Чтобы не отвелкаться на дополнительные инструкции примем за основу, что все необходимое окружение (веб-сервер, php, composer, jdk) уже установлено, а в самом composer.json проекта прописана зависимость от &ldquo;codeception/codeception&rdquo;. Тестировать проект будем в Chrome (желательно обновиться до последней версии браузера).</p>
<h2 id="установка-недостающего-по">Установка недостающего ПО</h2>
<ol>
<li>Первым делом удостоверимся, что установлены необходимые расширения php: <code>sudo apt-get install php-curl php-dom php-mbstring</code>;</li>
<li>Скачиваем последнюю версию Selenium Server <a href="http://www.seleniumhq.org/download/">здесь</a> и копируем в удобную для себя папку;</li>
<li>Забираем последнюю версию ChromeDriver <a href="https://sites.google.com/a/chromium.org/chromedriver/downloads">тут</a> и распаковываем в папку с Selenium Server;</li>
</ol>
<h2 id="запуск">Запуск</h2>
<p>В accceptance.suite.yml прописываем необходимые параметры примерно так:</p>
<pre tabindex="0"><code>class_name: AcceptanceTester
modules:
    enabled:
        - WebDriver:
            url: https://test.dev
            host: 127.0.0.1
            browser: chrome
</code></pre><p>Запускаем сервер Selenium:</p>
<pre tabindex="0"><code>java -Dwebdriver.chrome.driver=&lt;selenium_server_dir&gt;/chromedriver -jar &lt;selenium_server_dir&gt;/selenium-server-standalone-3.4.0.jar
</code></pre><p><strong>selenium_server_dir</strong> следует заменить на путь до папки с Selenium Server.</p>
<p>Идем в папку проекта и выполняем что-то вроде <code>vendor/bin/codecept run</code> . Данная команда попытается выполнить модульные, функциональные, а затем и приемочные тесты. В последнем случае откроется браузер Chrome в котором Selenium будет умело имитировать действия пользователя.</p>
<p><a href="http://codeception.com/docs/modules/WebDriver">Здесь</a> представлен API модуля WebDriver для Codeception, который можно использовать для написания собственных приемочных тестов.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
