<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>hudson@work &#187; selenium grid</title>
	<atom:link href="http://hudson.su/tag/selenium-grid/feed/" rel="self" type="application/rss+xml" />
	<link>http://hudson.su</link>
	<description>статьи о web-разработке, менеджменте IT проектов и контроле качества</description>
	<lastBuildDate>Fri, 20 Jan 2012 13:15:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Решения для автоматизации тестирования Web-приложений на базе Selenium</title>
		<link>http://hudson.su/2008/06/22/solutions-for-test-automation-web-applications-selenium/</link>
		<comments>http://hudson.su/2008/06/22/solutions-for-test-automation-web-applications-selenium/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 16:35:00 +0000</pubDate>
		<dc:creator>hudson</dc:creator>
				<category><![CDATA[Профессиональное]]></category>
		<category><![CDATA[bromine]]></category>
		<category><![CDATA[cubic test]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[selenium grid]]></category>
		<category><![CDATA[автоматизация тестирования]]></category>
		<category><![CDATA[Мои сайты]]></category>
		<category><![CDATA[тестирование]]></category>

		<guid isPermaLink="false">http://hudson.su/?p=65</guid>
		<description><![CDATA[Представляю вашему вниманию мой доклад на конференции SQADays’2008. Поскольку Selenium как инструмент для тестирования web-приложений показал себя вполне уверенно, встал вопрос о его оптимальном использовании. В частности об оптимизации процессов разработки тестов их исполнения. Для этих целей можно реализовать свой фреймворк (как например, поступили коллеги в Яндексе) для конкретных целей или же разработать более общее [...]]]></description>
			<content:encoded><![CDATA[<div class="contenttext">
<p>Представляю вашему вниманию мой доклад на конференции <a href="http://www.sqadays.ru/programm/bykadorov/" target="_blank">SQADays’2008</a>.</p>
<p>Поскольку <span lang="EN-US">Selenium</span><span lang="EN-US"> </span>как инструмент для тестирования <span lang="EN-US">web</span>-приложений показал себя вполне уверенно, встал вопрос о его оптимальном использовании. В частности об оптимизации процессов разработки тестов их исполнения. Для этих целей можно реализовать свой фреймворк (как например, поступили коллеги в Яндексе) для конкретных целей или же разработать более общее решение и выложить его в общий доступ (одно другому не мешает <img src='http://hudson.su/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ).</p>
<p><span id="more-65"></span><br />
Цель данного доклада – познакомить присутствующих с несколькими удобными решениями.</p>
<h2>1. <span lang="EN-US">Selenium</span><span lang="EN-US"> </span><span lang="EN-US">IDE</span>: возможности применения без использования тяжеловесных решений</h2>
<p class="MsoNormal" style="text-align: justify"><span lang="EN-US">Selenium</span>, как инструмент для автоматизированного тестирования был бы менее эффективен и востребован, если бы не имел средств для быстрой записи/воспроизведения тестовых сценариев. Такой инструмент есть, и те кто уже имел дело с <span lang="EN-US">Selenium</span><span lang="EN-US"> </span>скорее всего уже знакомы с ним – это т.н. <span lang="EN-US">Selenium</span><span lang="EN-US"> </span><span lang="EN-US">IDE</span>:</p>
<p><strong><span lang="EN-US">Plugin</span> к </strong><strong><span lang="EN-US">Firefox</span>. Позволяет:</strong></p>
<ol>
<li>Записывать тесты непосредственно из <span lang="EN-US">Firefox</span></li>
<li>Воспроизводить загруженный тест в <span lang="EN-US">Firefox</span></li>
<li>Воспроизводить загруженный тест в <span lang="EN-US">Firefox</span> через <span lang="EN-US">Selenium</span><span lang="EN-US">Test</span><span lang="EN-US">Runner</span></li>
<li>Экспортировать записанный тест в один из поддерживаемых языков (<span lang="EN-US">java</span>, <span lang="EN-US">ruby</span>, <span lang="EN-US">php</span>, <span lang="EN-US">c</span>#, <span lang="EN-US">python</span>…)</li>
</ol>
<p><strong>Достоинства</strong></p>
<ol>
<li>Прост в использовании, не требует много ресурсов, не требует специальной подготовки сотрудников.</li>
<li>Позволяет автоматизировать простые тестовые сценарии/операции</li>
</ol>
<p><strong>Недостатки</strong></p>
<ol>
<li>Не позволяет использовать логические условия, циклы и т.п. что ограничивает его применимость линейными тестами</li>
<li>Нет возможности запуска сьюитов, а не отдельных тестов</li>
<li>Нет возможности параллельного запуска (только в разных экземплярах <span lang="EN-US">Firefox</span>)</li>
</ol>
<p class="MsoNormal" style="text-indent: 35.4pt;text-align: justify">Конечно, как самостоятельный инструмент автоматизации, <span lang="EN-US">Selenium</span><span lang="EN-US"> </span><span lang="EN-US">IDE</span><span lang="EN-US"> </span>весьма ограничен. Однако, если у вас есть много небольших или средних проектов, например на аутсорсинг, с фиксированным бюджетом, которые не предусматривают комплексную автоматизацию, данная <span lang="EN-US">IDE</span><span lang="EN-US"> </span>позволит автоматизировать рутинные операции по проверке функциональных и/или приемочных требований с минимальными затратами на внедрение и использование.</p>
<p class="MsoNormal" style="text-align: justify">Как указывалось на предыдущей конференции <span lang="EN-US">QA</span><span lang="EN-US"> </span>специалистов, выбор фреймворка для проекта должен быть обусловлен прежде всего самим проектом: маленьким проектам – простые фреймворки, большим и сложным – соответственно сложные. Соответственно <span lang="EN-US">Selenium</span><span lang="EN-US"> </span><span lang="EN-US">IDE</span><span lang="EN-US"> </span>может быть использован как простой фреймворк для автоматизации тестирования, в тех случаях, когда нет времени, денег и необходимости все усложнять.</p>
<h2>2. <span lang="EN-US">Cubic</span><span lang="EN-US"> </span><span lang="EN-US">Test</span>: <span lang="EN-US">Eclipse</span> + <span lang="EN-US">GEF</span> + <span lang="EN-US">Selenium</span> = визуальное управление тестами</h2>
<p class="MsoNormal" style="text-indent: 35.4pt">Современные проприентарные приложения для автоматизации тестирования хороши, на мой взгляд, прежде всего тем, что предоставляют решение по организации и управлению автоматическими тестами. В случае с <span lang="EN-US">open</span><span lang="EN-US"> </span><span lang="EN-US">source</span><span lang="EN-US"> </span>решениями ситуация хуже, так как тот же <span lang="EN-US">Selenium</span><span lang="EN-US"> </span>предоставляет скорее основу для формирования фреймворка для каждого конкретного случая, а не готовое решение. <span lang="EN-US">Cubic</span><span lang="EN-US"> </span><span lang="EN-US">test</span><span lang="EN-US"> </span>предлагает вариант решения, сравнимый с мощными средами от ведущих производителей.</p>
<p><strong>Его </strong><strong>возможности:</strong></p>
<ol>
<li>Интегрируется в <span lang="EN-US">Eclipse</span><span lang="EN-US">IDE</span>как отдельная <span lang="EN-US">Perspective</span>.</li>
<li>Имеет инструменты <span lang="EN-US">Record/Playback</span>.</li>
<li>Использует визуальное моделирование и управление тестами (на базе Graphical Test Editor, <span lang="EN-US">GEF</span>, также интегрируемого в <span lang="EN-US">Eclipse</span>).</li>
<li>Позволяет выносить общие сценарии в субтесты и подключать их по мере необходимости.</li>
<li>Позволяет объединять тесты в наборы (сьюиты), также используя визуальное представление.</li>
<li>Позволяет экспортировать графическое представление тестов в HTML Prototype или Watir (в том числе допускает написание собственных экспортеров).</li>
</ol>
<p><strong>Достоинства</strong></p>
<ol>
<li>Оригинальная и простая для понимания концепция визуального управления тестами, основанная на распространенных и доступных <span lang="EN-US">open</span><span lang="EN-US">source</span>инструментах.</li>
<li>Прост в использовании и не требует специализированных навыков программирования на том или ином языке (<span lang="EN-US">java</span>, <span lang="EN-US">ruby</span>, <span lang="EN-US">c</span>#…).</li>
<li>Встроенные средства записи и воспроизведения.</li>
</ol>
<p><strong>Недостатки</strong></p>
<ol>
<li>Отсутствие возможности параллельного воспроизведения тестовых наборов.</li>
<li>Некорректная работа с кирилицей</li>
</ol>
<p class="MsoNormal" style="text-indent: 35.4pt;text-align: justify">Итого, <span lang="EN-US">Cubic</span><span lang="EN-US"> </span><span lang="EN-US">test</span><span lang="EN-US"> </span>можно рассматривать как решение для проектов средней сложности, где есть возможность целенаправлено заниматься автоматизацией. При этом радует, что инструмент вполне доступен для использования <span lang="EN-US">junior</span><span lang="EN-US"> </span>тестировщиками. Проблема с кирилицей пока решается только ручной правкой тест-файлов (которые хранятся в текстовом формате).</p>
<h2>3. <span lang="EN-US">Selenium</span><span lang="EN-US"> </span><span lang="EN-US">grid</span>: распределнная среда для тестирования <span lang="EN-US">web</span><span lang="EN-US"> </span>приложений – это просто.</h2>
<p class="MsoNormal" style="text-indent: 35.4pt;text-align: justify">Один из недостатков <span lang="EN-US">Selenium</span><span lang="EN-US"> </span>(он же его достоинство) – это запуск экземпляра браузера при выполнении тестов. Достоинства понятны – мы можем тестировать не просто <span lang="EN-US">web</span>-приложение, а <span lang="EN-US">web</span>-приложение в реальном окружении – в <span lang="EN-US">IE</span>, <span lang="EN-US">Safari</span>, <span lang="EN-US">Firefox</span><span lang="EN-US"> </span>на различных платформах. Недостатки тоже на поверхности – нам нужна графическая оболочка (<span lang="EN-US">windows</span>, <span lang="EN-US">kde</span><span lang="EN-US"> </span>или <span lang="EN-US">gnome</span><span lang="EN-US"> </span>в <span lang="EN-US">linux</span><span lang="EN-US"> </span>и т.п.) для выполнения тестов и, что весьма немаловажно, само выполнение тестов в условиях приближанных к боевым занимает продолжительное время. Эту задачу берутся решить разработчики <span lang="EN-US">Selenium</span>-<span lang="EN-US">grid</span>. Они предоставляют решение, позволяющее с минимальными затратами получить распределненую и легко масштабируемую среду для параллельного выполнения большого числа тестов.</p>
<p><strong>Итак, возможности:</strong></p>
<ol>
<li>Самое главное – быстрое и простое распараллеливание выполнения тестов. В основе данной возможности лежит фреймворк <span lang="EN-US">TestNG</span> (а не <span lang="EN-US">jUnit </span>как у «классических» <span lang="EN-US">selenium</span>-тестов).</li>
<li>Возможность построения распределенной и масштабируемой среды для выполнения тестов.</li>
</ol>
<p><strong>Достоинства</strong></p>
<ol>
<li>Многократное уменьшение времени выполнения при большом количестве тестовых сценариев.</li>
<li>Возможность использования ранее написанных тестов (на <span lang="EN-US">java</span>, <span lang="EN-US">ruby</span><span lang="EN-US"> </span><span lang="EN-US">python</span>…).</li>
<li>Простой способ построения распределенной среды для выполнения тестов.</li>
</ol>
<p><strong>Недостатки</strong></p>
<ol>
<li>Нет средств <span lang="EN-US">Record/Playback.</span></li>
<li>Требует более высокой квалификации от сотрудников.</li>
<li>Нетподдержки<span> <span lang="EN-US">selence test cases.</span></span></li>
<li>Сыроват. Например:</li>
</ol>
<blockquote><p>Проблемы с кирилицей при воспроизведении<br />
Проблемы с запуском <span lang="EN-US">parallels tests</span></p></blockquote>
<h2>4. О чем еще стоит упомянуть?</h2>
<p><strong><span lang="EN-US">Selenium</span><span lang="EN-US"> </span></strong><strong><span lang="EN-US">on</span><span lang="EN-US"> </span></strong><strong><span lang="EN-US">Rails</span></strong>. Простой способ интеграции <span lang="EN-US">Selenium</span><span lang="EN-US"> </span>с <span lang="EN-US">Ruby</span><span lang="EN-US"> </span><span lang="EN-US">on</span><span lang="EN-US"> </span><span lang="EN-US">Rail</span><span lang="EN-US"> </span>приложениями.  Поскольку я  сам с Ruby знаком очень поверхностно, этот инструмент представлю обзорно:</p>
<ol>
<li><span lang="EN-US">Selenium Core </span>не «замусоривают»<span lang="EN-US"> /public.</span></li>
<li>Не нужно создвать <span lang="EN-US">suite</span>-файлы, они генерятся на лету — один <span lang="EN-US">suite</span><span lang="EN-US"> </span>на директорию в /<span lang="EN-US">test</span>/<span lang="EN-US">selenium</span>.</li>
<li><span lang="EN-US">Partial test cases. </span>Позволяет выносить часто используемые последовательности действий в отдельные «кусочные» кейсы и подключать их по мере надобности.</li>
<li>Загрузка фикстур и имитация сессий.</li>
<li>Возможность использования нескольких более удобных форматов для <span lang="EN-US">TestCases</span>, помимо <span lang="EN-US">HTML</span></li>
</ol>
<blockquote><p>- Selenese, самый простой тестовый формат.<br />
- Rselenese, позволяет писать тесты на <span lang="EN-US">ruby</span>.<br />
- HTML/RHTML<span lang="EN-US">.</span></p></blockquote>
<p class="MsoNormal" style="text-align: justify">
<p class="MsoNormal" style="text-align: justify"><strong><span lang="EN-US">Bromine</span></strong>. Интегрированная тестовая среда на базе <span lang="EN-US">Selenium</span>.</p>
<p class="MsoNormal" style="text-align: justify"><span lang="EN-US">Selenium </span>предоставляет возможности</p>
<ol>
<li>Создание тестов при помощи IDE</li>
<li>Предоставляет JS framework</li>
<li>Предоставляет R<span lang="EN-US">emote </span>C<span lang="EN-US">ontrol</span> server</li>
<li>Предоставляет Core runner</li>
</ol>
<p class="MsoNormal" style="text-align: justify"><span lang="EN-US">Bromine</span></p>
<ol>
<li>Многофункциональный <span lang="EN-US">QA </span>инструмент</li>
<li>Позволяет создавать проекты</li>
<li>Привязывать требования к проектам</li>
<li>Привязывать тесты к требованиям</li>
<li>Предоставляет простой способ управления и запуска тестов</li>
<li>Позволяет анализировать результаты запуска тестов</li>
<li>Позволяет создавать дефекты</li>
<li>Также имеется облегченная <span lang="EN-US">light</span><span lang="EN-US"> </span>версия только для запуска тестов и анализа результатов</li>
</ol>
<p>На момент составления основы доклада, я только узнал о Bromine и не планировл его как-то подробно освещать, но непосредственно перед SQADays у меня нашлось время посмотреть что этот тул из себя представляет.<br />
Собственно основное ощущение, которое возникло при первом знакомстве с Bromine &#8211; сырость. Реализован он в виде web-приложения на PHP+MySQL. Реализован мягко говоря не хорошо (по сути набор независимых скриптов без разделения логики и представления) и не смотря на указание версии 1.9 у меня не получилось сконфигурировать интеграцию с Selenium, так как приложение упорно теряло текущий выбранный проект.<br />
Будем надеяться что не смотря на это Bromine можно использовать, так как он предлагает ряд интересных идей. Собственно когда у меня будет время, я постараюсь разобраться и настроить действующий стенд Bromine &#8211; а это заслуживает как минимум отдельной статьи.</p>
<h2>5. О грустном</h2>
<p>Как ни прискорбно указывать на этот факт, полноценных IDE и тем более промышленных решений на базе Selenium нет. Пока что наиболее гибким (но и наиболее ресурсоемким) остается вариант использования базовых средств Selenium, дорабатывая свои необходимые надстройки или разрабатывать свой уникальный framework под конкретную задачу.</p></div>
<h2>6. В довесок</h2>
<p><a href="http://rutube.ru/tracks/793135.html?v=a4cc75bdb3100fcb1922e2ada0145a42" target="_blank"><br />
Тот же доклад в записи.<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://hudson.su/2008/06/22/solutions-for-test-automation-web-applications-selenium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selenium-grid quickstart</title>
		<link>http://hudson.su/2008/05/09/selenium-grid-quickstart/</link>
		<comments>http://hudson.su/2008/05/09/selenium-grid-quickstart/#comments</comments>
		<pubDate>Fri, 09 May 2008 13:09:00 +0000</pubDate>
		<dc:creator>hudson</dc:creator>
				<category><![CDATA[Профессиональное]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[selenium grid]]></category>
		<category><![CDATA[тестирование]]></category>

		<guid isPermaLink="false">http://hudson.su/?p=62</guid>
		<description><![CDATA[Быстрое введение в Selenium-grid. На текущий момент grid тест отличается от “классического”, тем что он не наследуется от SelenseTestCase ( &#60;- jUnut TestCase ), т.о. suite содержит только выполнение selenium команд (DefaultSelenium) ну и какую-то базовую логику. Необходимые импорты (в двух словах) package ru.XXX; // Импорт grid компонент связанных с сессией import static com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.session; import [...]]]></description>
			<content:encoded><![CDATA[<p>Быстрое введение в Selenium-grid.</p>
<p><span id="more-62"></span><br />
На текущий момент grid тест отличается от “классического”, тем что он не наследуется от SelenseTestCase ( &lt;- jUnut TestCase ), т.о. suite содержит только выполнение selenium команд (DefaultSelenium) ну и какую-то базовую логику.</p>
<p><strong>Необходимые импорты (в двух словах)</strong></p>
<pre>package ru.XXX;
// Импорт grid компонент связанных с сессией
import static com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.session;
import static com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.closeSeleniumSession;
import static com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.startSeleniumSession;
// Импорт TestNG аннотаций для параметров
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
// Импорт вспомогательных инструментов
import ru.masterhost.utils.TestUtils;
import static junit.framework.Assert.assertEquals</pre>
<p><strong>Определение класса test suite</strong></p>
<pre>public class TestsControlPanelGrid
{
// Операции, выполняемые перед каждым тестом. В данном случае это старт сессии Selenium
@BeforeTest(alwaysRun = true)
@Parameters({"seleniumHost", "seleniumPort", "browser", "webSite"})
protected void startSession(String seleniumHost, int seleniumPort, String browser, String webSite) throws Exception {
startSeleniumSession(seleniumHost, seleniumPort, browser, webSite);
}
// Операции, выполняемые после каждого теста. В данном случае это завершение сессии Selenium
@AfterTest(alwaysRun = true)
protected void closeSession() throws Exception {
closeSeleniumSession();
}
…
}</pre>
<p><strong>Тестовый метод</strong></p>
<pre>// параметры Test:
// enabled = true | false - определяет будет ли выполнен тест или нет
// groups = {"group1", "group2"…} - группировка тестов в отчете
// description = "текст…" - описание теста для отчета
// параметры Parameters. Если используются @BeforeTest методы (как указано выше), то передавать параметры
// в каждый тест уже не нужно
@Test(enabled = true, groups = {"group1", "group2"}, description = "Тест регистрации")
public void DoRegistrationPerson () throws Exception
{
// Вместо инстанса Selenium используем session() который статически импортировали
session().open( "/" );
session().click("link=Blah-blah-blah");
// some cool test stuff ….
}</pre>
<p><strong>Запуск test suite</strong></p>
<div>Запуск тестов осуществляется через ant. В корне проекта расположен файл ./build.xml, который по умолчанию используется ant для сборок. Использование:</div>
<pre># ./ant [task_name]
# ./ant sanity-check</pre>
<p>основные таски:</p>
<ul>
<li><strong>sanity-check</strong> &#8211; проверка целостности (фактически проверка версии java и ant)</li>
<li><strong>launch-hub </strong>- запуск hub</li>
<li><strong>launch-remote-control </strong>- запуск отдельного экземпляра RC</li>
</ul>
<p>Для запуска собственно класса с тестами используется runner TestNG. В build.xml проекта вносится (если еще нет) соответствующий таск. Таски могут быть двух видов: для последовательного запуска тестов и для параллельного (отличаются набором параметров).</p>
<p><strong>Последовательный запуск тестов</strong></p>
<pre>&lt;target name="run-demo-in-sequence" description="Run Selenium tests one by one"&gt;
&lt;java classpathref="demo.classpath" classname="org.testng.TestNG" failonerror="true"&gt;
&lt;sysproperty key="java.security.policy" file="${basedir}/lib/testng.policy"/&gt;
&lt;sysproperty key="webSite" value="${webSite}" /&gt;
&lt;sysproperty key="seleniumHost" value="${seleniumHost}" /&gt;
&lt;sysproperty key="seleniumPort" value="${seleniumPort}" /&gt;
&lt;sysproperty key="browser" value="${browser}" /&gt;
&lt;arg value="-suitename" /&gt;
&lt;arg value="Selenium Grid Demo In Sequence" /&gt;
&lt;arg value="-d" /&gt;
&lt;arg value="${basedir}/target/reports" /&gt;
&lt;arg value="-testclass"/&gt;
&lt;arg value="com.thoughtworks.selenium.grid.demo.WebTestForASingleBrowser"/&gt;
&lt;/java&gt;
&lt;/target&gt;</pre>
<p>Подразумевается что basedir, webSite, seleniumHost, seleniumPort, browser определены ранее например вот так:</p>
<pre>&lt;property file="${basedir}/project.properties" /&gt;
&lt;property name="version" value="SNAPSHOT" /&gt;
&lt;property name="webSite" value="<a href="http://amazon.com/">http://amazon.com</a>" /&gt;
&lt;property name="seleniumHost" value="localhost" /&gt;
&lt;property name="seleniumPort" value="4444″ /&gt;
&lt;property name="browser" value="*chrome" /&gt;</pre>
<p><strong>Параллельный запуск тестов</strong></p>
<pre>&lt;target name="run-demo-in-parallel" description="Run Selenium tests in parallel"&gt;
&lt;java classpathref="demo.classpath" classname="org.testng.TestNG" failonerror="true"&gt;
&lt;sysproperty key="java.security.policy" file="${basedir}/lib/testng.policy"/&gt;
&lt;sysproperty key="webSite" value="${webSite}" /&gt;
&lt;sysproperty key="seleniumHost" value="${seleniumHost}" /&gt;
&lt;sysproperty key="seleniumPort" value="${seleniumPort}" /&gt;
&lt;sysproperty key="browser" value="${browser}" /&gt;
&lt;arg value="-d" /&gt;
&lt;arg value="${basedir}/target/reports" /&gt;
&lt;arg value="-suitename" /&gt;
&lt;arg value="Selenium Grid Demo In Parallel" /&gt;
&lt;arg value="-parallel"/&gt;
&lt;arg value="methods"/&gt;
&lt;arg value="-threadcount"/&gt;
&lt;arg value="10″/&gt;
&lt;arg value="-testclass"/&gt;
&lt;arg value="com.thoughtworks.selenium.grid.demo.WebTestForASingleBrowser"/&gt;
&lt;/java&gt;
&lt;/target&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://hudson.su/2008/05/09/selenium-grid-quickstart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

