日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

appium 移动端自动化测试工具(4)

發布時間:2025/4/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 appium 移动端自动化测试工具(4) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 簡介

原生應用和web應用

(1)原生應用是特別為某種操作系統開發的. (2)Web應用本質上是為移動瀏覽器設計的基于Web的應用. (3)混合應用大家都知道是原生應用和Web應用的結合體,採用了原生應用的一部分、Web應用的一部分,所以必須部分在設備上執行、部分在Web上執行。

?

?

?

?

?

?

appium架構

?

?

二 appium特點

?

三 工作原理

?

appnium-client選擇python語言編寫appium腳本,并行執行腳本.請求先經過appium-server服務端,通過解析和驅動移動設備虛擬機.

?

?

四 安裝

http://appium.io/

?

?

?

?

雙擊下一步安裝即可,

?

簡單啟動,設置host和port

?

點擊start開啟,界面如下

?

安裝完成.

?

五 inspector (會話)配置

1 簡介

?

?

?

?

?

?

?

?

?

?

?獲取安卓版本

?

獲取設備信息

?

?獲取包名

adb shell dumpsys activity top | findstr “ACTIVITY”

?

?

?

?active名字

?

方法二 獲取包名和active名字

?

?打開需要監聽的軟件,如考研幫,查看日志

?

保存session ,啟用session 就可以進行app自動化測試.

?

六 考研app實戰

要求:

?

?

賬號:asdfghjkl0111 密碼:********

?

?

工具

1 一臺手機或者安卓模擬器2 uiautomatorviewer3 python

?

?

?實戰步驟

1 啟動appium,查看設備配置信息,不啟動session .

?

?

?2 python 準備

1 安裝 appium客戶端

pip install Appium-Python-Client

?

?

2 必須保證appnium服務器啟動,檢測是否能正常驅動安卓軟件,執行下面代碼

#導入appium設備驅動器 from appium import webdriver#設置安卓設備配置信息(appium中的inspector參數) cap={"platformName": "Android","platformVersion": "5.1.1","deviceName": "127.0.0.1:62025","appPackage": "com.tal.kaoyan","appActivity": "com.tal.kaoyan.ui.login.LoginActivity","noReset": True }#實例化一個web驅動器 driver = webdriver.Remote('HTTP://127.0.0.1:4723/wd/hub',cap)

?

?

3 完整代碼

#導入appium設備驅動器 import timefrom appium import webdriver#導入等待模塊 from selenium.webdriver.support.ui import WebDriverWait#設置安卓設備配置信息(appium中的inspector參數) cap={"platformName": "Android","platformVersion": "5.1.1","deviceName": "127.0.0.1:62025","appPackage": "com.tal.kaoyan","appActivity": "com.tal.kaoyan.ui.activity.SplashActivity","noReset": True }#實例化一個web驅動器 driver = webdriver.Remote('HTTP://127.0.0.1:4723/wd/hub',cap)# *** 啟動app耗時比較多,等待時間最好設置大一些 *** #如果存在跳過按鈕,則獲取跳過按鈕 try:# WebDriverWait用于等待按鍵出現if WebDriverWait(driver,10).until(lambda x:x.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_skip']")):driver.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_skip']").click() except:pass#處理登錄過程 try:#如果彈出登錄界面,則登錄if WebDriverWait(driver, 3).until(lambda x: x.find_element_by_xpath("//android.widget.Button[@resource-id='com.tal.kaoyan:id/login_login_btn']")):driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.tal.kaoyan:id/login_email_edittext']").send_keys('asdfghjkl0111')driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.tal.kaoyan:id/login_password_edittext']").send_keys('*********')time.sleep(0.5)driver.find_element_by_xpath("//android.widget.Button[@resource-id='com.tal.kaoyan:id/login_login_btn']").click() except:pass# #點擊咨詢if WebDriverWait(driver,10).until(lambda x: x.find_element_by_xpath("//android.support.v7.widget.RecyclerView[@resource-id='com.tal.kaoyan:id/date_fix']/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]")):driver.find_element_by_xpath("//android.support.v7.widget.RecyclerView[@resource-id='com.tal.kaoyan:id/date_fix']/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]").click()#獲取設備的尺寸 def get_size():x=driver.get_window_size()['width']y=driver.get_window_size()['height']return x,yl= get_size() x1=int(l[0]*0.5) y1=int(l[1]*0.75) y2=int(l[1]*0.25)while True:#滑動刷新頁面,點到點滑動方式(x1,y1)--->(x2,y2) driver.swipe(x1,y1,x1,y2)time.sleep(0.5)

?

?

知識點講解

  • 導入等待模塊

  from selenium.webdriver.support.ui import WebDriverWait

  if WebDriverWait(driver,time).until(method):

  • 獲取設備的尺寸

    def get_size(): x=driver.get_window_size()['width'] y=driver.get_window_size()['height'] return x,y

  • 活動頁面

    while True: #滑動刷新頁面,點到點滑動方式(x1,y1)--->(x2,y2) driver.swipe(x1,y1,x1,y2) time.sleep(0.5)

?

?顯示等待:

  指定一個等待條件,和一個最長等待時間,程序會判斷在等待時間內條件是否滿足,如果滿足則返回,如果不滿足會繼續等待,超過時間就會拋出異常.

if WebDriverWait(driver,time).until(method):

?

?

隱式等待
當使用了隱式等待執行測試的時候,如果 WebDriver沒有在 DOM中找到元素,將繼續等待,超出設定時間后則拋出找不到元素的異常, 換句話說,當查找元素或元素并沒有立即出現的時候,隱式等待將等待一段時間再查找 DOM,默認的時間是0. browser.implicitly_wait(10)#等待十秒加載不出來就會拋出異常,10秒內加載出來正常返回

?

轉載于:https://www.cnblogs.com/angle6-liu/p/10815183.html

總結

以上是生活随笔為你收集整理的appium 移动端自动化测试工具(4)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。