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

简介:

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

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

步骤1、手机端安装WebDriverAgent

1、下载webdriverAgent ,从github上下载代码
运行初始化脚本
./Scripts/bootstrap.sh
该脚本会使用 Carthage 下载所有的依赖,使用npm打包响应的js文件
执行完成后,直接双击打开 WebDriverAgent.xcodeproj 这个文件。
2、配置WebDriverAgent环境
在以下三个文件中都需要进行配置:

 (1). 编译WebDriverAgentLib
注:Bundle identifier:com.xxx.yyyyy   (xxx每个人都要不一样才行)
 (2).编译WebDriverAgentRunner
    
(3)配置 IntegrationApp
(4)
    
(5).在终终端输入:xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=udid' test,待执行完成后手机端会安装WebDriverAgent。
一切正常的话,手机上会出现一个无图标的WebDriverAgent应用,启动之后,马上又返回到桌面。这是很正常的不要奇怪
此时控制台界面可以看到设备的IP。如果看不到的话,使用这种方法打开
通过上面给出的IP和端口,加上 /status 合成一个url地址。例如 http://10.0.0.1:8100/status ,然后浏览器打开。如果出现一串JSON输出,说明WDA安装成功了。
若运行后出现:TEST Fail,如下报错:
解决:卸载手机上的 WebDriverAgentRunner程序,重新执行xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=udid' test,

在进行端口转发:

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

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

$ iproxy 8100 8100

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

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

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



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


步骤四、写自动化case


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

步骤五、运行testng


可以看到case运行正常

参考文档:

  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

相关文章
|
2天前
|
监控 安全 jenkins
探索软件测试的奥秘:自动化测试框架的搭建与实践
【10月更文挑战第24天】在软件开发的海洋里,测试是确保航行安全的灯塔。本文将带领读者揭开软件测试的神秘面纱,深入探讨如何从零开始搭建一个自动化测试框架,并配以代码示例。我们将一起航行在自动化测试的浪潮之上,体验从理论到实践的转变,最终达到提高测试效率和质量的彼岸。
|
5天前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible入门与实践
【10月更文挑战第21天】在现代IT基础设施的管理中,自动化运维已成为提升效率、降低错误率的关键。Ansible,作为一种简单而强大的自动化工具,正被广泛应用于配置管理、应用部署和任务自动化等领域。本文将引导你了解Ansible的基本概念,通过实际案例展示如何利用Ansible简化日常运维工作,并探讨其在现代IT运维中的应用价值。无论你是新手还是有经验的系统管理员,这篇文章都将为你开启Ansible的高效之旅提供指导。
|
7天前
|
SQL Java 数据库
Spring Boot与Flyway:数据库版本控制的自动化实践
【10月更文挑战第19天】 在软件开发中,数据库的版本控制是一个至关重要的环节,它确保了数据库结构的一致性和项目的顺利迭代。Spring Boot结合Flyway提供了一种自动化的数据库版本控制解决方案,极大地简化了数据库迁移管理。本文将详细介绍如何使用Spring Boot和Flyway实现数据库版本的自动化控制。
10 2
|
8天前
|
Kubernetes 持续交付 Docker
探索DevOps实践:利用Docker与Kubernetes实现微服务架构的自动化部署
【10月更文挑战第18天】探索DevOps实践:利用Docker与Kubernetes实现微服务架构的自动化部署
39 2
|
19天前
|
运维 监控 Devops
DevOps实践:持续集成与部署的自动化之旅
【10月更文挑战第7天】在软件开发领域,DevOps已成为提升效率、加速交付和确保质量的关键策略。本文将深入探讨如何通过实施持续集成(CI)和持续部署(CD)来自动化开发流程,从而优化运维工作。我们将从基础概念入手,逐步过渡到实际操作,包括工具选择、流程设计以及监控和反馈机制的建立。最终,我们不仅会展示如何实现这一自动化流程,还会讨论如何克服常见的挑战,以确保成功实施。
55 9
|
17天前
|
运维 监控 测试技术
构建高效运维体系:从监控到自动化的实践之路
【10月更文挑战第9天】 在当今信息技术飞速发展的时代,运维作为保障系统稳定性与效率的关键角色,正面临前所未有的挑战。本文将探讨如何通过构建一个高效的运维体系来应对这些挑战,包括监控系统的搭建、自动化工具的应用以及故障应急处理机制的制定。我们将结合具体案例,分析这些措施如何帮助提升系统的可靠性和运维团队的工作效率。
35 1
|
19天前
|
存储 运维 监控
高效运维管理:从基础架构优化到自动化实践
在当今数字化时代,高效运维管理已成为企业IT部门的重要任务。本文将探讨如何通过基础架构优化和自动化实践来提升运维效率,确保系统的稳定性和可靠性。我们将从服务器选型、存储优化、网络配置等方面入手,逐步引导读者了解运维管理的核心内容。同时,我们还将介绍自动化工具的使用,帮助运维人员提高工作效率,降低人为错误的发生。通过本文的学习,您将掌握高效运维管理的关键技巧,为企业的发展提供有力支持。
|
4天前
|
运维 安全 Devops
DevOps实践:持续集成与持续部署(CI/CD)的自动化之路
【10月更文挑战第22天】在软件交付的快速迭代中,DevOps文化和实践成为企业加速产品上市、保证质量和提升客户满意度的关键。本文将通过一个实际案例,深入探讨如何利用持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)实现软件开发流程的高效自动化,包括工具选择、流程设计以及问题解决策略。我们将一起探索代码从编写到部署的全自动化旅程,揭示其对企业运维效率和产品质量所带来的深远影响。
|
8天前
|
运维 监控 jenkins
运维自动化实践:利用Jenkins实现高效CI/CD流程
【10月更文挑战第18天】运维自动化实践:利用Jenkins实现高效CI/CD流程
|
15天前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
23 0