记一次多端用户登录测试的过程
项目背景:现项目主要是做关于机器人的调度系统,涉及到web端、移动端、小程序及服务端和实体机器人端;
迭代背景:本次迭代的US中有多端用户登录;
记录方向:多端用户登录测试过程;
记录时间:20210208
=================================================================================
1、用户管理的CRUD;
本次迭代做的用户管理的CRUD,主要是用户创建,不是常规的用户注册;
1.1、数据库的设计
用户管理会关联到角色权限控制,所以在数据库的设计的时候,考虑到后期的扩展,做了如下的表设计;
主要分为四大块:
区域信息表用于存储用户与区域关系;
用户信息表用于存放用户基础信息;
角色信息表用于存放用户角色关系;
系统资源表用于存放角色对应资源关系;

1.2、微服务模块

1.3、用户管理的CRUD测试
该模块的测试过程就不在这儿描述了,本文主要记录多端用户登录测试的过程;
2、多端用户登录
登录主要基于Spring Security + Oauth2实技术实现。多种客户端使用不同的appId进行标识,同一种客户端的同一个帐号不能重复登录,但同一个用户可以在不同客户端上进行登录。权限遵循RBAC设计方式。登录支持密码模式登录和刷新token自动登录两种模式,客户端成功登录平台后,平台会为其颁发用于接口请求的accessToken和用于token刷新的refreshToken,如果客户端需要使用MQTT可以使用accessToken从平台请求mqtt的相关登录凭证。
2.1、token获取
客户端登录主要分为基于传统用户名和密码的登录方式及基于refreshToken的自动登录方式。不过是密码模式登陆还是刷新token登录,在登录成功后平台都会返回accessToken、refreshToken及token的有效期(accessToken的有效期)。因为刷新token有效期较长,客户端在收到token后需要保存刷新token,在accessToken过期时主动使用刷新token获取新的accessToken,该业务也可以用于用于自动登录。刷新token只能用户获取新的token使用,每次调用刷新token接口时会自动更新token有效期。
2.2、token校验
token的校验主要在业务网关内完成。业务网关在每次接收到用户请求后都会提取请求中的token请求头,然后调用认证服务的token校验接口校验token的有效性,在完成token校验后对该请求放行,否则会拒绝该请求并向客户端返回token无效的错误,
2.3、token解析
客户端发起请求时会将token放到请求头中,为了实现业务实现和token规则的解耦。token解析在业务网关内完成,网关解析token获得token对应的用户信息,然后将该用户信息序列化成json字符串(只保留用户关键信息)存放在新的请求头中供业务方使用,业务服务在收到请求后如果需要使用用户信息可以使用用户信息注解注入用户信息,也可以通过工具类获取。
2.4、用户权限
权限校验主要由业务网关、认证服务和用户服务完成,业务网关会拦截所有非权限白名单的请求并调用认证服务的权限校验接口判断当前请求是否有权限继续执行,如果有则放行用户请求到业务服务,否则返回权限不足的提示。
2.5、登录MQTT
客户端在获取到API请求token之后如果需要发起MQTT连接则需要向平台获取当前MQTT认证信息。MQTT获取请求由客户端发起,mars平台返回所需要的登录凭证,之后客户端使用登录凭证登录broker,broker通过http登录认证方式向mqtt服务提交登录认证,mqtt服务会通过调用链进行登录认证有效性校验,用户登录的请求会发送到用户服务进行校验,如果校验通过则连接成功,否则连接失败。
2.6、多端用户登录测试
多端登录主要涉及到web、app、小程序端,本文主要简单记录一下多端用户登录,现在网上大把用户登录测试功能点的文章;
主要的测试点分为:
- 每一端的登录测试及多种登录方式
- 多端不同登录方式
- 同端多客户端登录
- 账号密码及token(accesstoken有效、refreshtoken刷新登录)登录
- 登录失败次数限制及冻结、解冻
- token失效场景:token有效期过期、退出登录、密码重置、密码修改等方式
- 连接mqtt broker

浙公网安备 33010602011771号