突發奇想,想作一點Node應用的性能測試,本身也瞭解一些性能測試方面的知識,因而用Eggjs寫了一個簡單的註冊接口,進行了簡單的壓力測試.
async login(ctx) { // 登陸 ctx.validate(userRule); // 用戶校驗 const { name, passwd } = ctx.request.body; let user = await ctx.model.User.findOne({ where: { name: name } }); if (user) { ctx.error(user.passwd === passwd, "密碼錯誤或暱稱已存在", 10001); } else { user = await ctx.model.User.create({ name: name, passwd: passwd }); } // 生成token和session並存儲 const token = await ctx.service.token.genToken(user.id, ctx.request.ip); await app.redis.set(`${app.options.sessionPrefix}:${token.id}`, JSON.stringify({ user: user.id, token: token.id })); ctx.cookies.set("access_token", token.id); ctx.jsonBody = user; }
接口邏輯很簡單,可見接口中僅有4個I/O操做,下面的性能測試就是針對這個接口.java
apache-jmeter-3.3/bin/jmeter.bat
接下來點擊開始按鈕進行測試.mysql
首先看下圖形測試結果:redis
圖表底部參數的含義以下:sql
聚合報告結果:apache
部分參數解釋:json
總結(不知對否,胡言亂語一下):服務器