突发奇想,想作一点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
总结(不知对否,胡言乱语一下):服务器