2015-10-20 65 views
4

我有一個node.js後端,其中包含安靜的API端點。我可以使用wrk來測試http GET,POST,PUT請求。我還可以使用pm2模塊來跟蹤CPU和內存使用情況。基準測試express.js登錄會話

但我該如何模擬多個登錄會話?我想用基準測試記錄會話的內存使用情況,並找出1GB RAM有多少用戶可以與服務器建立登錄會話。 (我認爲當我在pm2上看到100%的內存使用率和來自wrk的高延遲時間,這是我的服務器可以採用的最大會話連接數)而且我在正確的軌道上?

P.S:我用passport.js處理登錄。

+1

你可以看看passport.js測試(https://github.com/jaredhanson/passport/tree/master/test),適應他們爲你的使用情況(可能使用https://github.com/ visionmedia/supertest),並在循環中運行它們(或使用https://www.npmjs.com/package/benchmark)。然後,它會成爲測試套件的一部分,您運行得較少(即不在開發過程中),以確保沒有性能迴歸。 – nha

+0

您可以分享一些測試代碼,以便我們查看爲您的測試環境設置了哪種數據庫/服務器?這將決定我們如何看待一次對多個會話進行基準測試。 –

+0

這樣的事情。 http://passportjs.org/docs所有你做'POST'到/登錄,你將被登錄。什麼護照是:登錄並給你一個會話cookie,在將來你只發送這個cookie,它會比較這個cookie並獲取你的用戶配置文件 –

回答

4

你所試圖做的是通常被稱爲「負載測試」。

有許多工具來模擬許多併發用戶和壓力測試您的網站,如聰,ApacheBench,JMeter的等

下面是關於如何設置JMeter的,這樣就可以加載測試你的登錄頁面的教程: https://www.youtube.com/watch?v=hGkrSFKcj10

當你運行測試,JMeter是要催生更多的新用戶,這些用戶登錄(即做一個成功的HTTP POST請求),直到響應時間變得太大,如果你有PM2,而你運行測試正在運行,您將能夠看到有多少內存和進程佔用了最高併發用戶。

+0

ubuntu 14.04似乎有困難安裝jmeter,嘗試不同的來源..這是一個測試登錄的標準? –

+0

這真是令人驚訝。你是通過'apt-get'安裝的嗎? –

+0

不知何故,我再次嘗試,並安裝這次...讓我這次讀入它。 –