속도 테스트JS
Speed-testJS는 사용자에게 인터넷 속도에 대한 풍부한 정보를 제공하는 JavaScript 기반 속도 테스트입니다. 사용자에게 전체 인터넷 경험에 대한 대기 시간, 업로드 및 다운로드 속도와 컨텍스트를 제공합니다. 속도 계층 데이터를 사용하여 표준 속도 테스트 결과에 적합한 측정항목을 추가하면 이제 사용자는 자신의 경험이 좋지 않은지, 좋은지 또는 좋은지 알 수 있습니다.
전개
테스트 서버에 배포하려면 ansible 폴더 아래의 README를 참조하세요.
클라이언트 서버 설정
애플리케이션은 서버를 실행하는 노드/익스프레스 소프트웨어와 클라이언트의 일반 javascript/html로 구성됩니다. 서버는 재설정 엔드포인트, 웹소켓 통신, 데이터베이스 상호 작용 및 클라이언트 웹사이트를 지원합니다.
섬기는 사람
Index.js는 애플리케이션을 실행하는 데 필요한 기능이 포함된 앱의 시작점입니다. 이 파일의 중요한 설정은 다음과 같습니다.
IP 주소 및 포트: 서버는 배포된 호스트 시스템의 ipv4 및 ipv6 주소에 자동으로 바인딩됩니다(예: app.listen(SERVERPORT,'::');). 추가로 포트는 app.listen(ADDITIONALPORT)을 사용하여 할당할 수 있습니다.
Http 요청: http 구성은 http 게시 및 도메인 간 요청을 허용하도록 정의됩니다.
WebSockets: websockets 통신이 정의됩니다.
REST 끝점: 나머지 끝점은 속도 테스트를 완료하기 위해 노출되며 다음을 포함합니다.
- 테스트 계획: 테스트 계획은 ipv4, ipv6 ipaddress 및 나머지 엔드포인트에 사용되는 포트와 서버 및 클라이언트 ipAddress에서 실행되는 웹 소켓을 포함하는 json 데이터를 반환합니다. 또한 추가 속도 테스트 기능(즉, 대기 시간 기반 라우팅 플래그가 반환될 수 있음)
- 대기 시간: 간단한 탁구 메시지를 반환합니다.
- 다운로드: 요청에 따른 바이너리 데이터
- 업로드: 업로드할 게시물을 수락합니다.
- downloadProbe: 요청에 따라 권장 다운로드 대역폭 테스트 크기를 반환합니다.
- 계산기: 데이터에 대한 통계를 제공하는 요청 배열을 기반으로 계산을 반환합니다.
- testServer: 대기 시간 기반 라우팅에 사용됩니다. 클로짓 서버를 찾는 데 사용할 수 있는 테스트 서버 URL을 클라이언트에 반환합니다.
구성: 일반 구성(포트, 대기 시간 기반 라우팅 등)은 index.js에 설정됩니다. 특정 사용자 정의(예: 데이터베이스)는 config 폴더 아래에 배치할 수 있습니다.
- 구성 매개변수
- 나머지 끝점
- 웹소켓
- 모듈 폴더에는 애플리케이션에 사용되는 사용자 정의 모듈이 포함되어 있습니다.
고객
클라이언트: 클라이언트 애플리케이션은 공용 폴더에 있으며 일반 자바스크립트로 구성됩니다. Index.html은 애플리케이션의 기본 시작 페이지이며 대역폭 속도 테스트의 전체 예를 포함합니다. 다음은 클라이언트 애플리케이션의 폴더 구조를 설명합니다.
- lib: lib 폴더에는 대역폭 및 관련 측정을 측정하는 데 사용되는 javascript 파일이 포함되어 있습니다.
- 예: 예제 폴더에는 lib 폴더의 측정 자바스크립트 파일을 테스트하는 데 사용되는 html 파일이 포함되어 있습니다.
- 기본 xmlhttprequest 및 websocket 객체
- 기본 Base xmlhttprequest 및 websocket 객체를 사용하는 다양한 테스트 스위트
- 테스트: 테스트 폴더에는 단위 테스트가 포함되어 있습니다.
- uilib: UI 관련 자바스크립트 파일입니다.
- img: 테스트용 이미지 또는 UI
수동 배포
Grunt는 애플리케이션을 실행하기 위해 서버에 애플리케이션을 배포하는 데 필요한 파일과 폴더를 패키지하는 데 사용됩니다. 단계는 다음과 같습니다.
- 루트 폴더에서 grunt 패키지 실행
- 결과 dist 폴더를 tar, zip 또는 압축합니다.
- 서버에 배포 및 압축 해제
- 콘솔에서 node index.js를 실행하세요.
애플리케이션 실행
애플리케이션을 로컬에서 실행하려면
- 복제 저장소
- 루트 폴더에서 npm install 실행
- node index.js 실행
- ipaddress:port 번호를 찾습니다. 즉, 로컬에서는 http://localhost:port가 됩니다.
데이터 베이스
dynamodb를 로컬로 설정하려면
- 링크의 지침에 따라 dynamodb를 로컬로 다운로드하고 실행하십시오(http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html).
- 로컬에서 AWS 자격 증명 설정 http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html
- dynamodb가 로컬로 설정되면 다음을 사용하여 테이블을 생성하고 데이터를 dynamodb에 삽입하도록 스크립트를 작성합니다(터미널에서 node Database.js 실행).
- 스크립트 실행 중 테이블 이름 및 서버 정보 변경