QA Engineering/Performance Test

Media Streaming Latency Test

일해라폴폴 2017. 3. 14. 17:45
반응형

Media Latency Accuracy



해당 wiki page는 iOS Application의 client 와 server간의 성능 검증을 위해 Streaming service의 Media Latency 측정의 방법을 정리 하였다.
측정을 위해서는 미리 wireshark가 설치되어 있어야 하며 iPhone의 검증이므로 MAC이 있어야 한다.


Wireshark 설정


Relay Server 접속 방법 및 Packet Dump방법 Client(iOS) Packet Dump방법

테스트 수행 및 Media Latency 계산 방법 테스트 수행

Media Latency 계산 방법

테스트 방법 및 구성도

- 아래 그림에서와 같이 Requster(Client) / Relay Server / Challenger(Client)에서 Packet Dump를 동시에 수행하여 보내고 받은 순서에 맞추어 Packet들의 delay가 얼마나 발생한지를 측정하여 Media Latency를 계산한다

Media Latency 계산시에는 Wireshark Tool을 이용하여 Parsing된 각각의 packet의 UTC Time값을 이용하여 Packet을 보내거나 받은 시간을 활용하도록 한다.
[Requster ------> Relay Server] 까지의 Latency와 [Relay Server --------> Challenger] 까지의 Latency를 UTC Time값의 Gap을 이용하여 각각 계산하고 이를 취합하여 최종적으로 Total Delay를 계산하는 방법으로 테스트를 진행한다.

전체적인 테스트 방법이나 구성도는 위와 같으며 자세한 테스트 방법 및 환경 설정은 아래에 추가적으로 설명하고 있다. 테스트 환경 설정 방법

- 아래 테스트 방법은 모두 Mac OS 사용자 기준으로 작성되었습니다. Wireshark 설정

Wireshark 공식 Page : http://www.wireshark.org
우선 위 공식 Page로 부터 최신 Wireshark를 다운받아 설치한다

현재 Play4Me에서 Video Streaming(H.264 Codec)으로 RTP Protocol을 쓰고 있으나 Wireshark로 Packet Capture한 File을 Open하면 일반적인 Payload Type과 차이가 있어 RTP가 아닌 UDP로 Parsing이 되는 현상이 발생을 한단.
이를 해결 하기 위해서는 아래와 같이 RTP Payload Type을 별도로 설정해 주어야 한다

Wireshark->Edit->Preferences->Protocols->H264 : H264 dynamic payload types에 125를 입력해준다.

추가적으로 UDP를 RTP로 Parsing하기 위해서는 아래와 같이 UDP Packet을 클릭한후 단축메뉴의 "Decode As"에서 RTP를 선택해 주어야 한다.

"Apply"를 클릭하면 아래와 같이 정상적으로 기존 UDP Packet으로 Parsing되던 부분들이 정상적으로 H.264 RTP

Packet으로 Parsing되는 것을 확인할 수 있다.

Relay Server 접속 방법 및 Packet Dump방법

SSH 프로토콜(22 Port) 를 통하여 해당 RS로 접속이 가능함. ssh skplanet@gmvr.cloudapp.net
pw : dpaqmdl3#(엠브이3#)

TCPDUMP 명령어는 root계정에서만 실행 가능함

[skplanet@RS-1 ~]$ sudo su - pw : dpaqmdl3#(엠브이3#)

TCPDUMP 명령어 실행

[root@RS-1 ~]# tcpdump -i any src Caller IP or -i any dst Callee IP and proto UDP -B 4096 -v -vv -w `date "+%y%m%d_%H%M"`.pcap

옵션

설명

비고

-i

Device 이름

any는 어느 네트워크 장비든 모두

src

Caller의 IP

dst

Callee의 IP

or, and

조건식

proto

프로토콜의 종류 지정

UDP만 뽑음

-B

Buffer size 지정

보통 지정안하면 2K

-v, -vv

자세히, 더자세히

-w

파일로 저장

`date "+%y%m%d_%H%M"`.pcap

파일명을 날짜, 시간으로 지정

예 ) 140210_0244.pcap

Client(iOS) Packet Dump방법

Client의 경우 해당 Mac OS에서 두개의 단말을 연결하여 Packet Dump를 수행해야하기 때문에 Requster와 Challenger가 바뀌지 않도록 유의하여야 한다.
관련 URL 정보 : http://blog.manbolo.com/2013/02/22/analysing-ios-app-network-performances-on-cellularwifi#1
Device의 UDID확인

Xcode Organizer를 이용하여 다음과 같이 UDID값을 확인할 수 있다.

Device Network Interface 연결
Terminal에서 아래와 같이 명령어를 입력하면 Mac OS와 iOS Device를 가상의 Network Interface로 연결할 수 있게 된다.(Requester/Challenger 단말에 대해 각각 연결해 주어야 한다)

$ rvictl -s [udid]

아래와 같이 rvi0 / rvi1 2개의 Interface에 대해 dump를 수행한다.
위에서 "rvictl"을 이용하여 연결한 순수대로 순번이 붙는다는 점에 유의하여 Requester와 Challenger를 구분하여 Packet Dump를 수행할 수 있도록 하여야 한다.

$ sudo tcpdump -i rvi0 -n -s 0 -w dump_requseter_01.pcap
$ sudo tcpdump -i rvi1 -n -s 0 -w dump_challanger_01.pcap

테스트 수행 및 Media Latency 계산 방법

테스트 수행

Device : iPhone 5/5c/5s 중 2대(Requester/Challenger 각 1대)
테스트 시간 : 1분 가량
테스트 횟수 : 호 연결 -> 종료를 10회 수행
테스트시 테스트 횟수에 맞추어 Packet Dump파일들을 구분하도록 한다.(예를 들어 xxxx_01.pcap, xxxx_02.pcap, xxxx_03.pcap)

Media Latency 계산 방법

Media Latency는 위에서 언급한 바와 같이 [Requster -----> Relay Server] 구간과 [Relay Server ------> Challenger] 구간을 각각 구분하여 계산하여 취합하여 계산을 수행한다.
Wireshark를 이용하여 CSV(Excel형태)로 변환하기

각각의 Packet Dump파일을 열어 H.264 RTP로 Parsing되도록 Wireshark 환경을 설정하고, UTC Time이 정상적으로 보여지는 확인한다.
Wireshark->File->Export Packet Dissections -> as "CSV" file 을 선택하여 CSV형태로 추출해 낸다.

Excel App을 이용하여 해당 CSV 파일을 열어 보면 아래와 같이 Excel형태로 보여지는 것을 확인할 수 있게 된다.

위와 같이 변환된 Excel파일을 이용하여 Time Gap을 계산하고 이에따른 평균값을 이용하여 구간별 Delay 및 End-to-End Delay를 계산하여 테스트를 완료한다. 


반응형

'QA Engineering > Performance Test' 카테고리의 다른 글

Set of user defined variables of jmeter  (0) 2017.06.08
Apache JMeter  (0) 2017.04.12
단말별 성능 시험 조건 설정  (0) 2017.03.14
Agilent 34401A User Manual  (0) 2016.03.28
Agilent Digital Multi-Meter Manual  (0) 2016.03.28