记一次 UI 自动化导致 APP 未响应问题

。 测试交流1 130字数 1272阅读模式

问题

在编写 APP 的 UI 自动化用例的时候,发现使用脚本跳转页面后,APP 出现没有响应的问题,但是手工操作却没有这个问题

with allure.step("点击立即购买,跳转到收银台"):
vip.click(vip.jiaxiang_img, duration=None)
assert vip.has_element(checkstand.pay_page), '跳转到收银台失败'

脚本上也只是操作了两步文章源自玩技e族-https://www.playezu.com/181982.html

  1. 点击元素
  2. 查看元素是否存在

使用工具测试时候发现,点击获取元素的时候,APP 也会出现奔溃的问题文章源自玩技e族-https://www.playezu.com/181982.html

所以大概率是代码上有问题文章源自玩技e族-https://www.playezu.com/181982.html

发现过程

由于导出奔溃日志给开发和查看 Appium 的输出日志都没有找到问题的具体原因,所以只能采用逐行注释代码的方式找到出错的位置。文章源自玩技e族-https://www.playezu.com/181982.html

在第一步点击「立即购买」之后,页面会跳转到「收银台」页面文章源自玩技e族-https://www.playezu.com/181982.html

收银台页面会先并行请求7个接口,然后将数据渲染到页面,然后再请求2个接口重新渲染一次页面文章源自玩技e族-https://www.playezu.com/181982.html

先将全部操作都去除,只请求 1 个接口,依次增加,直至请求了 7 个接口,没有卡死。文章源自玩技e族-https://www.playezu.com/181982.html

将第一次页面数据渲染也恢复,仍没有卡死。文章源自玩技e族-https://www.playezu.com/181982.html

将后 2 次接口请求也恢复,仍没有卡死。文章源自玩技e族-https://www.playezu.com/181982.html

将最后一次页面渲染添加上去,页面出现了卡死。文章源自玩技e族-https://www.playezu.com/181982.html

从上面的尝试中可以发现,页面卡死是因为最后一次的页面渲染导致的。

所以着重分析这一部分代码

问题原因

页面上显示的是:「购买即视为同意《微医会员协议》」,其中「《微医会员协议》」被标记为了黄色

对应的代码为

int index = warnInfo.indexOf("n");
if (index <= 0){
index = warnInfo.length();
}
spannable.setSpan(clickableSpanMember,7,15,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(clickableSpanSource,15,index,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE (前后都不包括)。用来标识在 Span 范围内的文本前后输入新的字符时是否把它们也应用这个效果。

clickableSpanMemberclickableSpanSource是两个点击事件

所以

  • 7-15 个字符的点击事件是clickableSpanMember
  • 15+ 后的字符的点击事件是clickableSpanSource

但是实际上接口没有返回这么多内容,只有「购买即视为同意《微医会员协议》」这 15 个字符,现在代码中对后面的空字符串也设置了点击事件。

这部分代码编译和运行的时候都不会出错,但是使用 Appium 进行元素查找的时候就会出错

改为先判断字符长度然后设置点击事件:

if (warnInfo.length() >16){
spannable.setSpan(clickableSpanSource,15,index,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}

修改之后 Appium 可以正常查找元素,不会出现 APP 崩溃现象

玩技站长微信
添加好友自动发送入群邀请
weinxin
rainbow-shownow
玩技官方公众号
官方微信公众号
weinxin
PLAYEZU
 
  • 版权提示:本站仅供存储任何法律责任由作者承担▷诈骗举报◁▷新闻不符◁▷我要投稿◁
    风险通知:非原创文章均为网络投稿真实性无法判断,侵权联系2523030730
    免责声明:内容来自用户上传发布或新闻客户端自媒体,切勿!切勿!切勿!添加联系方式以免受骗。
  • 原创转载:https://www.playezu.com/181982.html
    转载说明: 点我前往阅读>>>
    • xyhiacb
      xyhiacb 9

      有理有据真不错,膜拜这种分析刨根能力,真不错

    匿名

    发表评论

    匿名网友
    确定