Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Параллельный запуск разных историй на jbehave


(Roman Stoliarov) #1

Здравствуйте!

Для тестирования использую jBehave + mvn + Selenium grid + surefire. Все истории jBehav’а запускаются паралельно на phantomjs и firefox’е. И оно б хорошо, но есть одна проблема - они работают с одной и той же системой и если один и тот же тест проверяется в браузерах одновременно - они мешают друг другу (например, если я тестирую систему с разными ее настройками, то при паралельном запуске тести валяться, так как каждый хочет проверить разные значения, а система одна)

Есть ли какой-то способ сделать так чтоби одна и та же история jBehav’а не тестировалась паралельно? Например, если есть Story1.story и Story2.story, то на фантоме идет тестирование Story1.story, пока на фаерфоксе - Story2.story, а потом наоборот.


(Derom) #2

А как именно вы указываете в чём запускать Story?


(Mdolinin) #3

можно использовать несколько секций <execution> в surefire/failsafe. Они буду выполнятся последовательно в порядке их нахождения в pom.xml. А внутри каждой секции запускать сори параллельно.
Running_integration_tests_multiple_times


(Roman Stoliarov) #4

С помощью параметров:

@Parameters
	public static Collection<Object[]> data() {
		Object[][] data = new Object[][] {
				//{ "firefox", "31.1.0" }//,
				{ "phantomjs", null}/*,
				{ "chrome", "37.0.2062.120" }*/ };
		return Arrays.asList(data);
	}

и mvn surfire(pom.xml):

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<version>2.5</version>
	<configuration>
		<test>StoryRunner.java</test>
		<parallel>methods</parallel>
		<useUnlimitedThreads>true</useUnlimitedThreads>
	</configuration>
</plugin>

(Derom) #5

Мне кажется, classes вместо methods должно помочь.