APP移動端測試高級

appium介紹

appium是一個移動端的自動化框架葵腹,可用測試原生應(yīng)用玩般,移動網(wǎng)頁應(yīng)用银觅,和混合型應(yīng)用,且是跨平臺的坏为【柯浚可用iso和android以及的操作系統(tǒng)。

原生的應(yīng)用是指用Android 或者ios編寫的應(yīng)用匀伏;移動端網(wǎng)頁應(yīng)用是指網(wǎng)頁應(yīng)用洒忧,類似于ios中safari應(yīng)用或者chrome應(yīng)用或者瀏覽的應(yīng)用;混混應(yīng)用是指一種包裹webview的應(yīng)用够颠,原生應(yīng)用于網(wǎng)頁內(nèi)容交互性的應(yīng)用

重要的時安排皮毛的跨平臺的熙侍,何為跨平臺,意思就是可以針對不同的平臺用一套api來編寫測試用例

環(huán)境搭建


環(huán)境搭建

? 然后就是一些appium的安裝

Appium庫安裝

# 安裝pip install Appium-Python-Client# 檢驗(yàn)是否成功piplist


Appium使用

①打開手機(jī)應(yīng)用

②打開Appium

③創(chuàng)建一個python項(xiàng)目履磨,并創(chuàng)建一個文件

④將下面代碼復(fù)制到文件中

⑤獲取當(dāng)前應(yīng)用包名和啟動activity并修改文件


?腳本內(nèi)啟動其他app

driver.start_activity(appPackage,appActivity)

關(guān)閉app

driver.close_app() # 關(guān)閉當(dāng)前操作的app蛉抓,不會關(guān)閉驅(qū)動對象

關(guān)閉驅(qū)動對象????

driver.quit() # 關(guān)閉驅(qū)動對象,同時關(guān)閉所有關(guān)聯(lián)的app

App基礎(chǔ)操作API

完成app自動化需要一些基礎(chǔ)條件的支持剃诅,本節(jié)將講解APP初始化API

前置代碼

# server 啟動參數(shù)desired_caps={}desired_caps['platformName']='Android'desired_caps['platformVersion']='5.1'desired_caps['deviceName']='192.168.56.101:5555'desired_caps['appPackage']='com.android.settings'desired_caps['appActivity']='.Settings'desired_caps['unicodeKeyboard']=Truedesired_caps['resetKeyboard']=True# 聲明driver對象driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

安裝APK到手機(jī)

driver.install_app(app_path)

?手機(jī)中移除APP

driver.remove_app(app_id)

判斷APP是否已安裝

driver.is_app_installed(bundle_id)


importbase64data=str(base64.b64encode(data.encode('utf-8')),'utf-8')driver.push_file(path,data)參數(shù):


從手機(jī)中拉取文件

importbase64data=driver.pull_file(path)# 返回數(shù)據(jù)為base64編碼print(str(base64.b64decode(data),'utf-8'))# base64解碼


獲取當(dāng)前屏幕內(nèi)元素結(jié)構(gòu)

driver.page_source

手機(jī)控件查看工具uiautomatorviewer

如何使用

進(jìn)入SDK目錄下的tools目錄巷送,打開uiautomatorviewer

電腦連接真機(jī)或打開android模擬器

啟動待測試app

點(diǎn)擊uiautomatorviewer的左上角Device Screenshot,會生成app當(dāng)前頁面的UI控件截圖


APP元素定位操作

手工測試主要通過可見按鈕操作,而自動化是通過元素進(jìn)行交互操作矛辕。

元素的基本定位基于當(dāng)前屏幕范圍內(nèi)展示的可見元素笑跛。


通過id定位

方法:find_element_by_id(id_value) # id_value:為元素的id屬性值

業(yè)務(wù)場景:

1. 進(jìn)入設(shè)置頁面

2. 通過ID定位方式點(diǎn)擊搜索按鈕


通過class定位

方法:find_element_by_class_name(class_value) # class_value:為元素的class屬性值

業(yè)務(wù)場景:

1. 進(jìn)入設(shè)置頁面

2. 點(diǎn)擊搜索按鈕

3. 通過class定位方式點(diǎn)擊輸入框的返回按鈕

定位一組元素,注意element -> elements

應(yīng)用場景為元素值重復(fù)付魔,無法通過元素屬性直接定位到某個元素,只能通過elements方式來選擇飞蹂,返回一個定位對象的列表

獲取元素的文本內(nèi)容

方法: text

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置

2.獲取所有元素class屬性為“android.widget.TextView”的文本內(nèi)容


獲取元素在屏幕上的坐標(biāo)

方法:location

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁面

2.獲取搜索按鈕在屏幕的坐標(biāo)位置

獲取app包名和啟動名

獲取包名方法:current_package

獲取啟動名:current_activity

業(yè)務(wù)場景:

1.啟動設(shè)置

2.獲取包名和啟動名


應(yīng)用置于后臺事件

APP放置后臺几苍,模擬熱啟動

方法:background_app(seconds)

參數(shù):

1.seconds:停留在后臺的時間,單位:秒

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置頁

2.將APP置于后臺5s

APP模擬手勢高級操作

TouchAction是AppiumDriver的輔助類陈哑,主要針對手勢操作妻坝,比如滑動、長按芥颈、拖動等惠勒,原理是將一系列的動作放在一個鏈條中發(fā)送到服務(wù)器赚抡,服務(wù)器接受到該鏈條后爬坑,解析各個動作,逐個執(zhí)行涂臣。


手指輕敲操作

模擬手指輕敲一下屏幕操作

方法:tap(element=None, x=None, y=None)

方法:perform() # 發(fā)送命令到服務(wù)器執(zhí)行操作

參數(shù):

1.element:被定位到的元素

2.x:相對于元素左上角的坐標(biāo)盾计,通常會使用元素的X軸坐標(biāo)

3.y:通常會使用元素的Y軸坐標(biāo)

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置

2.點(diǎn)擊WLAN選項(xiàng)


手指按操作

模擬手指按下屏幕,按就要對應(yīng)著離開.

方法:press(el=None, x=None, y=None)

方法:release() # 結(jié)束動作,手指離開屏幕

參數(shù):

1.element:被定位到的元素

2.x:通常會使用元素的X軸坐標(biāo)

3.y:通常會使用元素的Y軸坐標(biāo)

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置

2.點(diǎn)擊WLAN選項(xiàng)



等待操作

方法:wait(ms=0)

參數(shù):

ms:暫停的毫秒數(shù)

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置

2.點(diǎn)擊WLAN選項(xiàng)

3.長按WiredSSID選項(xiàng)5秒


手指長按操作

模擬手機(jī)按下屏幕一段時間,按就要對應(yīng)著離開.

方法:long_press(el=None, x=None, y=None, duration=1000)

參數(shù):

1.element:被定位到的元素

2.x:通常會使用元素的X軸坐標(biāo)

3.y:通常會使用元素的Y軸坐標(biāo)

4.duration:持續(xù)時間赁遗,默認(rèn)為1000ms

業(yè)務(wù)場景:

1.進(jìn)入設(shè)置

2.點(diǎn)擊WLAN選項(xiàng)

3.長按WiredSSID選項(xiàng)5秒


手指移動操作

模擬手機(jī)的滑動操作

方法:move_to(el=None, x=None, y=None)

參數(shù):

1.el:定位的元素

2.x:相對于前一個元素的X軸偏移量

3.y:相對于前一個元素的Y軸偏移量

業(yè)務(wù)場景1:

1.進(jìn)入設(shè)置

2.向上滑動屏幕


手機(jī)操作API

針對手機(jī)的一些常用設(shè)置功能進(jìn)行操作.


獲取手機(jī)時間

方法:device——time

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

獲取當(dāng)前手機(jī)的時間

print(driver.drvier——time)

執(zhí)行結(jié)果

web Dec27 02:52:45: EST 2017


獲取手機(jī)的寬高

獲取手機(jī)的寬高署辉,可以根據(jù)寬高做一些坐標(biāo)的操作

方法:get_window_size()

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

print(driver.get_window_size())

{‘height:800’,‘width’:400}

發(fā)送鍵到設(shè)備

模擬系統(tǒng)值得操作岩四,比如操作home鍵音量鍵哭尝,返回鍵

參數(shù):

keycode 發(fā)送給設(shè)備的關(guān)鍵的代碼

metaste 關(guān)于被發(fā)送的關(guān)鍵代碼的源信息,一般為默認(rèn)值

業(yè)務(wù)場景:

打開設(shè)置

按多次音量鍵加鍵

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末剖煌,一起剝皮案震驚了整個濱河市材鹦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌耕姊,老刑警劉巖桶唐,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茉兰,居然都是意外死亡尤泽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門规脸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坯约,“玉大人,你說我怎么就攤上這事莫鸭」淼辏” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵黔龟,是天一觀的道長妇智。 經(jīng)常有香客問我滥玷,道長,這世上最難降的妖魔是什么巍棱? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任惑畴,我火速辦了婚禮,結(jié)果婚禮上航徙,老公的妹妹穿的比我還像新娘如贷。我一直安慰自己,他們只是感情好到踏,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布杠袱。 她就那樣靜靜地躺著,像睡著了一般窝稿。 火紅的嫁衣襯著肌膚如雪楣富。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天伴榔,我揣著相機(jī)與錄音纹蝴,去河邊找鬼。 笑死踪少,一個胖子當(dāng)著我的面吹牛塘安,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播援奢,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼兼犯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了集漾?” 一聲冷哼從身側(cè)響起切黔,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帆竹,沒想到半個月后绕娘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡栽连,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年险领,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秒紧。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡绢陌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出熔恢,到底是詐尸還是另有隱情脐湾,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布叙淌,位于F島的核電站秤掌,受9級特大地震影響愁铺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜闻鉴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一茵乱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧孟岛,春花似錦瓶竭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至次询,卻和暖如春荧恍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背渗蟹。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工块饺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赞辩,地道東北人雌芽。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像辨嗽,于是被迫代替她去往敵國和親世落。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一糟需、Appium介紹 Appium是一個移動端的自動化框架屉佳,可用于測試原生應(yīng)用、移動網(wǎng)頁應(yīng)用和混合型應(yīng)用洲押,且是跨平...
    Anwfly閱讀 2,674評論 2 7
  • 一武花、Appium介紹 Appium是一個移動端的自動化框架,可用于測試原生應(yīng)用杈帐、移動網(wǎng)頁應(yīng)用和混合型應(yīng)用体箕,且是跨平...
    九櫻MOL閱讀 946評論 0 0
  • 一、Appium介紹 Appium是一個移動端的自動化框架挑童,可用于測試原生應(yīng)用累铅、移動網(wǎng)頁應(yīng)用和混合型應(yīng)用,且是跨平...
    遺憾與人海中閱讀 304評論 0 0
  • 知識概覽 一站叼、 移動端測試是什么 移動端測試是指對移動應(yīng)用進(jìn)行的測試娃兽,即實(shí)體的特性滿足需求的程度。 二尽楔、 移動端測...
    __65a0閱讀 1,863評論 1 10
  • 移動端測試 知識概覽 一投储、 移動端測試是什么 移動端測試是指對移動應(yīng)用進(jìn)行的測試第练,即實(shí)體的特性滿足需求的程度。 二...
    G_eebd閱讀 1,354評論 0 0