簡(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源碼:
方法2
get_screenshot_as_file(self, filename)
將截圖保留到指定文件路徑
driver.get_screenshot_as_file('./images/login.png')
查看方法2源碼:
實(shí)踐案例
測(cè)試場(chǎng)景
在考研幫App登錄頁(yè)面輸入用戶(hù)名和密碼之后截圖,分別保存到當(dāng)前文件和指定的文件路徑。
代碼實(shí)現(xiàn)
參考代碼
?
# coding=utf-8 # 1.先設(shè)置編碼,utf-8可支持中英文,如上,一般放在第一行 # 2.注釋?zhuān)喊ㄓ涗泟?chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱(chēng)。 '''
Created on2019-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)要求高,離線不能做任何操作;
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ù)特性
手游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)波?推薦?哦?。。。c(diǎn)擊右邊的小球即可!(^__^)?嘻嘻……)
?
? ? ? ?個(gè)人公眾號(hào)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?微信群
?(微信群已滿(mǎn)100,可以加宏哥的微信拉你進(jìn)群,請(qǐng)備注:進(jìn)群)? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
熱門(mén)工具 換一換
