亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Appium+python自動化(三十四)- 有圖有真相,很美很精彩 - 屏幕

系統 1788 0

簡介

在實際自動化項目運行過程中,很多時候 App可以會出現各種異常,為了更好的定位問題,除了捕捉日志我們還需要對運行時的設備狀態來進行截屏。從而達到一種“ 有圖有真相 ”的效果。

截圖方法

方法 1

save_screenshot() 該方法直接保存當前屏幕截圖到當前腳本所在文件位置。

driver .save_screenshot('login.png')

查看方法1源碼:

Appium+python自動化(三十四)- 有圖有真相,很美很精彩 - 屏幕截圖和Android APP類型簡介(超詳解)_第1張圖片

方法 2

get_screenshot_as_file(self, filename)

將截圖保留到指定文件路徑

driver .get_screenshot_as_file('./images/login.png')

查看方法2源碼:

Appium+python自動化(三十四)- 有圖有真相,很美很精彩 - 屏幕截圖和Android APP類型簡介(超詳解)_第2張圖片

實踐案例

測試場景

在考研幫 App登錄頁面輸入用戶名和密碼之后截圖,分別保存到當前文件和指定的文件路徑。

代碼實現

Appium+python自動化(三十四)- 有圖有真相,很美很精彩 - 屏幕截圖和Android APP類型簡介(超詳解)_第3張圖片

參考代碼

?

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

# 
            
            
              2
            
            
              .注釋:包括記錄創建時間,創建人,項目名稱。

            
            
              '''

            
            Created on 
            
              2019
            
            -
            
              8
            
            -
            
              21
            
            
              
@author: 北京
            
            -宏哥   QQ交流群:
            
              707699217
            
            
              
Project:學習和使用appium自動化測試
            
            -
            
              屏幕截圖

            
            
              '''

            
            # 
            
              3
            
            
              .導入模塊

            
            
              from
            
            
                appium import webdriver

            
            
              from
            
            
               selenium.common.exceptions import NoSuchElementException

desired_caps
            
            =
            
              {}
desired_caps[
            
            
              '
            
            
              platformName
            
            
              '
            
            ]=
            
              '
            
            
              Android
            
            
              '
            
            
              
desired_caps[
            
            
              '
            
            
              deviceName
            
            
              '
            
            ]=
            
              '
            
            
              127.0.0.1:62025
            
            
              '
            
            
              
desired_caps[
            
            
              '
            
            
              platforVersion
            
            
              '
            
            ]=
            
              '
            
            
              5.1.1
            
            
              '
            
            
              
desired_caps[
            
            
              '
            
            
              automationName
            
            
              '
            
            ]=
            
              '
            
            
              uiautomator2
            
            
              '
            
            
              

desired_caps[
            
            
              '
            
            
              app
            
            
              '
            
            ]=r
            
              '
            
            
              C:\Users\DELL\Downloads\kaoyanbang.apk
            
            
              '
            
            
              
desired_caps[
            
            
              '
            
            
              appPackage
            
            
              '
            
            ]=
            
              '
            
            
              com.tal.kaoyan
            
            
              '
            
            
              
desired_caps[
            
            
              '
            
            
              appActivity
            
            
              '
            
            ]=
            
              '
            
            
              com.tal.kaoyan.ui.activity.SplashActivity
            
            
              '
            
            
              

desired_caps[
            
            
              '
            
            
              noReset
            
            
              '
            
            ]=
            
              '
            
            
              False
            
            
              '
            
            
              
desired_caps[
            
            
              '
            
            
              unicodeKeyboard
            
            
              '
            
            ]=
            
              "
            
            
              True
            
            
              "
            
            
              
desired_caps[
            
            
              '
            
            
              resetKeyboard
            
            
              '
            
            ]=
            
              "
            
            
              True
            
            
              "
            
            
              

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

#定義的點擊“取消”按鈕方法
def check_cancelBtn():
    print(
            
            
              '
            
            
              check cancelBtn
            
            
              '
            
            
              )

    
            
            
              try
            
            
              :
        cancelBtn 
            
            = driver.find_element_by_id(
            
              '
            
            
              android:id/button2
            
            
              '
            
            
              )
    except NoSuchElementException:
        print(
            
            
              '
            
            
              no cancelBtn
            
            
              '
            
            
              )
    
            
            
              else
            
            
              :
        cancelBtn.click()

#定義的點擊“跳過”按鈕方法
def check_skipBtn():
    print(
            
            
              '
            
            
              check skipBtn
            
            
              '
            
            
              )

    
            
            
              try
            
            
              :
        skipBtn 
            
            = driver.find_element_by_id(
            
              '
            
            
              com.tal.kaoyan:id/tv_skip
            
            
              '
            
            
              )
    except NoSuchElementException:
        print(
            
            
              '
            
            
              no skipBtn
            
            
              '
            
            
              )
    
            
            
              else
            
            
              :
        skipBtn.click()

#調用點擊“取消”按鈕方法
check_cancelBtn()

#調用點擊“跳過”按鈕方法
check_skipBtn()

driver.find_element_by_id(
            
            
              '
            
            
              com.tal.kaoyan:id/login_email_edittext
            
            
              '
            
            
              ).clear()

driver.find_element_by_id(
            
            
              '
            
            
              com.tal.kaoyan:id/login_email_edittext
            
            
              '
            
            ).send_keys(
            
              '
            
            
              55555
            
            
              '
            
            
              )

driver.find_element_by_id(
            
            
              '
            
            
              com.tal.kaoyan:id/login_password_edittext
            
            
              '
            
            ).send_keys(
            
              '
            
            
              zxw2018
            
            
              '
            
            
              )

driver.save_screenshot(
            
            
              '
            
            
              login.png
            
            
              '
            
            
              )

driver.get_screenshot_as_file(
            
            
              '
            
            
              ./images/login.png
            
            
              '
            
            
              )

driver.find_element_by_id(
            
            
              '
            
            
              com.tal.kaoyan:id/login_login_btn
            
            
              '
            
            ).click()
          

注意:如果指定路徑出現中文字符時,需要加上u’文件路徑’進行轉碼

App三種類型與區別

原生應用程序:( Native App)

原生 APP是什么?原生APP就是利用Android、iOS平臺官方的開發語言、開發類庫、工具進行開發。比如安卓的java語言,iOS的object-c 語言。在應用性能上和交互體驗上應該是最好的。

優點:

1、可訪問手機所有功能、可實現功能最齊全;

2、運行速度快、性能高,絕佳的用戶體驗;

3、支持大量圖形和動畫。不卡,反應快。

4、比較快捷地使用設備端提供的接口,處理速度上有優勢。

缺點:

1、在過去主要是成本高、周期長, Android和iOS都需要單獨開發。

2、更新版本需要重新下載安裝包。

混合應用程序( Hybrid App)

即利用了原生 APP的開發技術還應用了HTML5開發技術,是原生和HTML5技術的混合應用。混合比例不限。

優點:

1、開發周期短;

2、功能更新發布快;

缺點:

1、用戶體驗不如本地應用;

2、性能稍慢(需要連接網絡);

Web版APP (Web App)

本質就是瀏覽器功能的疊加,用普通 Web開發語言開發的,通過瀏覽器運行。

優勢:

1、支持范圍廣;

2、開發成本低、周期短。

缺點:

1、對聯網要求高,離線不能做任何操作;

2、功能有限;

3、運行速度慢,頁面不能承載太多東西;

4、圖片和動畫支持性不高;

5、如果用戶使用更多的新型瀏覽器,那么就會出現運行問題。

Web App、Hybrid App、Native App 技術特性

Appium+python自動化(三十四)- 有圖有真相,很美很精彩 - 屏幕截圖和Android APP類型簡介(超詳解)_第4張圖片

手游 app與手機App

手游一般使用引擎開發,現在著名的有 cocos2d和unity3d。兩者都是使用引擎自帶的語言進行開發,主流的分別是c++和c#,雖然在開發過程中也有按鈕等控件的概念,但當運行時由引擎渲染后就變成了一副簡單的圖片:

手機 App一般使用Android SDK開發,使用Java編寫。通過Android提供的服務,我們可以獲取App當前窗口的視圖信息,進而查找和操作按鈕等控件,以完成自動化測試,如Uiautomator。這個過程是標準化的,從技術上來說沒有任何難度,因此各個公司各個App自動化測試的方法都大同小異。

小結

?  好了,這部分的內容比較簡單,小伙伴們和同學們掌握上邊的兩個截圖的方法,了解一下Android APP的類型就可以。

您的肯定就是我進步的動力。 如果你感覺還不錯,就請鼓勵一下吧!記得點波 ?推薦 ?哦!!!(點擊右邊的小球即可! (^__^) ?嘻嘻……)

Appium+python自動化(三十四)- 有圖有真相,很美很精彩 - 屏幕截圖和Android APP類型簡介(超詳解)_第5張圖片

?

? ? ? ?個人公眾號? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 微信群 ?(微信群已滿100,可以加宏哥的微信拉你進群,請備注:進群)? ? ? ? ??

Appium+python自動化(三十四)- 有圖有真相,很美很精彩 - 屏幕截圖和Android APP類型簡介(超詳解)_第6張圖片 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Appium+python自動化(三十四)- 有圖有真相,很美很精彩 - 屏幕截圖和Android APP類型簡介(超詳解)_第7張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美午夜影院 | 九九九国产 | xxxxxxx泡妞中国 | 日韩久久精品 | 青青成人在线 | 免费操片| 伊人久久网站 | 四虎影视免费在线观看 | 亚洲国产精品久久精品成人 | 亚洲欧美第一页 | 亚洲欧美色鬼久久综合 | 欧美午夜网站 | 亚洲国产成人久久精品动漫 | 亚洲欧洲日产国码久在线观看 | 波多野结衣3女同在线观看 波多野结衣av1区2区3区 | 亚洲精品综合一区二区三区 | 99久久99久久精品免费看子 | 深夜福利视频在线一区 | 中文字幕在线观看第二页 | 日日艹夜夜艹 | 91视频免费看 | 欧美成人午夜视频免看 | 一级毛片 在线播放 | 精品视频午夜一区二区 | 狠狠干奇米 | 久久性生活 | 国产在线激情 | 在线亚洲欧洲福利视频 | a毛片免费播放全部完整 | 国产这里只有精品 | 伊人精品视频一区二区三区 | 福利视频网| 亚洲国产精品久久婷婷 | 黄色在线视频网 | 亚洲国产成人综合精品2020 | 亚洲综合国产一区在线 | 久久青草国产免费观看 | 免费 高清 日本1在线观看 | 天堂一区二区在线观看 | 亚洲 欧美 日韩 在线 香蕉 | 日本一本一区二区 |