Appium 如何知道用户是否登录,如果登录则不进行登录操作

醋精测试媛 · 2021年03月19日 · 最后由 陈恒捷 回复于 2021年03月22日 · 2973 次阅读

APP 在登录成功之后,下次再进入该 APP 时,一般都已经处于登陆状态;所以判断该 APP 是否已经登录,一般来说,可以通过登录成功后的首页的元素来判断是否登录。

然而,现在面临的情况是:

  • 每次无论是否登录,都会先经过一个导航页(导航页中的元素也包含于登录页中),并且这个导航页出现的时间无法确定。因此比较难通过登录成功后的首页元素来判断。

  • 如果先 Test Login 用例类在 set up class 中判断是否已经登陆,但是已经进入用例中了,unittest 框架的 suite 的特性导致无法再跳过登陆的用例了:

    比如,我在 set up class 中获取到了当前已经登陆了(self.is_logged = True),但是在用例前面增加注释@skip_if(is_logged,"当前用户已经登陆,所以跳过登录测试"),这样子这个用例仍然会进行!

现在想到的办法是通过 adb 获取用户的登陆状态(如果可以做到的话?)如果已经登陆,则不把 Test Login 添加到 Test Suite 中,或者各位自动化测试的同学是怎么处理这个情况的呢?

共收到 2 条回复 时间 点赞

可以通过拿上次的 token 来去访问接口来查看是否过期吗?

第二点没太明白。固定执行 Login 操作,里面判定已经登录过就什么都不做,没登录过就进行登录。这样后面的 case 都是基于已登录来进行,是否可以?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册