Перейти к содержимому

Фотография

Тестирование с помощью Selenium + mink


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 bayanruby

bayanruby

    Новый участник

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Богданов Артём Владимирович

Отправлено 30 мая 2013 - 09:23

Никогда не тестировал, с помощью чего-то, всегда всё вручную..
Тут поставили задачу написать тесты для проверки пару моментов в веб-приложении.
Предложили Selenium + mink (http://mink.behat.org/) так как приложение я пишу на php.

Скачал selenium, почитал, для старта, эту статью http://javascript.ru...ted/selenium-rc
потыкал в консоле, вроде легко и понятно.

Скачал mink, помучался с composer'ом, но установил.
Создал папку tests, внутри папку actions и файл index.php
в index.php подключаю библиотеку mink и экшены которые будут в папке actions

структура получается такая:
tests
-actions
--тут будут экшены всякие
-index.php

Подготавливаем index.php

<?php

require_once dirname(__FILE__) . '/../testSait/vendor/autoload.php'; //подключаем библиотеку mink

use \Behat\Mink\WebAssert; //импортирование WebAssert класса

$driver = new \Behat\Mink\Driver\Selenium2Driver('firefox'); //подключаем драйвер, используем браузер firefox
$session = new \Behat\Mink\Session($driver); //пихаем драйвер в сессию
$session->start(); //стартуем

$webAssert = new WebAssert($session); //создаем объект класса \Behat\Mink\WebAssert

//пихем в массив название экшенов
$actions = array(
    'signUp',
    'invite',
);

//тут мы их подключаем
foreach ($actions as $val) {
    require_once 'actions/' . $val . '.php';
}

//если тесты пройдут без ошибок, тут завершится сессия и браузер закроется
$session->stop();


Начинаю с проверки регистрации.
Логика у меня такая:
- открываем страницу регистрации
- вводим в поля данные
- нажимаем кнопку add
- переходим на не гостевую страницу и проверяем какой-нибудь кусок текста которого нет у гостевых пользователей.
- если тест проработал без ошибок - регистрация работает хорошо!

код экшена регистрации:

<?php

$session->visit('http://sait.lc/signup'); //переходим на страницу регистрации
    //поиск элементов и вставка данных
    $session->getPage()->find('css', 'input#firstName')->setValue('Джон');
    $session->getPage()->find('css', 'input#lastName')->setValue('Смит');
    $session->getPage()->find('css', 'input#name')->setValue('Test');
    $session->getPage()->find('css', 'input#email')->setValue('test@sait.lc');
    $session->getPage()->find('css', 'input#phone')->setValue('+375 29 001 02 03');
    $session->getPage()->find('css', 'input#password')->setValue('1234');

    //кликаем по кнопке
    $session->getPage()->find('css', 'input#button')->click();

//переходим на не гостевую страницу
$session->visit('http://test.sait.lc/timesheet');
    //проверяем текст на не гостевой странице
    $webAssert->elementTextContains('css', '.selenium-h3', 'Week by week timesheet');


Автоматизированные тесты примерно так пишутся?)
  • 0

#2 yarick

yarick

    Новый участник

  • Members
  • Pip
  • 36 сообщений
  • ФИО:Новиков Ярослав
  • Город:Екатеринбург

Отправлено 07 июня 2013 - 06:57

Автоматизированные тесты примерно так пишутся?)


Да примерно так и пишутся, т.е. суть в том, что ты используешь программные средства для выполнения каких либо действий и проверки результатов их выполнения, что помогает тебе к примеру, сократить время тестирования и упростить его процесс.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных