Appium -iOS真机运行自动化实践

简介:

前提:ios真机环境已安装ok

运行ios自动化的步骤如下:

步骤1、手机端安装WebDriverAgent

1、下载webdriverAgent ,从github上下载代码
运行初始化脚本
./Scripts/bootstrap.sh
该脚本会使用 Carthage 下载所有的依赖,使用npm打包响应的js文件
执行完成后,直接双击打开 WebDriverAgent.xcodeproj 这个文件。
2、配置WebDriverAgent环境
在以下三个文件中都需要进行配置:
image2018-4-9%2014%3A11%3A49.png?version
 (1). 编译WebDriverAgentLib
注:Bundle identifier:com.xxx.yyyyy   (xxx每个人都要不一样才行)
image2018-1-30%2014%3A39%3A21.png?versio
 (2).编译WebDriverAgentRunner
    
image2018-1-30%2014%3A39%3A34.png?versio
(3)配置 IntegrationApp
image2018-4-9%2014%3A15%3A47.png?version
(4)
    
image2018-1-30%2014%3A39%3A45.png?versio
(5).在终终端输入:xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=udid' test,待执行完成后手机端会安装WebDriverAgent。
一切正常的话,手机上会出现一个无图标的WebDriverAgent应用,启动之后,马上又返回到桌面。这是很正常的不要奇怪
此时控制台界面可以看到设备的IP。如果看不到的话,使用这种方法打开
image2018-1-30%2014%3A40%3A58.png?versio
通过上面给出的IP和端口,加上 /status 合成一个url地址。例如 http://10.0.0.1:8100/status ,然后浏览器打开。如果出现一串JSON输出,说明WDA安装成功了。
若运行后出现:TEST Fail,如下报错:
image2018-4-4%2015%3A20%3A39.png?version
解决:卸载手机上的 WebDriverAgentRunner程序,重新执行xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=udid' test,

在进行端口转发:

有些国产的iPhone机器通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac上。

$ brew install imobiledevice  这里若出现以下报错,没关系,直接往下走:

image2018-4-4%2015%3A22%3A47.png?version

$ iproxy 8100 8100

接着使用iproxy --help 可以查到更具体的用法。 这时通过访问http://localhost:8100/status确认WDA是否运行成功。

步骤二、打开appium-desktop,启动appium server+启动inspector,获取页面元素

1、StartServer
image2018-1-30%2014%3A43%3A6.png?version
2、创建Inspector session
image2018-1-30%2014%3A43%3A23.png?versio
3、创建好session后,session的参数信息必须和当前链接的设备信息一致,否则会报错误信息,最后start session,就可以看到下图的dom树结构,如果出现图3,则说明需要重新编译运行WebdriverAgent了

image2018-1-30%2014%3A43%3A50.png?versio

image2018-1-30%2014%3A44%3A10.png?versio


步骤三、在原来框架的基础上,写Appdriver驱动

image2018-1-30%2014%3A45%3A37.png?versio

步骤四、写自动化case

image2018-1-30%2014%3A46%3A27.png?versio


ios的元素获取可以通过xpath,name,label,assessbilityid获取,上述通过name获得

步骤五、运行testng

image2018-1-30%2014%3A46%3A56.png?versio


可以看到case运行正常
image2018-1-30%2014%3A47%3A15.png?versio

参考文档:

  1. https://www.jianshu.com/p/2b4236086165
  2. https://blog.csdn.net/weixin_39142498/article/details/78950804
  3. https://testerhome.com/topics/7775
  4. https://testerhome.com/topics/4904
  5. https://testerhome.com/topics/7220
  6. https://www.cnblogs.com/yuhanle/articles/8213675.html
目录
相关文章
|
28天前
|
移动开发 安全 数据安全/隐私保护
iOS 全局自动化代码混淆工具!支持 cocoapod 组件代码一并混淆
iOS 全局自动化代码混淆工具!支持 cocoapod 组件代码一并混淆
|
2月前
|
并行计算 Linux 计算机视觉
还在手工标注数据集?快来试一试自动化多模型标注大模型-gui交互式标注(部署运行教程-高效生产力)
还在手工标注数据集?快来试一试自动化多模型标注大模型-gui交互式标注(部署运行教程-高效生产力)
70 0
|
25天前
|
运维 监控 持续交付
构建高效自动化运维体系:策略与实践
在数字化时代,企业IT基础设施的管理和维护变得日益复杂。为了提高效率、降低错误率并快速响应市场变化,构建一个高效的自动化运维体系至关重要。本文将探讨自动化运维的核心策略,并通过实际案例分析展示如何将这些策略应用于日常管理中,以实现IT运维的优化。
15 0
|
3天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
3天前
|
测试技术 持续交付 Docker
Django中的自动化部署与持续集成实践
【4月更文挑战第15天】本文介绍了Django项目中自动化部署与持续集成的实践方法。自动化部署通过选择Ansible、Fabric或Docker等工具,编写部署脚本,配置持续集成工具(如Jenkins、GitLab CI),确保服务器环境一致,实现快速应用上线。持续集成则涉及配置版本控制系统,设置自动化构建和测试,编写全面的测试用例,集成代码质量检查工具,并配置通知机制,以提升代码质量和开发效率。这两者结合能有效提升项目的迭代速度和可靠性。
|
10天前
|
运维 监控 Kubernetes
构建高效自动化运维体系的实践与思考
【4月更文挑战第8天】在数字化时代,IT基础设施的复杂性日益增加,传统的手工运维模式已经难以满足快速响应和高效率的需求。本文将探讨如何通过自动化工具和策略构建一个高效的自动化运维体系,旨在提高系统的稳定性、减少人为错误以及优化资源分配。文章首先分析了自动化运维的必要性,接着介绍了实现自动化的关键技术和工具,并通过案例分析展示自动化运维体系的实际效果。最后,对自动化运维的未来发展趋势进行了展望。
|
26天前
|
敏捷开发 IDE 测试技术
深入理解自动化测试框架Selenium的设计理念与实践
随着敏捷开发和持续集成的理念深入人心,自动化测试在软件开发周期中扮演着越来越重要的角色。Selenium作为一个广泛使用的自动化测试工具,其设计理念和实践对于提高测试效率和质量具有指导意义。本文将深入探讨Selenium的核心设计原则、架构以及最佳实践,旨在帮助读者构建更稳定、高效的自动化测试系统。
|
26天前
|
jenkins 测试技术 持续交付
深入理解自动化测试框架设计原则与实践
本文旨在探讨自动化测试框架的设计原则及其在实际项目中的应用。通过对自动化测试框架的系统剖析,我们揭示了有效构建和维持测试框架的核心要素,并提供了一套实用的指导方案来帮助读者实现高效、可靠的自动化测试流程。文章不仅聚焦于框架的技术细节,也强调了灵活性、可维护性和可扩展性在设计时的重要性,同时结合实际案例分析,展示了如何在不同测试环境中定制化和优化测试框架。
|
27天前
|
运维 监控 Devops
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
在数字化转型的浪潮中,企业的IT基础设施和软件交付模式正经历着深刻的变革。传统的运维方式已难以满足快速迭代、灵活扩展的现代业务需求。本文将探讨如何通过容器技术实现高效的自动化运维体系,重点分析持续集成(CI)与持续部署(CD)的实践方法及其对企业运维效率的影响。通过引入微服务架构、容器编排、DevOps文化等概念,我们旨在为读者提供一套全面的自动化运维解决方案,以支持业务的敏捷性和可扩展性。
|
28天前
|
机器学习/深度学习 人工智能 运维
构建高效自动化运维体系的探索与实践
【2月更文挑战第30天】 在信息技术迅猛发展的今天,企业对于IT系统的依赖日益加深。随之而来的是运维工作的复杂性和难度不断上升,传统的手动运维模式已经难以满足快速响应和高效率的需求。本文旨在探讨如何构建一个高效的自动化运维体系,以提升系统稳定性、降低人为错误并优化资源配置。文中将详细介绍自动化运维的核心组件,包括配置管理、持续集成与持续部署(CI/CD)、监控告警以及故障自愈等,并通过实际案例分析自动化运维实施过程中的关键考量因素和挑战。

热门文章

最新文章