• 聊一聊在Airtest自动化中如何清除iOS后台应用


    前言

    不知道做iOS测试的同学有没有遇到过1个非常让人苦恼的问题:每次打开iOS应用的界面都是上次退出时的界面,应用初始页面不一致,导致脚本运行出现了各种问题。

    但iOS平台并不支持 clear_app() 接口,所以无法像Android那样直接调用 clear_app() ,就能把应用进程杀掉。而 stop_app() 也只能把应用放到后台,下次再唤起应用时,初始页面依旧是上次退出时的页面。

    所以究竟有没有什么办法可以清除iOS的后台应用,从而保证应用的初始页面一致呢?下文我们一起来探讨下。

    清除iOS后台应用实践

    既然没有接口可以给我们用来清除iOS的后台应用,那我们可以换一种解决思路,用Airtest模拟清理后台应用的行为:双击HOME键/从底部向上滑动,唤出多任务切换的界面,再通过向上滑动的动作,逐一清理后台应用。

    但实践后发现,执行两次 keyevent("HOME") 并不能实现双击HOME键的效果;从底部向上滑动也不能如预期那样唤出多任务切换的界面。

    那还有没有别的方式可以唤出多任务的界面呢?其实是有的,在我们最常见的苹果圆点样式的辅助功能按钮中,包含了1个名为 应用切换器 或者 多任务 的快捷功能。

    1. 在辅助触控中设置应用切换器

    我们在示例设备中依次找到 设置--通用--辅助功能--辅助触控 ,打开 自定顶层菜单 ,点击 自定 的图标,将其改成 多任务 ,此时单击苹果的圆点按钮,就可以看到里面已经出现了一个 多任务 的快捷键图标:

    设置好之后,我们可以通过Airtest的点击脚本,轻松唤出多任务切换的界面:

    2. 提高清除iOS后台应用脚本的兼容性

    虽然上述脚本可以完成清除后台应用的工作,但实际在脚本编写和运行的过程中,很容易发现一些影响兼容性的问题:

    ① 苹果的圆点按钮在闲置时会变成透明的,所以截图时会把手机背景也连带着截进去,换设备执行的时候容易找不到图或者匹配出错误结果:

    这个问题我们可以在设置中把这个圆点按钮的闲置透明度改成100%,即闲置时,圆点按钮也不会变成透明的效果:

    把其余待测iOS设备的圆点按钮透明度都设置为100%,即闲置时圆点按钮也是全黑不透明的,此时的截图脚本就可以在更多机器上成功运行了:

    ② 不同型号的iOS任务切换器图标不全相同

    比如iPhone 6的任务切换器图标:

    iPhone 7 plus的多任务图标:

    不同型号的苹果设备,存在不一样的应用切换器图标,那我们总不能换一台设备就改一次点击切换器图标的脚本把?当然不是。更好的解决办法是,我们把这几种图标保存在1个列表里面,只要列表中的任意1个图标出现了,我们就进行点击操作:

    这样即使更换了iOS设备,应用切换器的图标不一致了,我们还是可以使用同一个脚本:

    小结

    关于清除iOS后台应用的教程就讲解到这里,解决思路由我们的airtest用户cy hus提供。如果同学们有更好的解决办法,也欢迎在我们的官方答疑Q群(1017250147)中分享~


    AirtestProject官方答疑Q群:1017250147

    Airtest官网:http://airtest.netease.com/
    Airtest教程官网:https://airtest.doc.io.netease.com/
    搭建企业私有云服务:https://airlab.163.com/b2b

  • 相关阅读:
    20145223《信息安全系统设计基础》第11周学习总结
    20145223《信息安全系统设计》 实验四 驱动程序设计
    20145223 《信息安全系统设计基础》实验三 实时系统的移植
    20145223《信息安全系统设计基础》第10周学习总结
    ES6---解构赋值
    ES6-----声明变量
    js闭包和原型链好文
    react知识点
    HTML5----canvas
    webSQL
  • 原文地址:https://www.cnblogs.com/AirtestProject/p/13678099.html
Copyright © 2020-2023  润新知