Sto eseguendo test selenio sulla griglia del selenio utilizzando il plug-in Surefire per eseguire i test. In termini di analisi del mio test ho diverse classi, alcune delle quali hanno 1 test in là e alcuni più di un test.Test parallelo JUnit e Surefire - ForkCount & ThreadCount
Così sulla mia griglia ho 30 driver di Chrome Web e voglio eseguire tutti i test all'interno di tutte le classi in parallelo.
ho letto come farlo utilizzando il parametro parallel
che ho impostato come:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<includes>
<include>${testSuite}</include>
</includes>
<parallel>all</parallel>
<useSystemClassLoader>false</useSystemClassLoader>
<perCoreThreadCount>false</perCoreThreadCount>
<threadCount>20</threadCount>
<browser>${browser_type}</browser>
</configuration>
</plugin>
Tuttavia questo doesnt sembrano riempire tutti i piloti web di Chrome che ho a disposizione.
Se Ho quindi utilizzare forkCount
, come:
<forkCount>20</forkCount>
<reuseForks>true</reuseForks>
Poi, quando i primi si avvia l'esecuzione di test, tutti i driver web sono pieni tuttavia avvia rapidamente cadere e di comportarsi uno alla volta.
Così le mie domande:
- Esiste una relazione tra forkCount e threadcount
- C'è qualcosa aggiuntivo che devo fare per ottenere davvero questo correre in parallelo?
Grazie.
Si sta utilizzando @NotThreadSafe sui tuoi test? Tutto ciò di cui hai bisogno è qui https://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html –
No - non usare quello @NotThreadSafe – userMod2
Gli script di selenio sono progettati per correre in parallelo? altrimenti tutte le azioni del thread avverranno nel browser singolo chrome. – parishodak