速度測試JS
Speed-testJS 是一種基於 JavaScript 的速度測試,可為使用者提供有關其網路速度的豐富視圖。不僅為用戶提供延遲、上傳和下載速度以及整個網路體驗的背景資訊。使用速度等級數據將合格指標添加到標準速度測試結果中,用戶現在可以知道他們的體驗是差、好還是好
部署
若要部署到測試伺服器,請參閱ansible資料夾下的 README。
客戶端伺服器設定
該應用程式由運行伺服器的節點/express 軟體和客戶端上的純 javascript/html 組成。伺服器為重置端點、Websocket 通訊、資料庫互動和客戶端網站提供支援。
伺服器
Index.js 是應用程式的起點,包含執行應用程式所需的功能。該文件中的重要設定是:
IP 位址和連接埠:伺服器將自動綁定到其部署到的主機的 ipv4 和 ipv6 位址(即 app.listen(SERVERPORT,'::');)。可以使用 app.listen(ADDITIONALPORT); 分配額外的連接埠
Http 請求:http 設定被定義為允許 http posts 和跨網域請求。
WebSockets:定義了websockets通信
REST 端點:暴露其餘端點以完成速度測試,包括以下內容:
- testplan:testplan 將傳回包含 ipv4、ipv6 IP 位址和連接埠的 json 數據,這些數據用於在伺服器和用戶端 ip 位址上運行的其餘端點和 Websocket。還有額外的速度測試功能(即可以返回基於延遲的路由標誌)
- 延遲:傳回簡單的 pong 訊息
- 下載:根據請求的二進位數據
- upload:接受貼文上傳
- downloadProbe:根據請求返回建議的下載頻寬測試大小
- 計算器:根據請求數組傳回計算結果,給出資料統計資訊。
- testServer:用於基於延遲的路由。
配置:通用配置(連接埠、latencyBasedRouting...)在index.js 中設定。具體的客製化(即資料庫)可以放在config資料夾下
- 配置參數
- 休息端點
- WebSockets
- Modules 資料夾包含用於應用程式的自訂模組。
客戶
客戶端:客戶端應用程式駐留在公共資料夾中,由純 JavaScript 組成。 Index.html 是應用程式的預設起始頁,將包含頻寬速度測試的端到端範例。下面描述客戶端應用程式的資料夾結構:
- lib:lib 資料夾包含用於測量頻寬和相關測量的 javascript 檔案。
- 範例:範例資料夾包含用於測試測量的 html 檔案 lib 資料夾中的 javascript 檔案
- 基本 xmlhttprequest 和 websocket 對象
- 使用基本 Base xmlhttprequest 和 websocket 物件的不同測試套件
- test:test資料夾包含單元測試
- uilib:特定於 UI 的 javascript 檔案。
- img:用於測試或使用者介面的圖像
手動部署
Grunt 用於打包所需的檔案和資料夾,以將應用程式部署到伺服器來執行應用程式。步驟如下:
- 從根資料夾執行 grunt 包
- tar、zip 或壓縮生成的 dist 資料夾
- 在您的伺服器上部署並解壓縮
- 從控制台執行節點index.js。
運行應用程式
在本地運行應用程式
- 克隆倉庫
- 從根資料夾運行 npm install
- 運行節點index.js
- 瀏覽至 ip 位址:連接埠號碼(即本機位址為 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 中(從終端執行節點database.js)
- 執行腳本時更改表名稱和伺服器訊息