A Stability Test Framework for flv live software
  • based on Golang and C#
  • Player machine provide API service by Golang revel framework
  • Player machine run GUI test via Ranorex
  • controller machine send HTTP request to Player machine to start GUI test
  • controller machine control other nodes via ssh
  • GUI test case play live channel via Chrome live_test.swf page

3 main roles

Controller machine      - Linux
Player machine          - Windows + flash debugger player
SDK machines            - Linux

Controller machine will stop player, stop sdk ,deploy sdk, start sdk Player machine run web service for swf player, accept HTTP request to start Ranorex to control player

Implementation

Controller machine

golang use net lib to visit player HTTP API
golang use rpc lib to deploy sdk to SDK machines
golang use net lib to visit player result

Player machine

Ranorex to control player and collect result
golang use revel to provide HTTP API

SDK machine

Large Hard Disk for long time running logs
Only run one SDK each machine
SDK root path is /root/sdk

Deployment

Windows Flash Player Machine

IP address: 192.168.2.7
User and Password: xuguoqinag/123456
Reboot windows via mstsc: open cmd; shutdown -r    
Installation: Ranorex, IE, Windows flash debugger player
Installation: golang 1.8.3
C:\cybertron\Controller>bin\revel.exe run playServer
http://localhost:9000/public/player/live_test.swf

Linux LivePush Machine

IP address: 192.168.3.174
User and Password: root/root
Push dir: /push/live-push-server
Start push: ./start.sh

Linux SDK Machine

IP address: 192.168.100.201-205
User and Password: root/root
SDK dir: /test/sdk

Run Test

Linux Controller Machine

IP address: 192.168.100.200
User and Password: root/root
. replace sdk: update sdk at /root/sdk (with log)
. cd /root/Controller/src
. start sdk: go run main.go -start_sdk
. stop sdk:  go run main.go -stop_sdk
. start play: go run main.go -start_play
. stop Ranorex: go run main.go -stop_play
. check result: go run status.go