AT.info ПОСИДЕЛКИ  vKontakte   facebook группа  
Что тестировщик не умеет, а автоматизатор должен знать?
view counter
Очень хочется узнать его. Форум ждет тебя!
view counter
Config

Selenium RC (Java): Шаги усовершенствования тестов. Часть 1

Часть 2

Миф о том, что для автоматизированного тестирования не нужны навыки программирования и тесты можно вполне легко записывать, развенчан настолько, что сам факт того, что кто-то еще так считает, уже кажется мифом или, как минимум, чем-то странным. Понятное дело, что записанные тесты и тесты, которые могли бы эффективно использоваться на регулярной основе – это, как говорят в Одессе, «две большие разницы». Очевидно, что исходный тест, да и решение по автоматизации в целом, должны пройти некоторые стадии улучшения, прежде чем прийти к пригодному к использованию виду. Давайте рассмотрим некоторые типовые шаги, которые так или иначе приходится проходить для построения стабильного, расширяемого и поддерживаемого решения.

И рассмотрим мы эти шаги на примере Selenium-RC (Java). На самом деле, данная тематика не сильно завязана на конкретный инструментарий. Всё то же самое можно сделать практически любым средством, которое в себе содержит возможность программирования тестов. Просто чтобы не уходить в абстрактную теорию, а показать на конкретных примерах, как оно работает, нужно привязаться к какой-то конкретно реализации. Но подобные практики имеют место быть в любых аналогичных решениях. Поэтому, тут можно усматривать не только особенность работы с каким-то конкретным средством, но и стоит обратить внимание на практики в целом, которые будут задействованы.

Итак, путем записи и незначительной корректировки был получен следующий тест:

package com.mycompany.selenium.tests;
import java.util.Date;
import com.thoughtworks.selenium.*;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

/**
 * @author KaNoN
 */

public class SampleTestStage00 {
            private Selenium selenium = null;
            private String genTaskName() {
                        Date dt = new Date();
                        String result = dt.toString();
                        result = result.replaceAll( ":" , "" );
                        result = result.replaceAll( " " , "" );
                        return result;
            }

            @BeforeMethod(alwaysRun=true)
            public void init() throws Exception {
                        selenium = new DefaultSelenium( "localhost" , 4444 , "*iexplore" , "http:// localhost:8080" );
                        selenium.start();
                        selenium.open("http://localhost:8080/hudson");
            }

            @Test(groups = {"sample","sample0"})
            public void testCreateJob() throws Exception {
                        selenium.click("link=New Job");
                        selenium.waitForPageToLoad("30000");
                        selenium.type("name", "SampleTask" + genTaskName() );
                        selenium.click("//input[@value='Build a free-style software project']");
                        selenium.click("//button[@type='button']");
			selenium.waitForPageToLoad("30000");
                        selenium.click("//button[text()='Save']");
                        selenium.waitForPageToLoad("30000");
                        selenium.click("link=Hudson");
                        selenium.waitForPageToLoad("30000");
            }

            @AfterMethod(alwaysRun=true)
            public void stop() throws Exception {
                        selenium.stop();
            }
}

Что он делает? Он запускает веб-приложение (в данном примере это Hudson) и создает в нем новую задачу. Тест реализован с использованием TestNG в качестве тестового движка.

Как видно, тест еще далек от совершенства, как минимум из-за того, что много hard-coded значений. Да и вот так на первый взгляд трудно понять, что этот тест детает вообще. В-общем, непонятных вещей много, нужно усовершенствовать. Вопрос в том, что, когда и (самое главное) как.

RSS-материал
© 2009-2010 Портал для автоматизаторов тестирования ПО
Автор проекта Поляруш Михаил | При использовании материалов ссылка на www.automated-testing.info обязательна.
Все замечания и пожелания присылайте на webmaster@automated-testing.info.
Заказать недорогие растения, купить барбарис. . цемент турецкий . Россия. сервера CS 1.6 тут
Яндекс.Метрика