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

Фотография

Автоматизация тестов в SimpleTest (PHP)


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

#1 mrjazz

mrjazz

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:denis sheremetov

Отправлено 06 июля 2005 - 16:52

Хочу посоветоваться с общественностью.
Если люди активно использующие SimpoleTest для тестирования?
Познакомился с ним недавно, постепенно осваиваю, возникла идея написания несложного мастера для автоматизации написания тестов WEBUI.
Кому интересно можно посмотреть - http://mrjazz.design...nload/STgui.zip
(255Kb). Возможно я просто изобретаю велосипед?
Скорость работы SimpleTest несколько огорчает, есть идея написать свой несложный скриптовый язык для тестов интерфейса.
Хотелось бы узнать мнение относительно рациональности подобных разработок.
  • 0

#2 dlg99

dlg99

    Специалист

  • Members
  • PipPipPipPipPip
  • 609 сообщений
  • ФИО:Andrey Yegorov
  • Город:Redmond, WA

Отправлено 06 июля 2005 - 20:01

Хотелось бы узнать мнение относительно рациональности подобных разработок.


http://selenium.thoughtworks.com/ :help:
  • 0
Andrey Yegorov. Изображение

#3 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 06 июля 2005 - 20:21

Однозначно, Селениум.
JavaScript рулит, не надо делать новых языков без особой на то необходимости.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#4 mrjazz

mrjazz

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:denis sheremetov

Отправлено 07 июля 2005 - 09:16

http://selenium.thoughtworks.com/


Спасибо за ссылку, действительно очень интересный проект. Чего только стоит XPath на JavaScript! Начал только разбираться, не могу понять там есть возможность автоматизированного написания тестов? Собственно этого ради и затевалось. Визуальная среда для написания тестов.
  • 0

#5 dlg99

dlg99

    Специалист

  • Members
  • PipPipPipPipPip
  • 609 сообщений
  • ФИО:Andrey Yegorov
  • Город:Redmond, WA

Отправлено 07 июля 2005 - 14:03

Чего только стоит XPath на JavaScript!

Просмотр сообщения


Сразу предупреждаю - xpath под IE тормозит жутко. :help:


Начал только разбираться, не могу понять там есть возможность автоматизированного написания тестов? Собственно этого ради и затевалось. Визуальная среда для написания тестов.

Просмотр сообщения


Народ умудряется связывать это с Fitnesse.
Получается визуально :dirol:
Мне показалось не слишком удобным :blush:

Я пошел другим путем :good:
Я пишу testFixtures на JavaScript-е, из которых потом генерируется html с selenium-овскими коммандами. :good:

В итоге я имею: GUI Map, ~application model, ability to reuse code (selenium lacks this :blush: ).

+ Возможность запускать тесты под Safari, IE.Win, Firefox Win/Mac. :good:

Никакого capture-playback.
Только code->generate->playback :focus:
Но это все быстро. И очень просто.

Из визуальных средств - редактор на выбор (Visual studio, Eclipse, ...) + IE DOM Inspector. :tease:

Ниже приведен пример теста (выдрано из рабочего suite, остальные test cases убраны, дабы не мешались).
Из него одного генерируется последовательность из ~650 селениумовских комманд.

this.test_008_Recents= function( aut )
    {
    this.description = "Recents";
    function comment( text ) { aut.ui.comment( text ) };
    
    this.setUp = function()
        {
        aut.open();
        aut.login.login_as( aut.cfg.user.valid_name, aut.cfg.user.valid_pass );
        }

    this.tearDown = function()
        {
        aut.main.logout();
        aut.login.is_ok();
        }

    this.testCanHaveUpTo_10_Recents = function()
        {
        comment( "clear recents" );
        aut.main.recents.clear();
        aut.main.recents.is_blank();
        
        comment( "add " + (aut.main.recents.max_recents + 1) + " customers" );
        for( var i = 0; i < aut.main.recents.max_recents + 1; ++i )
            {
            comment( "    add: " + (i + 1) )
            aut.add_customer();
            aut.customers.ee.is_view_ok();
            
            comment( "    navigate away" );
            aut.main.choose_section( "Customers" );
            aut.customers.is_ok();
            }
            
        comment( "verify that exactly " + aut.main.recents.max_recents + " Recents exist" )
        for( var i = 0; i < aut.main.recents.max_recents; ++i )
            {
            aut.ui.verify_element_present( aut.ui_map.main.recents.lnk_fn_link_id( i ) );
            }
            
        aut.ui.verify_element_not_present( aut.ui_map.main.recents.lnk_fn_link_id( aut.main.recents.max_recents ) );

        comment( "try to navigate all of them" );
        
        for( var i = 0; i < aut.main.recents.max_recents; ++i )
            {
            aut.ui.click( aut.ui_map.main.recents.lnk_fn_link_id( i ) );
            aut.customers.ee.is_view_ok();
            
            aut.main.choose_section( "Customers" );
            aut.customers.is_ok();
            }
            
        comment( "clear recents" );
        aut.main.recents.clear();
        aut.main.recents.is_blank();
        }
    }

  • 0
Andrey Yegorov. Изображение

#6 mrjazz

mrjazz

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:denis sheremetov

Отправлено 08 июля 2005 - 08:28

Лихо конечно! Списибо за столь подробный ответ!
Но как по мне не так уж это визуально... А я добиваюсь именно этого (окончательно убедился в том что проект имеет право на жизнь). Прикрутил скриптовый интерпретатор с паскалевским синтаксисом, продолжаю ковырят, по старой ссылке можно скачать новую версию. Самому интеремно что из этого выйдет. Конечно работать это будет только в IE (это ограничение) но в остальном! Гибкость и простота! А главное все визуально! Если это кому нибудь интересно, пишите буду держать в курсе развития проекта.
  • 0

#7 dlg99

dlg99

    Специалист

  • Members
  • PipPipPipPipPip
  • 609 сообщений
  • ФИО:Andrey Yegorov
  • Город:Redmond, WA

Отправлено 08 июля 2005 - 14:31

Но как по мне не так уж это визуально... А я добиваюсь именно этого (окончательно убедился в том что проект имеет право на жизнь). Прикрутил скриптовый интерпретатор  с паскалевским синтаксисом, продолжаю ковырят, по старой ссылке можно скачать новую версию. Самому интеремно что из этого выйдет.

Просмотр сообщения


Тут дело такое.
Если хочется попрограммировать для удовольствия - то выбор один.
Если нужно тесты автоматизировать, причем срок - "вчера", то другой.
:good:

Конечно работать это будет только в IE (это ограничение) но в остальном! Гибкость и простота! А главное все визуально! Если это кому нибудь интересно, пишите буду держать в курсе развития проекта.

Просмотр сообщения


Замечательно.
Но у меня случай из второго "если".
И возможность тестирования под Safari/Firefox несколько критична.

Попробуйте проект на sourceforge вести - может единомышленников найдете.
Или сделайте visual interface over existing project (selenium/watir/...).

Б.Г. в помощь. :dirol:
  • 0
Andrey Yegorov. Изображение

#8 mrjazz

mrjazz

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:denis sheremetov

Отправлено 08 июля 2005 - 14:39

Спасибо за комментарии

Или сделайте visual interface over existing project (selenium/watir/...).


А это что?
  • 0

#9 dlg99

dlg99

    Специалист

  • Members
  • PipPipPipPipPip
  • 609 сообщений
  • ФИО:Andrey Yegorov
  • Город:Redmond, WA

Отправлено 08 июля 2005 - 14:57

Или сделайте visual interface over existing project (selenium/watir/...).


А это что?

Просмотр сообщения


Есть selenium. Есть watir.
Они делают то, что нужно (насколько я понимаю). Но - не визуально.

Попробуйте сделать визуальную среду для создания тестов в формате, совместимом с существующими тулзами. Вокруг них есть уже сложившееся community. Используйте их опыт. Помогите им своим опытом.
И Джа поможет Вам. :dirol:

P.S. есть для selenium-а test recorder. Называется Selenium Assist. но у меня он не прижился :good:
  • 0
Andrey Yegorov. Изображение

#10 mrjazz

mrjazz

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:denis sheremetov

Отправлено 12 июля 2005 - 11:52

Есть selenium. Есть watir.
Они делают то, что нужно (насколько я понимаю). Но - не визуально.

Попробуйте сделать визуальную среду для создания тестов в формате, совместимом    с существующими тулзами. Вокруг них есть уже сложившееся community. Используйте их опыт. Помогите им своим опытом.
И Джа поможет Вам.  :new_russian:


Да, спору нет... Но JavaScript - не моя парафия - 100%.
А опыт других проектов я бесспорно использую, вот например благодаря одному freeware проекту у меня поддержка скриптового языка, а другому opensource полноценный редактор кода.

P.S. есть для selenium-а test recorder. Называется Selenium Assist. но у меня он не прижился  :secret:

Просмотр сообщения

Огромное спасибо за еще одну полезную ссылку
  • 0

#11 dlg99

dlg99

    Специалист

  • Members
  • PipPipPipPipPip
  • 609 сообщений
  • ФИО:Andrey Yegorov
  • Город:Redmond, WA

Отправлено 12 июля 2005 - 13:51

Да, спору нет... Но JavaScript - не моя парафия - 100%.


дык, watir - на Ruby написан. и тесты для него AFAIK на ruby же и пишутся.

Selenium - вообще все равно на чем написан :new_russian:

то, что я тесты на JavaScript писал - это просто:

1. дело привычки

2. слабая надежда на то, что руки дойдут и я вместо WSH-a буду это дело прямо в browser-e запускать.

а так - можно было и python, perl или ruby писать (минус п.2). С тем же успехом.
  • 0
Andrey Yegorov. Изображение

#12 Vidocq

Vidocq

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

  • Members
  • Pip
  • 22 сообщений

Отправлено 22 июля 2005 - 15:23

блин, парни!
У кого работает СимплТест?
У меня при вызове тестового примера ошибка

Fatal error: Call to a member function on a non-object in C:\Inetpub\wwwroot\simpletest\web_tester.php on line 680
когда вызываю в браузере runtest.php.

Код
file runtest.php
<?php
require_once('simpletest/web_tester.php');
require_once('simpletest/reporter.php');

    $test = &new GroupTest('Web site tests');
    $test->addTestFile('lastcraft_test.php');
    exit ($test->run(new TextReporter()) ? 0 : 1);
?>

file lastcraft_test.php
<?

class TestOfLastcraft extends WebTestCase {

    function testHomepage() {
        $this->assertTrue($this->get('http://www.lastcraft.com/'));
    }
}
$test = new TestOfLastcraft();
$test->testHomepage();
?>

Может я чего-то не понимаю либо в коде СимплТеста баг...
Просьба помочь
  • 0

#13 mrjazz

mrjazz

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:denis sheremetov

Отправлено 22 июля 2005 - 16:01

У меня твой код работает, только зачем ты пишешь это:

$test = new TestOfLastcraft();
$test->testHomepage();

если ты его добавляешь в групповой тест?
  • 0

#14 Vidocq

Vidocq

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

  • Members
  • Pip
  • 22 сообщений

Отправлено 25 июля 2005 - 14:07

2 mrjazz,
Ты знаешь, я вроде разобрался. Спасибо.
Вообще мне достаточно симпатичен этот СимплТест. Вот только маны у него не совсем понятные имхо ...
  • 0


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

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