黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

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

系統(tǒng) 1934 0

簡(jiǎn)介

在實(shí)際自動(dòng)化項(xiàng)目運(yùn)行過(guò)程中,很多時(shí)候 App可以會(huì)出現(xiàn)各種異常,為了更好的定位問(wèn)題,除了捕捉日志我們還需要對(duì)運(yùn)行時(shí)的設(shè)備狀態(tài)來(lái)進(jìn)行截屏。從而達(dá)到一種“ 有圖有真相 ”的效果。

截圖方法

方法 1

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

driver .save_screenshot('login.png')

查看方法1源碼:

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

方法 2

get_screenshot_as_file(self, filename)

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

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

查看方法2源碼:

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

實(shí)踐案例

測(cè)試場(chǎng)景

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

代碼實(shí)現(xiàn)

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

參考代碼

?

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

# 
            
            
              2
            
            
              .注釋?zhuān)喊ㄓ涗泟?chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱(chēng)。

            
            
              '''

            
            Created on 
            
              2019
            
            -
            
              8
            
            -
            
              21
            
            
              
@author: 北京
            
            -宏哥   QQ交流群:
            
              707699217
            
            
              
Project:學(xué)習(xí)和使用appium自動(dòng)化測(cè)試
            
            -
            
              屏幕截圖

            
            
              '''

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

            
            
              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
            
            
              )

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

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

#定義的點(diǎn)擊“跳過(guò)”按鈕方法
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()

#調(diào)用點(diǎn)擊“取消”按鈕方法
check_cancelBtn()

#調(diào)用點(diǎn)擊“跳過(guò)”按鈕方法
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()
          

注意:如果指定路徑出現(xiàn)中文字符時(shí),需要加上u’文件路徑’進(jìn)行轉(zhuǎn)碼

App三種類(lèi)型與區(qū)別

原生應(yīng)用程序:( Native App)

原生 APP是什么?原生APP就是利用Android、iOS平臺(tái)官方的開(kāi)發(fā)語(yǔ)言、開(kāi)發(fā)類(lèi)庫(kù)、工具進(jìn)行開(kāi)發(fā)。比如安卓的java語(yǔ)言,iOS的object-c 語(yǔ)言。在應(yīng)用性能上和交互體驗(yàn)上應(yīng)該是最好的。

優(yōu)點(diǎn):

1、可訪問(wèn)手機(jī)所有功能、可實(shí)現(xiàn)功能最齊全;

2、運(yùn)行速度快、性能高,絕佳的用戶(hù)體驗(yàn);

3、支持大量圖形和動(dòng)畫(huà)。不卡,反應(yīng)快。

4、比較快捷地使用設(shè)備端提供的接口,處理速度上有優(yōu)勢(shì)。

缺點(diǎn):

1、在過(guò)去主要是成本高、周期長(zhǎng), Android和iOS都需要單獨(dú)開(kāi)發(fā)。

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

混合應(yīng)用程序( Hybrid App)

即利用了原生 APP的開(kāi)發(fā)技術(shù)還應(yīng)用了HTML5開(kāi)發(fā)技術(shù),是原生和HTML5技術(shù)的混合應(yīng)用。混合比例不限。

優(yōu)點(diǎn):

1、開(kāi)發(fā)周期短;

2、功能更新發(fā)布快;

缺點(diǎn):

1、用戶(hù)體驗(yàn)不如本地應(yīng)用;

2、性能稍慢(需要連接網(wǎng)絡(luò));

Web版APP (Web App)

本質(zhì)就是瀏覽器功能的疊加,用普通 Web開(kāi)發(fā)語(yǔ)言開(kāi)發(fā)的,通過(guò)瀏覽器運(yùn)行。

優(yōu)勢(shì):

1、支持范圍廣;

2、開(kāi)發(fā)成本低、周期短。

缺點(diǎn):

1、對(duì)聯(lián)網(wǎng)要求高,離線(xiàn)不能做任何操作;

2、功能有限;

3、運(yùn)行速度慢,頁(yè)面不能承載太多東西;

4、圖片和動(dòng)畫(huà)支持性不高;

5、如果用戶(hù)使用更多的新型瀏覽器,那么就會(huì)出現(xiàn)運(yùn)行問(wèn)題。

Web App、Hybrid App、Native App 技術(shù)特性

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

手游 app與手機(jī)App

手游一般使用引擎開(kāi)發(fā),現(xiàn)在著名的有 cocos2d和unity3d。兩者都是使用引擎自帶的語(yǔ)言進(jìn)行開(kāi)發(fā),主流的分別是c++和c#,雖然在開(kāi)發(fā)過(guò)程中也有按鈕等控件的概念,但當(dāng)運(yùn)行時(shí)由引擎渲染后就變成了一副簡(jiǎn)單的圖片:

手機(jī) App一般使用Android SDK開(kāi)發(fā),使用Java編寫(xiě)。通過(guò)Android提供的服務(wù),我們可以獲取App當(dāng)前窗口的視圖信息,進(jìn)而查找和操作按鈕等控件,以完成自動(dòng)化測(cè)試,如Uiautomator。這個(gè)過(guò)程是標(biāo)準(zhǔn)化的,從技術(shù)上來(lái)說(shuō)沒(méi)有任何難度,因此各個(gè)公司各個(gè)App自動(dòng)化測(cè)試的方法都大同小異。

小結(jié)

?  好了,這部分的內(nèi)容比較簡(jiǎn)單,小伙伴們和同學(xué)們掌握上邊的兩個(gè)截圖的方法,了解一下Android APP的類(lèi)型就可以。

您的肯定就是我進(jìn)步的動(dòng)力。 如果你感覺(jué)還不錯(cuò),就請(qǐng)鼓勵(lì)一下吧!記得點(diǎn)波 ?推薦 ?哦!!!(點(diǎn)擊右邊的小球即可! (^__^) ?嘻嘻……)

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

?

? ? ? ?個(gè)人公眾號(hào)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 微信群 ?(微信群已滿(mǎn)100,可以加宏哥的微信拉你進(jìn)群,請(qǐng)備注:進(jìn)群)? ? ? ? ??

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


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論