最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python+appium實現(xiàn)自動化測試的示例代碼

 更新時間:2022年01月05日 15:13:17   作者:曬不黑的黑煤球  
appium是一個開源的測試自動化框架,可以與原生的、混合的和移動的web應(yīng)用程序使用,本文主要介紹了python+appium實現(xiàn)自動化測試的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

1.什么是Appium

appium是一個開源的測試自動化框架,可以與原生的、混合的和移動的web應(yīng)用程序一直使用。它使用WebDriver協(xié)議驅(qū)動IOS(內(nèi)置的測試引擎xcuitest)、Android(uiautomator2,Espresso)和Windows應(yīng)用程序

原生應(yīng)用程序:安卓程序是用JAVA或kotlin開發(fā)出來的,這種程序是原生應(yīng)用程序,原生應(yīng)用比較流暢,好調(diào)用,缺點是不同的端需要的開發(fā)語言不同

web應(yīng)用程序:就web應(yīng)用程序可以直接放到手機端來運行,web是用html+css+js編寫的

混合應(yīng)用程序:結(jié)合原生與web應(yīng)用程序,有些頁面用原生的,有些頁面使用web應(yīng)用程序

國內(nèi)比較出名的框架:

  • appium
  • airtest 現(xiàn)在是由阿里在維護,最開始是運用在游戲測試,和appium的功能差不多
  • uiautomator2(用法簡單,非常python,只支持原生的,不支持其他)

設(shè)計哲學(xué):

  •  你沒有必要為了自動化而重新編譯你的應(yīng)用或者經(jīng)任何方式修改它(Android/IOS系統(tǒng)自帶框架)
  • 你不應(yīng)該被限制在特定的語言或框架上來編寫運行測試(API調(diào)用,接口)
  • 移動端自動化框架在自動化接口方面不應(yīng)該重造輪子(WebDriver,appium是在selenium的基礎(chǔ)上開發(fā)的)
  • 移動端自動化框架應(yīng)該開源,不但是在名義上而且在精神和實踐上都要實至名歸

2.啟動一個app自動化程序的步驟

打開模擬器,或者連接上手機(注意開發(fā)者模式以及USB調(diào)試模式已經(jīng)開啟,手機授權(quán)要確認(rèn),否則是連接不上的)

在命令窗口輸入adb devices(查看設(shè)備名稱)        

開啟appium服務(wù)appium客戶端代碼連接服務(wù)

3.appium服務(wù)介紹

中文設(shè)置

除了簡單設(shè)置,還有一些高級設(shè)置,我們可以看一下

保存了可以查看預(yù)設(shè),方便以后使用

 

編輯配置是進入修改環(huán)境變量 

 主機和端口號不需要設(shè)置,直接可以開啟服務(wù)器 

開啟后,可以看到服務(wù)器運行中,右邊三個按鈕的功能分別是啟動檢查器會話,獲取原始日志,停止運行服務(wù)器

 

 點擊后自動經(jīng)記事本打開,如果安裝了其他編輯軟件,可以選擇打開方式

 

服務(wù)開啟后,就可以使用python來進行客戶端來連接服務(wù)

4. appium客戶端使用

使用前確定已經(jīng)安裝了,pip install appium-python-client,安裝后,直接導(dǎo)入使用

看一下Remote的源代碼

同時appium服務(wù)端也會顯示500的錯誤

 

猶豫appium1.20.2版本的,不像之前的版本需要傳入的必須參數(shù)多了,現(xiàn)在只需要傳platformName即可,所以具體可以看自己安裝的是什么版本,不過加上更多參數(shù)也不受影響

常用的caps參數(shù):

  • platformName 平臺名稱(Android,IOS)
  • 必選deviceName 設(shè)備名稱(可選)                                                                                                 

  • udid (和deviceName作用一樣,在不同版本下這個參數(shù)重好用,所以以后用udid代替deviceName)
  • app apk的存放路徑(可選)
  • appActivity(頁面名稱,相當(dāng)于web頁面中title) 和 appPackage(包名)
  • platformVersion 系統(tǒng)版本號(可選,版本不匹配會報錯)
  • noReset  選擇True  不重啟(意思是app的引導(dǎo)頁面,緩存數(shù)據(jù)等不清空,如果選擇False,app相當(dāng)于重新安裝了,把之前的數(shù)據(jù)都清空了)
  • automationName 驅(qū)動名稱
  • browserName 直接測web用Chrome
  • autoWebview 開機進入webview模式(開機直接進入網(wǎng)頁模式,不需要進入原生頁面)
  • chromedriverExecutable 網(wǎng)頁瀏覽器驅(qū)動所放路徑(必須是完整路徑)
  • chromedriverExecutableDir 網(wǎng)頁瀏覽器驅(qū)動所放目錄
  • unicodekeyboard 開啟unicode編碼形式的鍵盤
  • resetKeyboard 重啟鍵盤 (和上一個一塊配置,兩個都設(shè)置成True,就可以開啟中文輸入,相當(dāng)于我們的電腦安裝輸入法)
  • autoGrantPermissions 開啟手機權(quán)限(相當(dāng)于web端中彈出來的alert彈框,無法定位元素,設(shè)置了True,就方便定位元素)

官網(wǎng)上還有很多用法,感興趣的可以參考一下:https://appium.io/docs/en/writing-running-appium/caps/

通過adb獲取appPackage和appActivity:

方法一:adb shell am monitor 監(jiān)控操作(在cmd中執(zhí)行此命令后,然后在手機上或模擬器上操作對應(yīng)的app,就會顯示對應(yīng)的包名)                                                                                        

方法二:adb logcat | findStr -i displayed 從日志進行查詢包名和頁名稱                                                

 通過aapt獲取appPackage和appActivity:

aapt dump badging 全路徑.apk                                                                                               

 拿到appPackage和appActivity后,可以使用包名的方式來訪問app,代碼如下:

from appium.webdriver import Remote
 
# 啟動一次請求
# 1.指明需要連接的服務(wù)地址和端口號
# 2.You must include a platformName capability
caps = {"platformName": "Android",
        "udid": "emulator-5554",
        "appPackage": "com.lemon.lemonban",
        "appActivity": ".activity.WelcomeActivity"}
driver = Remote(command_executor='http://127.0.0.1:4723/wd/hub',
                desired_capabilities=caps)

 運行結(jié)果:

總結(jié):

  • platformName 必填,其他可選
  • deviceName重要
  • app安裝apk包,自動打開(已經(jīng)安裝過的不會重新安裝),apk包路徑最好不要有中文,不知道為什么我的電腦用這種方式運行一直報錯,最后也未能解決,所以我使用包名運行         

  • 在復(fù)制appActivity時,注意一定是app的首頁頁面名稱,別復(fù)制錯了

5.adb的使用

adb(Android Debug Bridge)安卓調(diào)試橋:作用就是操作安卓手機中的app

相關(guān)命令:

adb devices 查看設(shè)備是否連接(可以手動連接 adb connect 127.0.0.1:5554,網(wǎng)上可以搜索不同模擬器的端口號)

adb shell  登錄設(shè)備 (進入手機系統(tǒng)里面)

adb shell dumpsys activity | find "mFocusedActivity" 查看前臺應(yīng)用activity應(yīng)用名稱(注意一定要打開了app,再去執(zhí)行命令,dumpsys下有很多命令,可以查看幫助文檔進行更多了解)  

adb install 電腦/包名.apk 安裝軟件

adb uninstall  電腦/包名.apk 制裁軟件

adb pull 手機文件路徑 電腦文件路徑   從手機下載/拉文件電腦端

adb push 電腦文件路徑 手機文件路徑  從電腦推送/上傳到手機端

adb shell pm list packages 顯示所有的安裝包名

 6.Appium啟動過程分析

客戶端通過wd/hub/session發(fā)送請求創(chuàng)建一個會話session                                                         

提供了參數(shù)就是cpas                                                                                                  

服務(wù)端接收到caps信息后,檢驗caps參數(shù)是否合法                                                         

adb install io.setting.appium                                                                                                 

判斷有沒有包名                                                                                                                    

啟動app                                                                                                                                      

獲取操作系統(tǒng)的版本: 

 adb.exe -P 5037 -s emulator-5554 shell getprop ro.build.version.release

判斷包名是否已經(jīng)安裝到手機上:

adb.exe -P 5037 -s emulator-5554 shell dumpsys package com.lemon.lemon

啟用app:

adb.exe -P 5037 -s emulator-5554 shell am start -W -n com.lemon.lemonban/.activity.WelcomeActivity -S

到此這篇關(guān)于python+appium實現(xiàn)自動化測試的示例代碼的文章就介紹到這了,更多相關(guān)python appium 自動化測試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pycharm 設(shè)置自定義背景顏色的圖文教程

    Pycharm 設(shè)置自定義背景顏色的圖文教程

    今天小編就為大家分享一篇Pycharm 設(shè)置自定義背景顏色的圖文教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 利用Python將彩色圖像轉(zhuǎn)為灰度圖像的兩種方法

    利用Python將彩色圖像轉(zhuǎn)為灰度圖像的兩種方法

    這篇文章主要給大家介紹了關(guān)于利用Python將彩色圖像轉(zhuǎn)為灰度圖像的兩種方法,以及python 批量將圖片轉(zhuǎn)為灰度圖的方法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • python中dict使用方法詳解

    python中dict使用方法詳解

    這篇文章主要介紹了python中dict使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python切換hosts文件代碼示例

    python切換hosts文件代碼示例

    開發(fā)或者測試網(wǎng)站程序時,我們很多時候都會遇到多個hosts文件來回切換,windows的hosts文件目錄比較深,麻煩,因此,用python寫了個小腳本來簡化此功能
    2013-12-12
  • Python+Pygame實現(xiàn)之走四棋兒游戲的實現(xiàn)

    Python+Pygame實現(xiàn)之走四棋兒游戲的實現(xiàn)

    大家以前應(yīng)該都聽說過一個游戲:叫做走四棋兒。直接在家里的水泥地上用燒完的炭火灰畫出幾條線,擺上幾顆石頭子即可。當(dāng)時的火爆程度可謂是達到了一個新的高度。本文將利用Pygame實現(xiàn)這一游戲,需要的可以參考一下
    2022-07-07
  • django form和field具體方法和屬性說明

    django form和field具體方法和屬性說明

    這篇文章主要介紹了django form和field具體方法和屬性說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Flask框架 CSRF 保護實現(xiàn)方法詳解

    Flask框架 CSRF 保護實現(xiàn)方法詳解

    這篇文章主要介紹了Flask框架 CSRF 保護實現(xiàn)方法,結(jié)合實例形式詳細(xì)分析了Flask-WTF針對CSRF攻擊的防護相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • Python的強大HTTP庫Requests基本使用

    Python的強大HTTP庫Requests基本使用

    這篇文章主要為大家介紹了Python的強大HTTP庫Requests基本使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Python處理JSON時的值報錯及編碼報錯的兩則解決實錄

    Python處理JSON時的值報錯及編碼報錯的兩則解決實錄

    這篇文章主要介紹了Python處理JSON時的值報錯及編碼報錯的兩則解決實錄,在這里還是想建議一下使用Python 3.x版本,Python 3默認(rèn)的Unicode編碼能在實際使用中為我們省去不少問題,需要的朋友可以參考下
    2016-06-06
  • 基于Python實現(xiàn)對PDF文件的OCR識別

    基于Python實現(xiàn)對PDF文件的OCR識別

    大家可能聽說過使用Python進行OCR識別操作。在Python中,最出名的庫便是Google所資助的tesseract。利用tesseract可以很輕松地對圖像進行識別?,F(xiàn)在問題來了,如果想對一個PDF文檔進行OCR識別,該怎么做呢?下面一起來看看。
    2016-08-08

最新評論

齐齐哈尔市| 邢台县| 栖霞市| 六盘水市| 湟中县| 清徐县| 天镇县| 普宁市| 克东县| 紫云| 永仁县| 襄樊市| 克什克腾旗| 嘉黎县| 湛江市| 南昌市| 苗栗县| 资源县| 改则县| 建阳市| 华阴市| 项城市| 遵化市| 电白县| 芦山县| 四子王旗| 五河县| 麻城市| 留坝县| 扶风县| 玛多县| 锡林郭勒盟| 宝丰县| 奉节县| 克拉玛依市| 宜城市| 黄冈市| 分宜县| 沛县| 乌海市| 鄂州市|