H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
Sa
rg
i
s
Sa
rg
sya
n
W
o
rksh
o
p
,
SQ
A
D
a
ys
EU
,
L
a
t
vi
a
2
0
1
9
2
Sa
rg
i
s
Sa
rg
sya
n
D
i
re
ct
o
r
,
Q
u
a
l
i
t
y
Assu
ra
n
ce
a
t
Pi
csArt
3
I
n
t
ro
d
u
ct
i
o
n
t
o
Pre
se
n
t
a
t
i
o
n
1
W
h
y?
2
W
h
a
t
i
s
Se
l
e
n
i
u
m
G
ri
d
3
R
u
n
n
i
n
g
Se
l
e
n
i
u
m
Su
i
t
e
i
n
Pa
ra
l
l
e
l
4
W
h
a
t
i
s
D
o
cke
r
Se
l
e
n
i
u
m
5
C
o
n
f
i
g
u
re
Se
l
e
n
i
u
m
G
ri
d
i
n
D
o
cke
r
C
o
n
t
a
i
n
e
rs
6
C
re
a
t
i
n
g
a
n
d
ma
i
n
t
a
i
n
i
n
g
d
o
cke
r-co
mp
o
se
f
i
l
e
7
Z
a
l
e
n
i
u
m
9
Q
&A
8
Se
l
e
n
o
i
d
G
e
t
t
i
n
g
St
a
rt
e
d
w
i
t
h
Se
l
e
n
i
u
m
G
ri
d
&
D
o
cke
r
5
W
h
a
t
i
s
Se
l
e
n
i
u
m
G
ri
d
Se
l
e
n
i
u
m
G
ri
d
i
s
a
sma
rt
p
ro
xy
se
rve
r
t
h
a
t
a
l
l
o
w
s
Se
l
e
n
i
u
m
t
e
st
s
t
o
ro
u
t
e
co
mma
n
d
s
t
o
re
mo
t
e
w
e
b
b
ro
w
se
r
i
n
st
a
n
ce
s.
I
t
s
a
i
m
i
s
t
o
p
ro
vi
d
e
a
n
e
a
sy
w
a
y
t
o
ru
n
t
e
st
s
i
n
p
a
ra
l
l
e
l
o
n
mu
l
t
i
p
l
e
ma
ch
i
n
e
s.
W
i
t
h
Se
l
e
n
i
u
m
G
ri
d
,
o
n
e
se
rve
r
a
ct
s
a
s
t
h
e
h
u
b
t
h
a
t
ro
u
t
e
s
JSO
N
f
o
rma
t
t
e
d
t
e
st
co
mma
n
d
s
t
o
o
n
e
o
r
mo
re
re
g
i
st
e
re
d
G
ri
d
n
o
d
e
s.
T
e
st
s
co
n
t
a
ct
t
h
e
h
u
b
t
o
o
b
t
a
i
n
a
cce
ss
t
o
re
mo
t
e
b
ro
w
se
r
i
n
st
a
n
ce
s.
T
h
e
h
u
b
h
a
s
a
l
i
st
o
f
re
g
i
st
e
re
d
se
rve
rs
t
h
a
t
i
t
p
ro
vi
d
e
s
a
cce
ss
t
o
,
a
n
d
a
l
l
o
w
s
u
s
t
o
co
n
t
ro
l
t
h
e
se
i
n
st
a
n
ce
s.
Se
l
e
n
i
u
m
G
ri
d
a
l
l
o
w
s
u
s
t
o
ru
n
t
e
st
s
i
n
p
a
ra
l
l
e
l
o
n
mu
l
t
i
p
l
e
ma
ch
i
n
e
s,
a
n
d
t
o
ma
n
a
g
e
d
i
f
f
e
re
n
t
b
ro
w
se
r
ve
rsi
o
n
s
a
n
d
b
ro
w
se
r
co
n
f
i
g
u
ra
t
i
o
n
s
ce
n
t
ra
l
l
y
(i
n
st
e
a
d
o
f
i
n
e
a
ch
i
n
d
i
vi
d
u
a
l
t
e
st
).
Se
l
e
n
i
u
m
G
ri
d
i
sn
'
t
a
si
l
ve
r
b
u
l
l
e
t
.
I
t
so
l
ve
s
a
su
b
se
t
o
f
co
mmo
n
d
e
l
e
g
a
t
i
o
n
a
n
d
d
i
st
ri
b
u
t
i
o
n
p
ro
b
l
e
ms,
b
u
t
w
i
l
l
f
o
r
e
xa
mp
l
e
n
o
t
ma
n
a
g
e
yo
u
r
i
n
f
ra
st
ru
ct
u
re
a
n
d
mi
g
h
t
n
o
t
su
i
t
yo
u
r
sp
e
ci
f
i
c
n
e
e
d
s.
Se
l
e
n
i
u
m
G
ri
d
a
*
Se
l
e
n
i
u
mH
Q
D
o
cu
me
n
t
a
t
i
o
n
D
i
a
g
ra
m
f
ro
m
h
t
t
p
s:
/
/
w
w
w
.
ra
n
o
re
x.
co
m
6
W
h
a
t
i
s
Se
l
e
n
i
u
m
H
u
b
a
n
d
N
o
d
e
s
•
I
n
t
e
rme
d
i
a
ry
a
n
d
ma
n
a
g
e
r
•
Acce
p
t
s
re
q
u
e
st
s
t
o
ru
n
t
e
st
s
•
T
a
ke
s
i
n
st
ru
ct
i
o
n
s
f
ro
m
cl
i
e
n
t
a
n
d
e
xe
cu
t
e
s
t
h
e
m
re
mo
t
e
l
y
o
n
t
h
e
nodes
•
Ma
n
a
g
e
s
t
h
re
a
d
s
Hub
a
*
Se
l
e
n
i
u
mH
Q
D
o
cu
me
n
t
a
t
i
o
n
•
T
h
i
s
i
s
w
h
e
re
t
h
e
b
ro
w
se
rs
l
i
ve
•
R
e
g
i
st
e
rs
i
t
se
l
f
t
o
t
h
e
h
u
b
a
n
d
co
mmu
n
i
ca
t
e
s
i
t
s
ca
p
a
b
i
l
i
t
i
e
s
•
R
e
ce
i
ve
s
re
q
u
e
st
s
f
ro
m
t
h
e
h
u
b
a
n
d
e
xe
cu
t
e
s
t
h
e
m
Nodes
7
D
o
cke
r
Se
l
e
n
i
u
m
G
ri
d
•
Se
l
e
n
i
u
m
h
u
b
i
ma
g
e
•
Se
l
e
n
i
u
m
n
o
d
e
-f
i
re
f
o
x
i
ma
g
e
•
Se
l
e
n
i
u
m
n
o
d
e
-ch
ro
me
i
ma
g
e
•
Se
l
e
n
i
u
m
n
o
d
e
-f
i
re
f
o
x-d
e
b
u
g
i
ma
g
e
•
Se
l
e
n
i
u
m
n
o
d
e
-ch
ro
me
-d
e
b
u
g
i
ma
g
e
Se
l
e
n
i
u
m
I
ma
g
e
s
a
*
Se
l
e
n
i
u
mH
Q
D
o
cu
me
n
t
a
t
i
o
n
As
n
o
rma
l
g
ri
d
w
i
t
h
d
o
cke
r
w
e
h
a
ve
t
o
i
n
st
a
l
l
t
h
e
h
u
b
a
n
d
b
ro
w
se
r
n
o
d
e
s
i
n
t
o
D
o
cke
r
co
n
t
a
i
n
e
rs
a
n
d
t
h
e
n
st
a
rt
t
h
e
h
u
b
a
n
d
n
o
d
e
s
f
ro
m
t
h
e
D
o
cke
r
co
n
t
a
i
n
e
r
.
Se
l
e
n
i
u
m
G
ri
d
w
i
t
h
D
o
cke
r
Pre
p
a
re
Sa
mp
l
e
T
e
st
s
R
u
n
t
e
st
s:
O
p
e
n
a
t
e
rmi
n
a
l
C
l
o
n
e
t
h
i
s
p
ro
j
e
ct
~$ git clone https://github.com/sargissargsyan/selenium-
parallel-run.git
cd selenium-parallel-run
mvn clean install -DskipTests
mvn failsafe:integration-test
Se
t
u
p
Se
l
e
n
i
u
m
D
o
cke
r
l
o
ca
l
l
y
Se
l
e
n
i
u
m
D
o
cke
r
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
R
u
n
t
e
st
s:
O
p
e
n
a
t
e
rmi
n
a
l
C
l
o
n
e
t
h
i
s
p
ro
j
e
ct
~$ git clone https://github.com/sargissargsyan/selenium-
parallel-run.git
cd selenium-parallel-run
mvn clean install -DskipTests
mvn failsafe:integration-test -Dselenium.remote=false
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
D
e
mo
12
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
~
$
docker -v
Docker version 18.09.2, build 6247962
13
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
java version "1.8.0_191" Java(TM) SE Runtime
Environment (build 1.8.0_191-b12) Java HotSpot(TM)
64-Bit Server VM (build 25.191-b12, mixed mode)
~
$
java -version
14
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
Apache Maven 3.6.0
(97c98ec64a1fdfee7767ce5ffb20918da4f719f3;
2018-10-24T22:41:47+04:00)
~
$
mvn -v
15
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
docker-compose version 1.23.2, build 1110ad01
~
$
docker-compose -v
16
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
docker-machine version 0.16.1, build cce350d7
~
$
docker-machine -v
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
~
$
docker network create grid
18
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
~
$
docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/
standalone-chrome:3.141.59-lithium
19
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
~
$
docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/
shm:/dev/shm selenium/node-chrome:3.141.59-lithium
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
D
e
mo
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
~
$
docker network rm grid
~
$
docker stop selenium-hub
~
$
docker rm selenium-hub
~
$
docker stop chrome-node
~
$
docker rm chrome-node
Se
l
e
n
i
u
m
D
o
cke
r
u
p
u
si
n
g
D
o
cke
r
C
o
mp
o
se
~
$
cd /selenium-parallel-run
~
$
docker-compose -f docker-compose-selenium-docker.yml up -d
~
$
docker-compose -f docker-compose-selenium-docker down
Se
l
e
n
i
u
m
D
o
cke
r
u
p
u
si
n
g
D
o
cke
r
C
o
mp
o
se
D
e
mo
A
f
l
e
xi
b
l
e
a
n
d
sca
l
a
b
l
e
Se
l
e
n
i
u
m
G
ri
d
Zalenium
26
H
o
w
t
o
Bu
i
l
d
Z
e
a
l
e
n
i
u
m?
Z
a
l
e
n
i
u
m
w
o
rks
co
n
ce
p
t
u
a
l
l
y
i
n
a
si
mp
l
e
w
a
y
a
*
Zalenium
~
$
docker pull elgalu/selenium
~
$
docker pull dosel/zalenium
27
H
o
w
t
o
Bu
i
l
d
Z
e
a
l
e
n
i
u
m?
Z
a
l
e
n
i
u
m
w
o
rks
co
n
ce
p
t
u
a
l
l
y
i
n
a
si
mp
l
e
w
a
y
a
*
Zalenium
~
$
docker run --rm -ti --name zalenium -p 4444:4444 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /tmp/videos:/home/seluser/videos \
—privileged dosel/zalenium start
H
o
w
t
o
D
o
cke
ri
ze
Pa
ra
l
l
e
l
Exe
cu
t
i
o
n
o
f
Se
l
e
n
i
u
m
T
e
st
s
D
e
mo
Z
a
l
e
n
i
u
m
u
p
u
si
n
g
D
o
cke
r
C
o
mp
o
se
~
$
cd /selenium-parallel-run
~
$
docker-compose -f docker-compose-zalenium.yml up --force-recreate -d
~
$
docker-compose -f docker-compose-zalenium.yml down
Z
a
l
e
n
i
u
m
u
p
u
si
n
g
D
o
cke
r
C
o
mp
o
se
D
e
mo
Se
l
e
n
o
i
d
32
Pre
st
e
p
s
C
re
a
t
e
a
d
i
re
ct
o
ry
w
i
t
h
n
a
me
se
l
e
n
o
i
d
~
$
mkdir selenoid
C
re
a
t
e
b
ro
w
se
rs.
co
n
f
i
g
f
i
l
e
~
$
mkdir config
~
$
touch config/browsers.json
C
h
a
n
g
e
d
i
re
ct
o
ry
t
o
se
l
e
n
o
i
d
~
$
cd selenoid/
Ed
i
t
b
ro
w
se
rs.
co
n
f
i
g
f
i
l
e
~
$
nano browsers.config
b
ro
w
se
r
.
j
so
n
{
"chrome": {
"default": "72.0",
"versions": {
"72.0": {
"image": "selenoid/vnc:chrome_72.0",
"port": "4444",
"path": "/"
}
}
}
}
34
H
o
w
t
o
Bu
i
l
d
Se
l
e
n
o
i
d
?
~/selenoid
$
docker run -d \
--name selenoid \
-p 4444:4444 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v `pwd`/config/:/etc/selenoid/:ro \
aerokube/selenoid:latest-release
Se
l
e
n
o
i
d
D
e
mo
36
H
o
w
t
o
Bu
i
l
d
se
l
e
n
o
i
d
-u
i
?
~/
$
docker run -d --name selenoid-ui \
--link selenoid \
-p 8080:8080 \
aerokube/selenoid-ui --selenoid-uri=http://selenoid:4444
Se
l
e
n
o
i
d
D
e
mo
38
H
o
w
t
o
Bu
i
l
d
Se
l
e
n
o
i
d
w
i
t
h
C
o
n
f
i
g
u
ra
t
i
o
n
Ma
n
a
g
e
r?
~/
$
curl -s https://aerokube.com/cm/bash | bash
~/
$
./cm selenoid start --vnc
> ./cm.exe selenoid start --vnc
https://github.com/aerokube/cm/releases
~/
$
./cm selenoid-ui start
Se
l
e
n
o
i
d
D
e
mo
40
L
i
n
ks
https://github.com/SeleniumHQ/docker-selenium
https://opensource.zalando.com/zalenium/
https://aerokube.com/selenoid/latest/
https://aerokube.com/cm/latest/
41
T
h
a
n
k
Y
o
u
!
Ñ
sa
rg
i
s.
sa
rg
sya
n
@
l
i
ve
.
co
m
t
@
sa
rg
i
se
t
ą
/
i
n
/
sa
rg
i
ssa
rg
sya
n
How to Dockerize Parallel Execution of Selenium Tests