1. 前期准备事项
a) 涉及代码分支
b) IDMS涉及修改点:
将配置文件置于/data/目录下;
修改Http协议网络管理VolleyManager,在原基础上增加Cookie的全量获取,而不是原来的默认只取第一条;
修改三方登录在不支持设备认证的时候,handleLogin登录失败,原因是设备登录失败转本地离线登录,修改为三方不限制设备认证,直接登录;
增加IDMS表单登录时,对“username”和“login”的解析,第三方登录拿到表单的时候,在解析表单的字段的时候使用的是username,有些则是login(如:Alea)。
c) 需要的整机要求:
2019年9月的测试中,使用的终端为root(重要)后的EP821,整机版本为5.1_X6对应的B691。
d) 网元环境:该测试中不需要走核心网,因此不需要设备认证,只需要三方测试的网元环境。
2. 相关工具
a) 登录使用的APK;
b) 开发人员提供相应脚本工具,如apk安装、日志获取;
c) 测试必要安装adb调试工具,方便安装apk和获取日志;
d) 测试、开发选择安装WireShark抓包分析工具,或者其他抓包分析工具;
e) 其他:建议测试可选择安装Postman接口测试工具,用于测试三方登录接口等。
3. 注意事项
a) 三方登录中,不需要设备登录,按理也是不需要设备认证,走我方核心网(但往年有设备认证);
b) 测试中需要的字段和参数来源于配置文件中,该配置文件以前是置于sdcard根目录中,由于登录服务启动非常早,sd卡可能还未挂载,会导致配置文件读取失败(终端Android系统差异,EP820成功,EP821失败),因此将配置文件置于/data/目录下;
c) 终端设备认证会失败,通过切飞行重新入网后激活用户登录,后用户登录接口请求的时候,由于设备认证失败会转离线,所以需要强制修改成在线登录(参考IDMS第三条修改点:handleLogin);
d) Volley网络框架对于Cookie的获取默认采取的方式是只获取一条,因此三方服务器如果有将重要的参数置于请求返回体Header的Cookie中,需要客户端保证一定获取完整;
e) 三方服务器返回的表单中(基本认证成功后会返回HTML表单),通常为用户名和密码两个字段,客户端在解析这两个字段时,各个厂家的字段名字可能会有差异,测试可以通过抓包获取具体字段;
f) 除了在用户登录服务启动的时候会读取一次,后面3GPP状态机启动的时候也会读取一次,用于读具体的接口地址等参数,登录模块目前读取算法是遍历所有名字为mcptt-ue-init-config.xml的文件,往往会读到以前未用到的同名文件(,确保不会发生异常,需要先删除之前的同名文件。