求 Appium iOS和 Android 入门教程?

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-17 07:15   125   0

https://www.zhihu.com/question/21473708?sort=created


9 个回答

TesterHome(testerhome.com)是国内首家交流移动测试的社区, 大家看到的github上的appium中文翻译也是我们做的。testerhome是个技术驱动型的论坛,我们鼓励所有人懂开发懂测试。
testerhome致力于打造一个优秀的技术交流社区,以移动测试为主。我们会定期举办移动测试公开课。目前已经成功举办了第一届的公开课交流。
除了翻译工作, 我们还是appium的代码贡献者, 我们也是制作了很多的教程和视频辅助大家理解和应用这套框架。可以参考 TesterHome | 论坛资源整理贴

testerhome的盈利是多种渠道的, 我们提供商业培训,并在打造移动测试云相关的产品。
也欢迎大家支持我们,一起交流进步。
最近针对移动APP的自动化测试写了一个系列教程,《从0到1搭建移动App功能自动化测试平台》,应该会对初学者有帮助。

如下是粘贴过来的第一篇文章,更多内容可以在我的博客中看到:DebugTalk
也非常欢迎关注底部的公众号(DebugTalk),专注于软件测试领域和测试开发技术,更新频率不是很勤,保持在一周1~2篇的样子,但全部都是用心去写的。

公众号二维码:debugtalk.com/assets/im
-------------------------------------------------------------

背景


最近新加入DJI的某项目组(以下均已M指代),需要从零开始搭建功能自动化测试平台。


简单地说,M是一个典型的移动互联网产品,客户端包括iOS和Android,并在app中通过WebView嵌入了H5,后端基于Ruby on Rails实现。

当前阶段,M项目除了Rails Server端采用Jenkins+RSpec实现了部分的持续集成功能外,客户端部分的部署和测试工作都还是完全依赖于手工操作。


基于当前项目的开发模式,我对整个M项目实现持续集成自动化测试的架构流程进行了规划,初步计划的架构图如下图所示。最终的目标是希望能实现:不管是Rails Server,还是App(iOS/Android),以及H5,当任意部分存在代码提交时,系统能自动拉取最新代码进行部署并执行自动化回归测试,及时地将执行情况反馈给开发人员。



目标确定后,便是分阶段进行实现,需要开发的模块包括:


  • 自动化测试平台(Automated Test Platform):满足iOS/Android/H5的自动化功能测试,包括模拟器和真机的测试;

  • 测试管理平台(Test Management Platform):实现自动化测试用例管理、手动下发测试任务、测试结果报表展现、Dashboard等功能;

  • 打包平台(Pack System):实现iOS/Android的自动化构建;

  • 服务端自动化测试(Rails):将服务端Rails的自动化测试接入测试管理平台;

  • 持续集成流程打通:对Jenkins进行二次开发,与测试管理平台打通,实现全流程的持续集成自动化测试。


而本系列教程,《从0到1搭建移动App功能自动化测试平台》,便是对整个实践过程的一个记录。


需要说明的是,之前我个人的工作经历主要在服务端性能测试、Android客户端性能测试(测试开发)方向,对于客户端的自动化测试基本上没有经验积累,特别是iOS系统的测试,以前更是完全没有接触过。因此本系列教程只能算是个人在探索路上的学习总结和记录,可能会存在一些错误的观点,还请前辈们多多指教。


自动化测试框架的选择


在愿景图中,绿色方框(Automated Test Platform)负责移动应用客户端(iOS/Android/H5)自动化测试的调度和执行,是整个自动化测试平台的核心。


因此,在搭建自动化测试平台之前,首先需要选择一个合适的自动化测试框架。


对于移动应用的自动化测试框架,当前市面上已经有很多成熟的开源项目。针对当前项目的实际情况,我主要参考如下选择标准:


  • 同时支持iOS、Android、H5,且尽量能保持接口统一,减少开发维护成本;

  • 编程语言支持Python/Ruby;

  • 用户量大,文档丰富。


经过筛选,Appium无疑是最佳的选择。


Appium简介


对于Appium的详细介绍,大家可参考Appium官方文档,我就不再重复引用。


不过对于Appium,仍然有几点很赞的理念值得强调。


  • 采用Appium时,无需对被测应用做任何修改,也无需嵌入任何东西(SDK);

  • Appium对iOS和Android的原生自动化测试框架进行了封装,并提供了统一的API(WebDriver API),减少了自动化测试代码的维护工作量;

  • Appium采用Client-Server的架构设计,并采用标准的HTTP通信协议;Server端负责与iOS/Android原生测试框架交互,无需测试人员关注细节实现;Client端基本上可以采用任意主流编程语言编写测试用例,减少了学习成本。


环境准备(iOS)


在Appium中测试iOS时,依赖于Apple开发环境,因此,在运行Appium之前需要先确保如下环境安装正确:


  • Mac OS X >= 10.7

  • XCode >= 4.6.3

  • Apple Developer Tools (iPhone simulator SDK, command line tools)


如上几个环境安装比较简单,直接在Apple Store中安装即可。


在安装Appium之前,为了确保Appium的相关依赖已经准备就绪,可以使用appium-doctor来进行验证。


appium-doctor是一个用于验证appium安装环境的工具,可以诊断出Node/iOS/Android环境配置方面的常见问题。


appium-doctor采用node.js编写,采用npm即可在Terminal中进行安装:


$ npm install appium-doctor -g


安装完毕后,执行appium-doctor命令即可对Appium的环境依赖情况进行检测;指定--ios时只针对iOS环境配置进行检测,指定--android参数时只针对Android环境配置进行检测,若不指定则同时对iOS和Android环境进行检测。


$ appium-doctor --ios

info AppiumDoctor ### Diagnostic starting ###

info AppiumDoctor Xcode is installed at: /Applications/Xcode.app/Contents/Developer

info AppiumDoctor Xcode Command Line Tools are installed.

info AppiumDoctor DevToolsSecurity is enabled.

info AppiumDoctor The Authorization DB is set up properly.

info AppiumDoctor The Node.js binary was found at: /usr/local/bin/node

info AppiumDoctor HOME is set to: /Users/Leo

info AppiumDoctor ### Diagnostic completed, no fix needed. ###

info AppiumDoctor

info AppiumDoctor Everything looks good, bye!

info AppiumDoctor


若检测结果全部通过,则说明Appium的相关依赖已经准备就绪,接下来可以继续安装Appium。


安装Appium


根据前面的介绍,Appium采用Client-Server的架构设计,因此安装Appium时需要分别安装Server部分和Client部分。


通常情况下,我们说的Appium都是指代的Server部分。Appium的安装有多种方式:可以通过源码编译安装,也可以在Terminal中通过npm命令安装,另一种是直接下载appium.dmg后安装应用程序。


在这里推荐运行Appium app的方式,除了GUI界面操作更直观以外,更重要的一个原因是,相比于命令行运行方式,Appium app多了一个Inspector模块,可以调用模拟器运行被测应用程序,并且可以很方便地在预览页面中查看UI元素的层级结构和详细控件属性,极大地提高编写测试脚本的效率。


至于Client部分,其实我们原本可以不安装任何东西,只需要任意选择一门开发语言,然后直接基于WebDriver的C/S协议(JSON Wire Protocol)即可编写自动化测试代码。但是这样做的话工作量会比较大,因为要去处理一些跟协议相关的工作。所幸Appium项目已经针对众多主流的编程语言,将底层协议处理相关的工作封装为Library,通过调用这些Library,可以极大地简化我们编写测试用例的工作量。


而说的需要安装的Client部分,其实也就是安装这些Library。选定编写测试用例的语言后,我们就可以针对性地进行安装。


例如,如果选择Ruby语言,那么需要安装的Library就是appium_lib,安装方式如下:


$ gem install appium_lib


如果选择Python语言,那么需要安装的Library就是Appium-Python-Client,安装方式如下:


$ pip install Appium-Python-Client


对于其它编程语言,请自行参考官方文档。


To be continued ...


iOS的自动化测试环境已基本准备就绪了,接下来我们想做的第一件事,就是在模拟器中运行iOS应用。


在下一篇文章中,我们将从clone项目源码为起点,编译生成iOS app,在Appium中调用模拟器中运行iOS app,并分享实践过程中遇到的一些坑。

发现他家doc下面有个中文教程,希望有所帮助
github.com/appium/appiu
为啥不去 TesterHome ,appium 国内实践者基地
入门的话可以看看一个码农自己录制的视频,一是完全免费,二是比较新。
android入门视频教程
支持!关注下
关注下,呵呵。
二维码挂掉了,能重新放一下或者说一下公众号id吗?谢谢




分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP