史上最全 Appium 自動化測試從基礎到框架實戰精華學習筆記(一)

      網友投稿 848 2025-04-01

      對測試人來說,Appium 是非常重要的一個開源跨平臺自動化測試工具,它允許測試人員在不同的平臺(iOS、Android 等)使用同一套 API 來寫自動化測試腳本,這樣可大幅提升代碼復用率和工作效率。


      本文匯總了從 Appium 基礎到自動化測試高級實戰中,所涉及到的方方面面的知識點精華內容(如下所示),希望對大家快速總結和復習有所幫助。

      1.Appium 基礎 1(環境搭建和簡介)

      2.Appium 基礎 2(元素定位和元素常用方法)

      3.Appium 基礎 3(手勢操作和 uiautomator 查找元素)

      4.Appium 基礎 4(顯式等待)

      5.Appium 基礎 5(toast 和參數化)

      6.Appium 基礎 6(webview)

      7.Appium_ 企業微信練習 (非 PO,增加和刪除聯系人)

      8.Appium_ 企業微信練習 (PO–增加聯系人)

      下載 1.8 的 jdk

      新建環境變量:JAVA_HOME 值為:D:\Program Files\Java\jdk1.7.0

      新建環境變量:CLASSPATH 值為:.;%JAVA_HOME%\lib;(注意:點號表示當前目錄,不能省略)

      在系統變量 Path 的值的前面加入以下內容:%JAVA_HOME%\bin

      下載 sdk

      打開 sdk 的 sdk manager,安裝 tools 前 3 個東西和 google 的 usb 驅動

      配置 Android home 里面的 platform-tools 和 tools

      安裝 node.js,配置 node.js 的環境變量

      npm install -g cnpm --registry=https://registry.npm.taobao.org

      cnpm install -g appium

      cnpm install -g appium-doctor

      pip install appium-python-client

      mumu 連接 adb 是:adb connect 127.0.0.1:7555

      Android 是 uiautomator2

      ios 是 xcuitest

      webdriver 是基于 http 協議的,第一連接會建立一個 session 會話,并通過 post 發送一個 json 告知服務端相關測試信息

      client/server 設計模式

      客戶端通過 webdriver json wire 協議與服務器通訊

      多語言支持

      server 可以放在任何地方

      服務器 nodejs 開發的 http 服務

      appium 使用 appium-xcuitest-driver 來測試 iphone 設備,其中需要安裝 Facebook 出的 WDA(webdriver agent) 來驅動 ios 測試

      adb:Android 控制工具

      appium Destkop:內嵌 appium server 和 inspector 的綜合工具

      appium server:appium 的核心工具,命令行工具

      appium client:各種語言的客戶端封裝庫,用戶連接 appium server,包含 python、java、ruby 等

      appcrawler 自動遍歷工具

      獲取當前元素界面:adb shell dumpsys activity top

      獲取任務列表:adb shell dumpsys activity activities

      獲取 app 的 package 和 activity:adb shell;然后 logcat | grep -i displayed

      啟動應用:adb shell am start -W -n "com.xueqiu.android/.view.WelcomeActivityAlias -S

      文檔地址:http://appium.io/docs/en/writing-running-appium/caps/index.html

      platformName:android 通常都是寫 android

      deviceName:127.0.0.1:7555 這個通常是 adb devices 的名稱

      appPackage:com.xueqiu.android 這個是 app 的 package 包名

      appActivity:.view.WelcomeActivityAlias 這個是 app 的 activity 名

      noReset:true, false 是否重置測試的環境(例如首次打開彈框,或者登陸信息)

      unicodeKeyboard:true, false 是否需要輸入非英文之外的語言并在測試完成后重置輸入法,比如輸入中文

      dontStopAppOnReset:true, false 首次啟動的時候,不停止 app

      skipDeviceInitialization:true, false 跳過安裝,權限設置等操作

      https://github.com/appium/appium/tree/master/sample-code/apps

      Android 是通過容器的布局屬性來管理子控件的位置關系,布局過程就是把界面上的所有的控件,根據他們的間距的大小,擺放在正確的位置

      線性布局:LinearLayout

      相對布局:RelativeLayout

      幀布局:FrameLayout

      絕對布局:AbsoluteLayout

      表格布局:TableLayout

      網格布局:GirdLayout

      約束布局:ConstraintLayout

      activity:與用戶交互的可視化界面

      service:實現程序后臺運行的解決方案,比如 qq 音樂的音樂在后臺運行,沒有界面

      content provide:內容提供者,提供程序所需要的數據,比如?提供數據庫?

      broadcast receiver:廣播接收器,監聽外部事件的到來(比如來電)

      TextView:文本控件

      EditText:可編輯文本控件

      Button:按鈕

      ImageButton:圖標按鈕

      ToggleButton:開關按鈕

      ImageView:圖片控件

      CheckBox:復選框控件

      RadioButton:單選框控件

      dom:Document Object Model 文檔對象模型

      dom 應用:最早應用于 html 和 js 的交互,用戶表示界的控件層級,界面的結構化描述,常見的格式為 html、xml。核心元素為節點和屬性

      xpath:xml 路徑語言,用于 xml 中的節點定位

      Android 的應用層級結構是定制的 xml

      app source 類似于 dom,表示 app 的層級,表示界面里面所有的控件數的結構

      每個控件都有它的屬性(resourceid、xpath、aid),沒有 css 屬性

      driver.find_element_by_accessibility_id() 對應 content-desc

      driver.find_element_by_id() 對應 resource-id

      driver.find_element_by_name() 對應 text

      driver.find_element_by_xpath() 對應 xpath

      首先要 from appium.webdriver.common.mobileby import MobileBy as By

      self.driver.find_element(By.ID,"") 對應 resource-id

      self.driver.find_element(By.XPATH,"") 對應 xpath

      史上最全 Appium 自動化測試從基礎到框架實戰精華學習筆記(一)

      self.driver.find_element(By.ACCESSIBILITY_ID,"") 對應 content-desc

      self.driver.find_element(By.NAME,"") 對應 text

      driver.find_element_by_xpath("http://*[@text=’ 掃一掃 ']")

      driver.find_element_by_xpath("http://*[@resource-id=‘com.taobao.taobao:id/tv_scan_text’]")

      driver.find_element_by_xpath("http://*[@content-desc=’ 幫助 ']")

      driver.find_element(By.XPATH,"http://*[@resource-id=‘com.xueqiu.android:id/name’ and @text=’ 阿里巴巴 ']") and 的使用

      父類和兄弟類的方法://[@text=’ 性別 ‘]/…//[@text=’ 男 ']。其中 /… 表示父類,//* 就是兄弟,孫子等類

      //*[Contains(@text,“tong”)] 這是 xpath 的 text 模糊搜索的方法

      點擊方法:element.click()

      輸入操作:element.send_keys(“tong”)

      設置元素的值:element.set_value(“tongtong”)

      清除操作:element.clear()

      是否可見:element.is_displayed 返回 true or false

      是否可用:element.enabled() 返回 true or false

      是否被選中:element.is_selected() 返回 true or false

      獲取屬性值:element.get_attribute(name)

      get_attribute(name) 獲取的屬性名稱和 uiautomatorviewer 的一致,但是 index 的值獲取不了

      真假獲取的值是 true 和 false 的字符串,并不是 python 的 boolean 值

      獲取元素文本:element.text

      獲取元素坐標:element.location

      結果:{‘y’:19,‘x’:498}

      獲取元素尺寸(高和寬):element.size

      結果:{‘width’:500,‘height’:22}

      9.打開雪球 app

      10.點擊搜索輸入框

      11.向搜索輸入框輸入 “阿里巴巴

      12.在搜索的結果里選擇阿里巴巴,然后點擊

      13.獲取這只上香港 阿里巴巴的股價,并判斷這只股價的價格>200

      14.打開雪球首頁

      15.定位首頁的搜索框

      16.判斷搜索框是否可用,并查看搜索框 name 屬性值

      17.打印搜索框這個元素的左上角坐標和它的寬高

      18.向搜索框輸入:alibaba

      19.判斷阿里巴巴是否可見

      20.如果可見,打印搜索成功點擊,如果不可見,打印搜索失敗

      更多內容,我們在后續文章分享。

      自動化測試

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:表格為什么設置不了單元格格式(電子表格不能設置單元格格式)
      下一篇:如何在wps表格中實現自動求和功能(wpsexcel表格怎么自動求和)
      相關文章
      亚洲婷婷第一狠人综合精品| 亚洲无砖砖区免费| 亚洲冬月枫中文字幕在线看| 亚洲国产成人高清在线观看| 国产午夜亚洲精品午夜鲁丝片 | 精品亚洲视频在线| 亚洲人成电影网站色| 亚洲 欧洲 自拍 另类 校园| jlzzjlzz亚洲jzjzjz| 亚洲一级免费毛片| 亚洲国产激情在线一区| 亚洲AV成人影视在线观看 | 亚洲热妇无码AV在线播放| 亚洲精品中文字幕乱码三区| 亚洲精品无码乱码成人| 亚洲成AV人在线观看天堂无码| 亚洲成AV人片在| 久久精品蜜芽亚洲国产AV| 亚洲色av性色在线观无码| 亚洲人色大成年网站在线观看| 亚洲综合丁香婷婷六月香| 亚洲人成人网毛片在线播放| 久久亚洲国产成人影院| 亚洲丰满熟女一区二区哦| 亚洲AⅤ无码一区二区三区在线| 亚洲国产午夜福利在线播放| 伊人亚洲综合青草青草久热| 亚洲va无码专区国产乱码| 老汉色老汉首页a亚洲| 亚洲国产成人精品电影| 中文字幕亚洲综合小综合在线| 亚洲欧美熟妇综合久久久久| 亚洲AⅤ男人的天堂在线观看| 亚洲第一网站男人都懂| 亚洲无线观看国产精品| 亚洲精品免费视频| 亚洲一卡2卡3卡4卡国产网站| 亚洲欧美国产国产一区二区三区| 国产91成人精品亚洲精品| 国产a v无码专区亚洲av| 亚洲AV午夜成人片|