Appium,说实话,笔者最开始并不知道这是个神马东东,也不知道App自动化测试是一种怎样神奇的操作,后来,在前东家工作时页仅有一面之缘,当时看着同事跑着脚本,手机模拟器页面一闪而过,笔者当时觉得这种操作不太让人放心,还是自己自测时点点点好些。一直怀着不去了解的心态,直到跳槽面试时,面试官在谈自己经历时提到了写脚本进行自动化测试的事,当时心里就嘀咕,是不是也会用到Appium,现在入职这家公司近一个月了,果不其然自动化测试会用到Appium,也会直接写Monkey脚本测试。解决完了初入职问题后,上周周末才开始真正了解Appium,当然第一件事便是搭建环境,以下,且听我慢慢道来,笔者是如何站在无数巨人的肩膀上一步一步把坑填起来的。
首先说明一下笔者的开发环境,需根据实际情况来。
MAC OS: 10.12.5
Appium: 1.5.3
Java: 1.8
Python: 3.6
Seleniun: 3.5.0
一、安装Appium客户端
笔者下载的是上面最新的v1.5.3版本;
[下载地址:https://bitbucket.org/appium/appium.app/downloads/ ]
安装成功后,打开Appium应用,点击 Appium Doctor 查看是否安装成功,遇到了第一个坑:
Appium Doctor iOS Could not detect Mac OS X Version from sw_vers output: '10.12.5 '
不怕噢,按以下网址说明重新配置这几个文件就OK了。
[详见:http://blog.csdn.net/yxys01/article/details/73551281 ]
修改配置后,重新执行 Appium Doctor 检测是否安装成功,遇到了第二个问题:
info AppiumDoctor ✔ The Authorization DB is set up properly.
[TypeError: Cannot read property 'replace' of undefined]
继续寻找答案,原是没有安装 <code>node.js</code> 。
[详见:http://blog.csdn.net/lunamagic/article/details/52713797 ]
安装 <code>node.js</code> 后,执行 Appium Doctor 检测,这一步可以通过,中间也许会有关于 <code>JAVA_HOME</code> 和 <code>ANDROID_HOME</code> 没有配置环境变量的错误,不过这都是小事,大家在搭建 Android 开发环境前,定会妥妥地配置一把。
二、安装 Appium 客户端库
Appium客户端库可以有多种语言选择,因为笔者之前很少接触脚本语言,听说了许多脚本语言的强大之处后,就选择了心心念想着的 Appium Python Client,安装脚本和命令如下:
git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
第三步,安装 Python 3,其实 Mac 上已经有 Python 2.7版本存在,只不过笔者想安装最新的版本,如何切换到 Python 3呢?在 .bash_profile 文件中添加以下配置,路径为你自己安装的Python 3的路径:
alias python="/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5"
[详见:http://www.jianshu.com/p/2c83363fa623 ]
三、自动化测试脚编写和执行
真正的体验开始了,启动Appium,选择Apk文件进行配置和自动化,参考 demo 写个最简单的 python 脚本开始自动化测试之旅,真正见证奇迹的时刻到了~~
哈,哈,哈,只是笔者前面的坑填的太容易了些,结果遇见了一个阻塞了笔者开启自动化测试之旅好长时间的一个问题:
selenium.common.exceptions.WebDriverException: Message: Parameters were incorrect. We wanted {"required":["desiredCapabilities"],"optional":["requiredCapabilities","sessionId","id","sessionId","id","sessionId","id","sessionId","id"]} and you sent ["capabilities", "desiredCapabilities"]
笔者当时以为这个问题很好解决,因为 Appium github上有人遇见过一样的问题,但最终发现对于笔者我这个刚接触 Appium 和 Python 的小白来说,并不懂其间的关联,大多数答案是 降低 selenium 的版本到 3.3.1 ,这可为难了,说的不明确,因为笔者查看到 Python 3 和 Appium Python Client 包中是带有 selenium 3.6版本的,降级是要自己下载 3.3.1 替换还是重新下载一个 selenium 呢?笔者当时已经被这一丢丢的东西给弄混了,现在还没有特别明确知道 Appium Python Selenium 这三者如何关联一起的。周五花了一下午的时间找答案,还是没有解决,着实被打击了一把,好不容易从小白搭建到最后,可不能放弃。好在,笔者今天花了一上午的时间定位到了 github上的另一个答案,按照上面的说法,自个的理解是,降级并不可靠,毕竟大家倾向用最新版本的东西,既然说参数格式不正确,那就将 webdriver.py 中的 parameters 格式改成需要的格式。果真,摸索着改了 Python 3 包下的 <code>/python3.6/site-packages/selenium-3.5.0-py3.6.egg/selenium/webdriver/remote/webdriver.py</code> 文件,再执行测试脚本,Appium 可以成功执行测试脚本,最终开启了自动化测试之旅~
[问题详见 @jimevans:https://github.com/SeleniumHQ/selenium/issues/4017#issuecomment-302030078]
四、结语
笔者目前还是小白,只收集到了部分资料,没有真正步入正轨,还在摸索之中,不过笔者希望可以在业余时间学习下学习自动化测试,用于工作之中,顺便学好 Python。以上仅是个人的一些安装经历,按需借鉴参考,毕竟一直是站在无数巨人的肩膀上一路走过来的噢~ ~ ~
相关资料:
- Appium 参考文档:http://appium.io/slate/cn/master
- Appium-Python-client 库和Demo:https://github.com/appium/python-client
网友评论