今天测试的同学反馈说他们的被测前端在开启覆盖率的时候出现在登录页面登录成功以后然后又自动跳转到了登录页面。
分析
首先听到这个消息的时候,我的第一反应是不是出现过之前的情况,就是浏览器在请求服务的静态资源的时候,如果出现不存在的静态资源的情况下,node服务会将其重定向到登录的页面。所以尝试去抓包后发现并没有出现静态资源请求不太的情况。 所以又重新再观察了下抓包到的数据。
发下登录后提示说用户不属于该组织,并且前端直接发出了退出登录的请求。
找了开发了解了下这个返回这样子的结果是因为用户不属于发送过来的productId。所以我们看下发过去的productId是什么?
产品Id是bytello 这个就不对了,我们预期的产品应该是command才对的。
那这个产品id是什么时候应该要去修改的呢?又跟开发同学沟通了下。这个修改判断逻辑是在 p_login_xxxx.js的文件逻辑中
所以我们尝试去查看下里面的内容
有这样子的内容。但是这里就有很大的问题了,为啥这里的process.env.DMS_HOST 不是字符串呢。babel编译的时候并没有替换掉它。到这里我们的问题 大概清晰了。其实主要问题 还是在代码上,可能是编译之类的问题。
原因
我们直接在对应的仓库里面搜索关键之 DMS_HOST.
这个是测试环境的配置文件。
然后我们发现在 istanbul.config 中
却没有这个变量。 这个istanbul.config是拿来进行打插桩包使用的。
所以这就是为什么在login_xxx.js中显示的是process.env.DMS_HOST
的原因了。因为根本就找不到这个变量。