1+ @startuml
2+
3+ skinparam participant {
4+ FontSize 16
5+ FontStyle bold
6+ FontColor white
7+ BackgroundColor #ffac2f
8+ ArrowFontColor #333333
9+ ArrowThickness 2
10+ }
11+ skinparam defaultTextAlignment center
12+ skinparam linetype polyline
13+
14+ participant Test
15+ participant EUS
16+ participant Browser1
17+ participant Browser2
18+ participant "WebRTC\nQoEMeter1"
19+ participant "WebRTC\nQoEMeter2"
20+
21+ == Initialization ==
22+ Test --> EUS : start browser1
23+ EUS --> Browser1 : start
24+ activate Browser1
25+ EUS --> Test
26+ Test --> EUS : upload video/audio\nfrom url
27+ EUS --> Browser1 : upload video/audio
28+
29+ Test --> EUS : start browser2
30+ note left
31+ All Browser1
32+ and Browser2
33+ requests will
34+ be doing in
35+ parallel
36+ end note
37+ EUS --> Browser2 : start
38+ activate Browser2
39+ EUS --> Test
40+ Test --> EUS : upload video/audio\nfrom url
41+ EUS --> Browser1 : upload video/audio
42+
43+ Test --> Browser1 : open sut URL and wait for ready
44+ Test --> Browser2 : open sut URL and wait for ready
45+
46+ == Obtaining videos ==
47+
48+ Test --> Browser1 : get Subscriber1 and Publisher1 id
49+ Browser1 --> Test : ids (S1ID | P1ID)
50+ Test --> Browser2 : get Subscriber2 and Publisher2 id
51+ Browser2 --> Test : ids (S2ID | P2ID)
52+
53+ Test --> Browser1 : init Subscriber1 local recorder
54+ Browser1 --> Test : id (S1LRID)
55+ Test --> Browser1 : init Publisher1 local recorder
56+ Browser1 --> Test : id (P1LRID)
57+
58+ Test --> Browser2 : init Subscriber2 local recorder
59+ Browser2 --> Test : id (S2LRID)
60+ Test --> Browser2 : init Publisher2 local recorder
61+ Browser2 --> Test : id (P2LRID)
62+
63+ Test --> Browser1 : record and download (browser context)\nS1 & P1 videos
64+ Test --> Browser2 : record and download (browser context)\nS2 & P2 videos
65+
66+ Test --> Browser1 : get S1 & P1 video paths
67+ Browser1 --> Test : S1 & P1 paths
68+ Test --> Browser2 : get S2 & P2 video paths
69+ Browser2 --> Test : S2 & P2 paths
70+
71+ == Calculating QoE ==
72+
73+ Test --> EUS : start and process QoE\nfor S1 & P2
74+
75+ EUS --> "WebRTC \nQoEMeter1 ": start
76+ activate "WebRTC\nQoEMeter1"
77+ EUS --> Browser1 : get S1 video
78+ EUS --> Browser2 : get P2 video
79+ EUS --> "WebRTC \nQoEMeter1 ": send S1 & P2 videos
80+ EUS --> "WebRTC \nQoEMeter1 ": start QoE script async
81+ "WebRTC\nQoEMeter1" --> EUS
82+ EUS --> Test : identifier
83+
84+ loop
85+ Test --> EUS : wait for QoE script ends
86+ end
87+
88+ "WebRTC\nQoEMeter1" --> EUS : end script
89+ EUS --> "WebRTC \nQoEMeter1 ": get results in csv
90+ EUS --> EUS : process CSV and\ngenerate average for\neach in txt file\n(files will be\nattached to exec folder)
91+ EUS --> Test : csv list
92+ Test --> Test : assert csv list is\nnot empty
93+ Test --> EUS : get Average list
94+ EUS --> Test : average txt list
95+ Test --> Test : assert average list\nis not empty
96+
97+ note left of Test
98+ The same for
99+ Browser2 with
100+ S2 and P1 videos
101+ end note
102+
103+
104+ == End services ==
105+
106+ Test --> EUS : end services
107+ EUS --> Browser1 : end
108+ destroy Browser1
109+ EUS --> "WebRTC \nQoEMeter1 ": end
110+ destroy "WebRTC\nQoEMeter1"
111+ EUS --> Browser2 : end
112+ destroy Browser2
113+ EUS --> "WebRTC \nQoEMeter2 ": end
114+ destroy "WebRTC\nQoEMeter2"
115+
116+
117+ @enduml
0 commit comments