日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始

系統(tǒng) 1872 0

簡介

?  “千呼萬喚始出來,猶抱琵琶半遮面”,經(jīng)過前邊的各項(xiàng)準(zhǔn)備工作,終于才把a(bǔ)ppium這位琵琶女請出來。那么下邊就由宏哥給各位看官、小伙伴們和童鞋們來引薦這位美女(帥哥)。這一篇主要是對前邊的內(nèi)容做一個(gè)小小的總結(jié),我們不能只顧得埋頭拉車,不記得抬頭看路可不行哦!

說明:Appium--奴家的大號,提起奴家的大號在江湖上也是無人不知,無人不曉。奴家==Appium;

一、奴家自我介紹 ?? ?

? ? ? ?奴家是一款開源的自動化測試工具,奴家可以支持iOS和安卓平臺上的原生的,基于移動瀏覽器的,混合的應(yīng)用(APP)。

1、 請奴家來進(jìn)行彈奏的好處(使用appium進(jìn)行自動化測試的好處)

?? ? ? 奴家在不同平臺中使用了標(biāo)準(zhǔn)的自動化APIs,所以在跨平臺時(shí),不需要重新編譯或者修改自己的應(yīng)用。

??? ?? 奴家支持Selenium WebDriver支持的所有語言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl語言,更可以使用Selenium WebDriver的Api。Appium支持任何一種測試框架.Appium實(shí)現(xiàn)了真正的跨平臺自動化測試。(本文主要介紹Python的用法)

2、奴家的五臟六腑(Appium架構(gòu))

????? 奴家是一個(gè)用Node.js編寫的HTTP server,它創(chuàng)建、并管理多個(gè) WebDriver sessions 來和不同平臺交互,如 iOS ,Android等等.?

?? ?? 奴家開始一個(gè)測試(一曲彈奏)后,就會在被測設(shè)備--琵琶(手機(jī))上啟動一個(gè) server ,監(jiān)聽來自 Appium server(看官、觀眾)的指令. 每種平臺像 iOS 和Android都有不同的運(yùn)行、和交互方式。所以奴家會用某個(gè)樁程序“侵入”該平臺,并接受指令,來完成測試用例的運(yùn)行(曲譜的彈奏)。

琵琶女: 下面奴家把時(shí)間交還給宏哥,讓宏哥繼續(xù)來引薦奴家。

宏哥: 好了各位看官、小伙伴們和童鞋們不要再盯著美女了,把頭往宏哥這邊轉(zhuǎn)一轉(zhuǎn),把目光往宏哥這邊匯聚一下。

宏哥: 哎哎哎,說你了,把頭轉(zhuǎn)到宏哥這邊,聽宏哥給您慢慢道來,哎哎哎,對!不要看別人說的就是你。

宏哥: 好了,你們都這樣,宏哥就不廢話了,還是把頭轉(zhuǎn)回去。直接開始正題,進(jìn)行移動端自動化測試實(shí)戰(zhàn)(琵琶彈奏-十面埋伏)

二、奴家實(shí)戰(zhàn)技藝(以真機(jī)<琵琶>為例)

各位看官這里是給大家列舉的一些琵琶女的指法(命令)

?????? aapt dump badging D:\XXX.apk? 獲取安裝包的所有信息

?????? adb devices(查看手機(jī)是否連接到電腦)

?????? adb shell pm list packages:列出所有的包名,找到所查看包的包名。

?????? adb shell dumpsys package com.android.XXX:查看某個(gè)包的具體信息

?????? 其它:

?????? adb devices:查看Android設(shè)備是否連接到電腦。

?????? adb shell dumpsys activity:查看當(dāng)前運(yùn)行的是哪個(gè)activity,運(yùn)行的一些進(jìn)程等

?????? adb shell dumpsys activity activities

?????? adb shell pm list packages:列出所有的包名。

?????? adb shell dumpsys package:列出所有的安裝應(yīng)用的信息

?????? adb shell dumpsys package com.android.XXX:查看某個(gè)包的具體信息

?????? adb shell dumpsys activity | grep mFocusedActivity:查看當(dāng)前resume的是哪個(gè)activity

?????? adb logcat | grep ActivityManager:查看當(dāng)前正在運(yùn)行的Activity

?????? adb logcat | grep Displayed:查看當(dāng)前正在運(yùn)行的Activity

1、 連接真機(jī)或者模擬器 -- 這里是琵琶女手指和琵琶如何接觸連接

1)連接手機(jī)時(shí)注意選擇手機(jī)的開發(fā)者模式,cmd打開命令行窗口,輸入adb devices獲取到設(shè)備的deviceName。

?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第1張圖片

?

2)啟動模擬器,連接模擬器AVD(Google自帶),cmd打開命令行窗口,輸入adb devices獲取到設(shè)備的deviceName

?

? Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第2張圖片

?

3)啟動模擬器,連接夜神模擬器,要注意先輸入 ?nox_adb.exe connect 127.0.0.1:62001(相當(dāng)于插入數(shù)據(jù)線),再繼續(xù),輸入adb devices

?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第3張圖片

?

2、獲取Activity(獲取曲譜中曲調(diào),就和我們現(xiàn)在音樂中的“ 到瑞秘法掃垃圾 ”差不多)

1)cmd打開命令行窗口,輸入aapt dump badging D:\XXX.apk(xxx指安裝包名,D:\是指路徑)直接查看需要測試app安裝包的具體信息。

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第4張圖片

?

2)標(biāo)記的就是包名,繼續(xù)往下拖拽,可以找到activity的信息。

?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第5張圖片

?

?????? 這里的紅圈就可以看到activity的信息。這兩個(gè)值,在appium腳本中都需要提前獲取到,所以需要提前介紹這個(gè)獲取方法。如果你覺得在cmd里面不好看,你可以把cmd信息導(dǎo)出到一個(gè)txt文件,例如 aapt dump badging shoujibaidu.apk > 123.txt 回車后,會在桌面生成一個(gè)123.txt文件,你可以打開,通過查詢找到這些信息。通過上面的方法,只要我們有android SDK環(huán)境,那么我們就可以獲取到任意一個(gè)包的包名和Activity信息。

3、啟動Appium?

???? 1)? 雙擊桌面上的appium圖標(biāo)打開,點(diǎn)擊Android Settings進(jìn)行設(shè)置。

?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第6張圖片

?

2)將上方獲取到的真機(jī)的deviceName填入 ,選擇platformName和platformVersion

?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第7張圖片

?

?3)將服務(wù)的session配置成可重寫(非必要的配置)

? ?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第8張圖片

?

4)配置好后,點(diǎn)擊右上角的啟動按鈕進(jìn)行啟動即可。

?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第9張圖片

?

5)啟動成功,下一步該寫代碼了。

4、將上方得到的設(shè)備和安裝包信息寫入腳本中

            
               1
            
             # coding=utf-
            
              8
            
            
               2
            
             # 
            
              1
            
            .先設(shè)置編碼,utf-
            
              8可支持中英文,如上,一般放在第一行

            
            
               3
            
            
               4
            
             # 
            
              2
            
            
              .注釋:包括記錄創(chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱。

            
            
               5
            
            
              '''

            
            
               6
            
             Created on 
            
              2019
            
            -
            
              6
            
            -
            
              19
            
            
               7
            
             @author: 北京-宏哥   QQ交流群:
            
              707699217
            
            
               8
            
            
              Project:初始琵琶女a(chǎn)ppium

            
            
               9
            
            
              '''

            
            
              10
            
             # 
            
              3
            
            
              .導(dǎo)入模塊

            
            
              11
            
            
              from
            
            
               appium import webdriver

            
            
              12
            
            
              import time

            
            
              13
            
             desired_caps =
            
               {}

            
            
              14
            
             desired_caps[
            
              '
            
            
              platformName
            
            
              '
            
            ] = 
            
              '
            
            
              Android
            
            
              '
            
            
                 #android的apk還是IOS的ipa

            
            
              15
            
             desired_caps[
            
              '
            
            
              platformVersion
            
            
              '
            
            ] = 
            
              '
            
            
              8.0
            
            
              '
            
            
                #android系統(tǒng)的版本號

            
            
              16
            
             desired_caps[
            
              '
            
            
              deviceName
            
            
              '
            
            ] = 
            
              '
            
            
              emulator-5554
            
            
              '
            
            
                  #手機(jī)設(shè)備名稱,通過adb devices  查看

            
            
              17
            
             desired_caps[
            
              '
            
            
              appPackage
            
            
              '
            
            ] = 
            
              '
            
            
              com.taobao.taobao
            
            
              '
            
            
                #apk的包名

            
            
              18
            
             desired_caps[
            
              '
            
            
              appActivity
            
            
              '
            
            ] = 
            
              '
            
            
              com.taobao.tao.welcome.Welcome
            
            
              '
            
            
                #apk的launcherActivity

            
            
              19
            
             # desired_caps[
            
              '
            
            
              unicodeKeyboard
            
            
              '
            
            ] =
            
               True   #使用unicodeKeyboard的編碼方式來發(fā)送字符串

            
            
              20
            
             # desired_caps[
            
              '
            
            
              resetKeyboard
            
            
              '
            
            ] = True   #將鍵盤給隱藏起來
          

5、查找app定位元素

1)啟動Android SDK中的一個(gè)神器可以查找app的定位元素進(jìn)行腳本的編寫。在Android SDK中的tools中有一個(gè)uiautomatorviewer.bat,如下圖所示:

?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第10張圖片

?

2)點(diǎn)擊uiautomatorviewer.bat進(jìn)行啟動,左上角一共四個(gè)按鈕,作用分別是打開本地文件(open)、Device Screenshot (uiautomator dump)dump頁面、dump壓縮格式的頁面、保存;啟動后點(diǎn)擊左上角第三個(gè)圖標(biāo)進(jìn)行真機(jī)界面的呈現(xiàn)。

?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第11張圖片

?

3)選擇設(shè)備模擬器或者真機(jī)

?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第12張圖片

?

?

4)第一次連接會比較慢,耐心等候一下,連接好后以后就快了。我這里以百度界面為例。

?

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第13張圖片

?

這是連接夜神模擬器后的界面顯示。這樣就可以根據(jù)id、class、text等定位元素進(jìn)行定位了。

?

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

            
            
              2
            
             driver.find_element_by_id(
            
              "index-kw
            
            
              "
            
            
              ).click()

            
            
              3
            
             driver.find_element_by_id(
            
              "index-kw
            
            
              "
            
            
              ).clear()

            
            
              4
            
             driver.find_element_by_id(
            
              "index-kw
            
            
              "
            
            ).send_keys(
            
              '
            
            
              appium測試
            
            
              '
            
            
              )

            
            
              5
            
            
              6
            
            
              7
            
             driver.find_element_by_id(
            
              "index-bn
            
            
              "
            
            
              ).click()

            
            
              8
            
            
              9
            
             driver.quit()
          

?

三、以淘寶APP為實(shí)例

1、實(shí)例代碼

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第14張圖片

2、代碼運(yùn)行結(jié)果

3、appium運(yùn)行結(jié)果

? Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第15張圖片

4、模擬器運(yùn)行結(jié)果

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第16張圖片 ?

5、參考代碼

?

            
               1
            
             # coding=utf-
            
              8
            
            
               2
            
             # 
            
              1
            
            .先設(shè)置編碼,utf-
            
              8可支持中英文,如上,一般放在第一行

            
            
               3
            
            
               4
            
             # 
            
              2
            
            
              .注釋:包括記錄創(chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱。

            
            
               5
            
            
              '''

            
            
               6
            
             Created on 
            
              2019
            
            -
            
              6
            
            -
            
              19
            
            
               7
            
             @author: 北京-宏哥   QQ交流群:
            
              707699217
            
            
               8
            
             Project:學(xué)習(xí)和使用python代碼appium+pycharm+
            
              連接夜神模擬器

            
            
               9
            
            
              '''

            
            
              10
            
             # 
            
              3
            
            
              .導(dǎo)入模塊

            
            
              11
            
            
              from
            
            
               appium import webdriver

            
            
              12
            
            
              import time

            
            
              13
            
             desired_caps =
            
               {}

            
            
              14
            
             desired_caps[
            
              '
            
            
              platformName
            
            
              '
            
            ] = 
            
              '
            
            
              Android
            
            
              '
            
            
                 #android的apk還是IOS的ipa

            
            
              15
            
             desired_caps[
            
              '
            
            
              platformVersion
            
            
              '
            
            ] = 
            
              '
            
            
              8.0
            
            
              '
            
            
                #android系統(tǒng)的版本號

            
            
              16
            
             desired_caps[
            
              '
            
            
              deviceName
            
            
              '
            
            ] = 
            
              '
            
            
              127.0.0.1:62001
            
            
              '
            
            
                  #手機(jī)設(shè)備名稱,通過adb devices  查看

            
            
              17
            
             desired_caps[
            
              '
            
            
              appPackage
            
            
              '
            
            ] = 
            
              '
            
            
              com.taobao.taobao
            
            
              '
            
            
                #apk的包名

            
            
              18
            
             desired_caps[
            
              '
            
            
              appActivity
            
            
              '
            
            ] = 
            
              '
            
            
              com.taobao.tao.welcome.Welcome
            
            
              '
            
            
                #apk的launcherActivity

            
            
              19
            
             #desired_caps[
            
              '
            
            
              unicodeKeyboard
            
            
              '
            
            ] =
            
               True   #使用unicodeKeyboard的編碼方式來發(fā)送字符串

            
            
              20
            
             #desired_caps[
            
              '
            
            
              resetKeyboard
            
            
              '
            
            ] =
            
               True   #將鍵盤給隱藏起來

            
            
              21
            
             driver = webdriver.Remote(
            
              '
            
            
              http://127.0.0.1:4723/wd/hub
            
            
              '
            
            
              , desired_caps) #啟動服務(wù)器地址,后面跟的是手機(jī)信息

            
            
              22
            
            
              # 休眠五秒等待頁面加載完成

            
            
              23
            
             time.sleep(
            
              5
            
            
              )

            
            
              24
            
            
              25
            
             driver.find_element_by_id(
            
              "
            
            
              com.taobao.taobao:id/home_searchedit
            
            
              "
            
            
              ).click()

            
            
              26
            
             time.sleep(
            
              4
            
            
              )

            
            
              27
            
             driver.find_element_by_id(
            
              "
            
            
              com.taobao.taobao:id/searchEdit
            
            
              "
            
            
              ).clear()

            
            
              28
            
             time.sleep(
            
              3
            
            
              )

            
            
              29
            
             driver.find_element_by_id(
            
              "
            
            
              com.taobao.taobao:id/searchEdit
            
            
              "
            
            ).send_keys(
            
              "
            
            
              琵琶
            
            
              "
            
            
              )

            
            
              30
            
             time.sleep(
            
              2
            
            
              )

            
            
              31
            
             driver.find_element_by_id(
            
              "
            
            
              com.taobao.taobao:id/searchbtn
            
            
              "
            
            
              ).click()

            
            
              32
            
            
              33
            
             # driver.quit()
          

?

至此運(yùn)行腳本即可進(jìn)行自動化測試。(琵琶女彈奏結(jié)束,響起來雷鳴般的掌聲,琵琶女雙手抱拳,豪氣十足退出舞臺)

?

小結(jié)

1、adb.exe connect 127.0.0.1:62001和nox_adb.exe connect 127.0.0.1:62001的效果是一樣的,前提就是你已經(jīng)配置好系統(tǒng)變量和解決了版本沖突。

2、好了有關(guān)appium的總結(jié)就到這里了,欲知后事如何,且聽下回分解。嘿嘿?。。?

?

宏哥不能保證所整理都符合大家的口味,但我能保證每一篇都是用心去寫和用心去整理,我始終認(rèn)同“分享的越多,你的價(jià)值增值越大”,歡迎大家關(guān)注我的博客和個(gè)人公眾號的技術(shù)分享。在分享中進(jìn)步,越努力越幸運(yùn),期待我們都有美好的明天!

支持宏哥的朋友們和宏哥的宏粉記得點(diǎn)波推薦哦,您的肯定就是我進(jìn)步的動力。鄙人先在這里給您道謝了,謝您嘞~~ Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第17張圖片

個(gè)人公眾號(因?yàn)樵S多文章都被搬到別人的公眾號里了,還是原創(chuàng),所以宏哥果斷也開一個(gè)公眾號。打算與博客園文章同步,希望大家隨時(shí)隨地學(xué)習(xí)與進(jìn)步):

Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第18張圖片

微信群(因?yàn)橛腥私o我發(fā)短消息說公司不讓用QQ,就幫忙建立一個(gè)微信群,歡迎加入討論和交流)

? Appium+python自動化(七)- 初識琵琶女Appium(千呼萬喚始出來,猶抱琵琶半遮面)- 上(超詳解)_第19張圖片


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 马山县| 闽侯县| 龙陵县| 怀安县| 集贤县| 青州市| 偏关县| 班玛县| 云林县| 德钦县| 福泉市| 遂昌县| 巨野县| 马公市| 松溪县| 盐源县| 旌德县| 江门市| 巴彦县| 荥阳市| 东安县| 陇南市| 曲周县| 武城县| 浏阳市| 商洛市| 城步| 南部县| 三都| 孟村| 名山县| 天峨县| 罗平县| 沙湾县| 福泉市| 遂昌县| 盈江县| 界首市| 房产| 无棣县| 开远市|