Mac+Appium+Python+pycharm

經(jīng)歷了換了幾次電腦贬养,在重新安裝環(huán)境一直看別人的教程权烧,大多都說(shuō)的不夠完整翠肘,導(dǎo)致最后環(huán)境配置在某一步失敗檐束,導(dǎo)致完全沒(méi)信心繼續(xù)下去,對(duì)新手和自學(xué)同學(xué)來(lái)說(shuō)更是崩潰的打擊束倍。經(jīng)歷過(guò)才知道有些教程對(duì)需要的人幫助還是挺大的厢塘,也感謝之前的前輩寫的教程,我的這篇主要也是借鑒之前前輩的教程加以整理排序肌幽,加上自身安裝驗(yàn)證到最后環(huán)境可用晚碾,所以整理此篇方便以后使用!

一喂急、所需軟件

1.安裝brew

mac系統(tǒng)必備軟件包管理工具

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

查看是否安裝成功? brew -v

2.JDK安裝(網(wǎng)址不一定一直有效格嘁,可自行百度安裝jdk)

下載之后解壓到任意路徑,默認(rèn)路徑安裝即可廊移。

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

3.安裝node

brew install node

? ? 執(zhí)行以下命令查看是否安裝成功

? ? node -v:查看node版本

? ? npm -v:查看npm版本

4.Android sdk

SDK下載:http://tools.android-studio.org/index.php/sdk

下載之后解壓任意路徑即可一般放在/Users/”你自己的解壓路徑“/android-sdk-macosx

如果下載解壓之后沒(méi)有platform-tools 文件夾可以下載放到/android-sdk-macosx路徑下http://www.androiddevtools.cn/

5.安裝python

mac 自帶2.7版本python

6.安裝Appium

npm --registry?http://registry.cnpmjs.org?install -g appium使用npm的國(guó)內(nèi)鏡像可以安裝糕簿,速度很不錯(cuò)。以后不想輸入ip的話可以輸入以下命令:npm config set registry?http://registry.cnpmjs.org然后就可以直接輸入 npm install -g appium 安裝了

通過(guò)dmg安裝(推薦):

dmg程序下載地址:

官方下載:http://appium.io/

7.安裝appium-doctor? npm?install?-g?appium-doctor

8.安裝selenium狡孔、Appium-Python-Client

安裝selenium或Appium-python-client

安裝前需要先安排pip懂诗,在終端窗口輸入命令:

sudo easy_install pip

然后安裝appium-python-client,在終端窗口輸入命令:

sudo pip install Appium-Python-Client

當(dāng)然你也可以安裝selenium苗膝,區(qū)別只是appium-python-client自帶的方法比selenium的方法要多幾個(gè)殃恒。

sudo pip install selenium -i http://pypi.douban.com/simple

此時(shí)在終端中輸入python,然后輸入import appium(或import selenium),如果不報(bào)錯(cuò)說(shuō)明安裝成功

9.配置環(huán)境變量

打開(kāi)終端离唐,依次輸入命令

touch .bash_profile

open -e .bash_profile

此時(shí)會(huì)自動(dòng)打開(kāi)文本病附,在文本中添加然后保存

export ANDROID_HOME=/Applications/eclipse/sdk

export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools

其中ANDROID_HOME為下載的sdk存放的路徑

jdk 環(huán)境變量也要一起配置好就可以了(以下是我自己的環(huán)境變量配置,自行替換JAVA_HOME亥鬓,ANDROID_HOME完沪,其他保持默認(rèn)不變就好)

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

export JAVA_HOME

CLASS_PATH="$JAVA_HOME/lib"

PATH=".$PATH:$JAVA_HOME/bin"

export PATH=/usr/local/bin:$PATH

export ANDROID_HOME=/Users/nuoyan/android-sdk-macosx

export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

然后在終端中輸入命令

source .bash_profile

ok,環(huán)境變量設(shè)置好了嵌戈,現(xiàn)在可以試試在終端窗口輸入adb回車覆积,不顯示command not found即為成功

如果不成功就可能是忘記添加 export PATH=/usr/local/bin:$PATH 到環(huán)境變量就好了

10.選擇合適的python IDE

pycharm(推薦)

11.編寫appium自動(dòng)化腳本

參考代碼如下,appium本身是基于selenium的熟呛,因此需要用到selenium的包宽档,unittest是用來(lái)管理case的,寫case前我們需要先配置一下appium的環(huán)境惰拱,比如平臺(tái)、系統(tǒng)版本啊送、設(shè)備ID偿短、安裝包、啟動(dòng)activity馋没、autoLaunch(是否自動(dòng)安裝apk并啟動(dòng))等等昔逗。

設(shè)備ID獲取:手機(jī)連接電腦篷朵,打開(kāi)終端輸入adb devices即可獲得設(shè)備ID

appPackge獲裙磁:連接電腦哗咆,啟動(dòng)應(yīng)用僚祷,打開(kāi)終端輸入 adb shell ps可以看到應(yīng)用的PackgeName

appActivity獲取:打開(kāi)終端輸入 aapt d badging Documents/python/apk/Nova_7.2.0_debug.apk 即可查看到launchActivity趣惠,其中的apk地址替換為你本地的apk地址

#coding=UTF-8

2 '''

3 Create on?

4 python 2.7 for mac

5 @author:?

6 '''

7 import os

8 import unittest

9 from selenium import webdriver

10 import time

11

12 #Appium環(huán)境配置

13 PATH = lambda p: os.path.abspath(

14? ? os.path.join(os.path.dirname(__file__), p)

15 )

16

17 class DpAppTests(unittest.TestCase):

18? ? def setUp(self):

19? ? ? ? desired_caps = {}

20? ? ? ? desired_caps['platformName'] = 'Android' #設(shè)置平臺(tái)

21? ? ? ? desired_caps['platformVersion'] = '4.4' #系統(tǒng)版本

22? ? ? ? desired_caps['deviceName'] = '93d1243b' #設(shè)備id

23? ? ? ? desired_caps['autoLaunch'] = 'true' #是否自動(dòng)啟動(dòng)

24? ? ? ? desired_caps['app'] = PATH(

25? ? ? ? ? ? 'apk/Nova_7.2.0_debug.apk' #安裝包路徑腮猖,放在該py文件的目錄下

26? ? ? ? )

27? ? ? ? desired_caps['appPackage'] = 'com.dianping.v1' #包名

28? ? ? ? desired_caps['appActivity'] = 'com.dianping.main.guide.SplashScreenActivity' #啟動(dòng)的activity

29

30? ? ? ? self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

31

32? ? def tearDown(self):

33? ? ? ? self.driver.quit() #case執(zhí)行完退出

34

35? ? def test_dpApp(self): #需要執(zhí)行的case

36? ? ? ? time.sleep(15)

37? ? ? ? el = self.driver.find_element_by_xpath("http://android.widget.TextView[contains(@text,'上海')]") #通過(guò)xpath找到定位框

38? ? ? ? el.click() #點(diǎn)擊定位框

39

40

41

42 if __name__ == '__main__':

43? ? suite = unittest.TestLoader().loadTestsFromTestCase(DpAppTests)

44? ? unittest.TextTestRunner(verbosity=2).run(suite) #執(zhí)行case集


參考文檔

appium示范代碼:https://github.com/appium/sample-code/tree/master/sample-code/examples/python

appium官方中文文檔:https://github.com/appium/appium/tree/master/docs/cn

https://www.cnblogs.com/tangdongchu/p/4432808.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鉴扫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子澈缺,更是在濱河造成了極大的恐慌坪创,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姐赡,死亡現(xiàn)場(chǎng)離奇詭異莱预,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)项滑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門依沮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事悉抵〖缈瘢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵姥饰,是天一觀的道長(zhǎng)傻谁。 經(jīng)常有香客問(wèn)我,道長(zhǎng)列粪,這世上最難降的妖魔是什么审磁? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮岂座,結(jié)果婚禮上态蒂,老公的妹妹穿的比我還像新娘。我一直安慰自己费什,他們只是感情好钾恢,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著鸳址,像睡著了一般瘩蚪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稿黍,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天疹瘦,我揣著相機(jī)與錄音,去河邊找鬼巡球。 笑死言沐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酣栈。 我是一名探鬼主播险胰,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼矿筝!你這毒婦竟也來(lái)了鸯乃?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤跋涣,失蹤者是張志新(化名)和其女友劉穎缨睡,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體陈辱,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奖年,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沛贪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陋守。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡震贵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出水评,到底是詐尸還是另有隱情猩系,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布中燥,位于F島的核電站寇甸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏疗涉。R本人自食惡果不足惜拿霉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咱扣。 院中可真熱鬧绽淘,春花似錦、人聲如沸闹伪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)偏瓤。三九已至杀怠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間硼补,已是汗流浹背驮肉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工熏矿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留已骇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓票编,卻偏偏與公主長(zhǎng)得像褪储,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子慧域,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容