3、UI 自动化测试
Appium在1.6.3开始对IOS新的自动化测试工具XCUITest进行支持,相比较IOS早先使用UIautomation测试,在控件识别的效率和稳定性上都有明显的提升。
外需要使用Facebook提供的开源WebDriverAgent来操控手机与Server通信,但是这个WDA在inspector和获取page resource方面还不足够稳定和完善,目前在支持Native和Hybrid的切换上也还不够便利。大家在实际使用时也可以尝试Macaca团队开发的XCTestWD。
UI自动化测试工作的落地最大的挑战并不是单纯的技术问题,而是如何能够贴近业务利用技术手段来解决实施过程中的阻碍。
UI自动化的目标是提高测试效率以加快迭代速度、降低资源成本、覆盖更大测试范围等,但是UI自动化的特点就是维护和调试成本高,稳定性比起底层自动化差,mobile相对于PC端则更为明显。
因此涉及到的核心问题就是ROI,很多团队无法将UI自动测试一直坚持做下去主要的原因也是ROI无法达到预期。所以需要我们思考如何降低UI自动化的实施成本,其中包括开发成本和运行成本。
UI自动化需要重点关注的领域:
l降低框架使用门槛(关键字驱动、录制、自然语言解析等…)
l框架和平台的debug、排错功能
l脚本跨平台、跨机型、跨版本的复用性
l基于场景的动态测试数据
l分布式执行平台(测试设备管理、Test case动态分配、执行、错误重试、远程调试、日志管理…)
l后台服务依赖Mock
四、自动化测试配套
为了解决上文中提到的自动化过程中动态测试数据、系统依赖、环境稳定、业务校验、脚本执行效率等问题,我们在自动化周边建设配套设施,主要包括提供:
动态测试数据工厂:主要包括测试数据的自动化构造、数据库数据后台自动轮询、已使用数据还原
Mock平台:人工配置接口报文、自动化配置报文、生产流量报文导入等
测试校验:可配置化断言、业务报文比对、页面图像比对
持续集成环境:自动化构建、测试用例分发、分布式执行、远程调试
在mock平台的建设上,需要把握以下重点:
调用方相互隔离
支持多种协议报文
上下文多接口串联mock
生产流量配置报文
支持场景化配置报文
跨团队的报文配置共享