比培訓機構還詳細的 Python 學習路線,你信嗎 0^0

小菠蘿測試筆記發表於2021-09-11

前言

  • 這其實是將自己寫的文章進行一個總結分類,並不代表最佳學習路線
  • 會不斷更新這篇文章...沒連結的文章正在編寫ing...會不會哪天我的這個目錄就出現在培訓機構的目錄上了...
  • 目前實戰比較少(要是有多點實戰,我就開培訓了哈哈哈)

 

Python

基礎

Python - 頭部解析

Python - 匯入的位置

Python - 執行順序、執行入口

Python - 變數

Python - 變數的作用域 

Python - 常用內建變數

Python - 算術運算子

Python - //和/的區別

Python - 賦值運算子

 

資料型別相關

Python - 基礎資料型別 Number 數字、bool 布林、complex 複數

Python - 基礎資料型別 str 字串

Python - 字串常用函式詳解

Python - 字串格式化詳解(%、format)

Python - r'', b'', u'', f'' 的含義

Python - bytes與字串的相互轉化

Python - 判斷一個字串是否包含某個指定的字串

Python - 字串 encode

Python - 基礎資料型別 list 列表

Python - 如何將 list 列表作為資料結構使用

Python - list 列表常見方法

Python - 基礎資料型別 tuple 元組

Python - 可變和不可變物件 

Python - 基礎資料型別 dict 字典

Python - dict 字典的多種遍歷方式

Python - dict 字典常見方法

Python - 基礎資料型別 set 集合

Python - 物件賦值、淺拷貝、深拷貝的區別

Python - 淺拷貝的四種實現方式

 

迴圈相關

Python - 詳解 range()

Python - for 迴圈

Python - if 條件控制

Python - while 迴圈

Python - break、continue 的使用 

 

函式相關

Python - 函式

Python - 函式形參之必填引數、預設引數、可變引數、關鍵字引數的詳細使用

Python - 基本資料處理函式round()、int()、floor()、ceil()

Python - 解包的各種騷操作

Python - 3.8 新特性之僅位置引數 & 僅關鍵字引數

Python - 函式實戰

Python - lambda 表示式

Python - repr()、str() 的區別

Python - eval()

Python - bytes()

 

物件導向程式設計

Python - 物件導向程式設計 - 什麼是 Python 類、類物件、例項物件Python - 物件導向程式設計 - 什麼是物件和類

Python - 物件導向程式設計 - __init__() 構造方法

Python - 物件導向程式設計 - __del__() 析構方法

Python - 物件導向程式設計 - self 引數

Python - 物件導向程式設計 - 小實戰(1)

Python - 物件導向程式設計 - 類變數、例項變數/類屬性、例項屬性 

Python - 物件導向程式設計 - 例項方法、靜態方法、類方法

Python - 物件導向程式設計 - __str__() 

Python - 物件導向程式設計 - __repr__()

Python - 物件導向程式設計 - 公共屬性、保護屬性、私有屬性

Python - 物件導向程式設計 - 小實戰(2)

Python - 物件導向程式設計 - 小實戰(3)

Python - 物件導向程式設計 - 三大特性之封裝

Python - 物件導向程式設計 - @property

Python - 物件導向程式設計 - 實戰(4)

Python - 物件導向程式設計 - 三大特性之繼承

Python - 物件導向程式設計 - 子類方法的重寫

Python - 物件導向程式設計 - 新式類和舊式類

Python - 物件導向程式設計 - 多繼承

Python - 物件導向程式設計 - super()

Python - 物件導向程式設計 - 使用 super() 的一些注意事項

Python - 物件導向程式設計 - MRO 方法搜尋順序

Python - 物件導向程式設計 - 三大特性之多型

Python - 物件導向程式設計 - 實戰(5) 

Python - 物件導向程式設計 - __call__()

Python - 物件導向程式設計 - __new__() 和單例模式 

Python - 物件導向程式設計 - 魔術方法(雙下劃線方法)

Python - 物件導向程式設計 - 實戰(6)

Python - 模組與包

Python - 錯誤和異常

 

檔案相關

Python - with open()、os.open()、open()的詳細使用

Python - 檔案讀取read()、readline()、readlines()區別

Python - os.walk()詳細使用

Python - 檔案模式a+讀取不了檔案

Python - 批量修改檔名

 

高階點的

Python - 多執行緒、多程式

Python 高階特性(1)- 切片

Python 高階特性(2)- 可迭代物件 iterable

Python 高階特性(3)- 列表生成式

Python 高階特性(4)- 生成器 generator

Python 高階特性(5)- 迭代器 Iterator

 

typing、型別提示

Python -型別提示 Type Hints

Python - typing 模組 —— 常用型別提示

Python - typing 模組 —— 型別別名

Python - typing 模組 —— NewType

Python - typing 模組 —— Callable

Python - typing 模組 —— Any Type

Python - typing 模組 —— TypeVar 泛型

Python - typing 模組 —— Union

Python - typing 模組 —— Optional

 

Pydantic

Python - pydantic 入門介紹與 Models 的簡單使用

 

新奇的 Python 庫

Python - random 庫的詳細使用

Python - logging 日誌庫

Python - 超好用的第三方庫pathlib,快速獲取專案中各種路徑

Python - loguru日誌庫,高效輸出控制檯日誌和日誌記錄

Python - 通過PyYaml庫操作YAML檔案

Python - 常⽤的操作 excel 第三方庫

Python - os庫

Python - 執行cmd命令

Python - 進度條庫 tqdm

 

常見問題解決方案

Python常見問題 - 使用openpyxl模組時出現錯誤: zipfile.BadZipFile: File is not a zip file

Python常見問題 - 寫入資料到 excel 報 ValueError: invalid literal for int() with base 10 錯誤

 

做專案可能會用到的

Python - 生成 requirement.txt 檔案

Python - pip 常用命令

Python - pipupgrade 庫

Python - pip-review 庫

Python - pip 批量更新

 

資料庫相關

Python - 操作 MySQL 資料庫

 

新人寫的不著調工具類

僅做記錄,不值得參考

Python工具類(一)—— 操作Mysql資料庫

Python工具類(二)—— 操作時間相關

 

很low的基礎習題集

Python習題集(一)

Python習題集(二) 

Python習題集(三) 

Python習題集(四)

Python習題集(五)

Python習題集(六) 

Python習題集(七)

Python習題集(八)

Python習題集(九)

Python習題集(十)

Python習題集(十一)

Python習題集(十二)

Python習題集(十三)

Python習題集(十四)

Python習題集(十五)

Python習題集(十六)

 

介面自動化

python介面自動化測試 - configparser配置檔案解析器詳細使用 

python介面自動化測試 - openpyxl封裝類

python介面自動化測試 - openpyxl基本使用

python介面自動化測試 - unittest框架基本使用

python介面自動化測試 - unittest框架suite、runner詳細使用

python介面自動化測試 - mock模組基本使用介紹

python介面自動化測試 - requests庫的post請求進行檔案下載

python介面自動化測試 - requests庫的post請求進行檔案上傳

python介面自動化測試 - requests庫的基礎使用

python介面自動化測試 - 資料驅動DDT模組的簡單使用

 

常見問題解決方案

Python常見問題 - python3 requests庫提示警告InsecureRequestWarning的問題

Python常見問題 - python3 使用requests傳送HTTPS請求報certificate verify failed 錯誤

Python常見問題 - requests請求引數包含中文報錯:UnicodeEncodeError: 'latin-1' codec can't encode characters in position 13-14:  is not valid Latin-1. Use body.encode('utf-8')

 

Pytest+Allure

Pytest系列(1) - 快速入門和基礎講解

Pytest系列(2) - assert斷言詳細使用

Pytest系列(3) - setup和teardown的詳細使用

Pytest系列(4) - fixture的詳細使用 

Pytest系列(5) - 測試用例執行後的幾種狀態

Pytest系列(6) - conftest.py的詳細講解

Pytest系列(7) - skip、skipif跳過用例

Pytest系列(8) - 使用自定義標記mark

Pytest系列(9) - 引數化@pytest.mark.parametrize

Pytest系列(10) - fixture 傳引數 request的詳細使用

Pytest系列(11)- 失敗重跑外掛pytest-rerunfailures的詳細使用

Pytest系列(12)- 測試結果生成HTML報告外掛之pytest-html的詳細使用

Pytest系列(13)- 重複執行用例外掛之pytest-repeat的詳細使用

Pytest系列(14)- 配置檔案pytest.ini的詳細使用

Pytest系列(15)- 多重校驗外掛之pytest-assume的詳細使用

Pytest系列(16)- 分散式測試外掛之pytest-xdist的詳細使用

Pytest系列(17)- pytest-xdist分散式測試的原理和流程

Pytest系列(18)- 超美測試報告外掛之allure-pytest的基礎使用

Pytest系列(19)- 我們需要掌握的allure特性

Pytest系列(20)- allure的特性,@allure.step()、allure.attach的詳細使用

Pytest系列(21)- allure的特性,@allure.description()、@allure.title()的詳細使用

Pytest系列(22)- allure的特性,@allure.link()、@allure.issue()、@allure.testcase()的詳細使用

Pytest系列(23)- allure 打標記之 @allure.epic()、@allure.feature()、@allure.story() 的詳細使用

Pytest系列(24)- allure 環境準備

Pytest系列(25)- @allure.severity 標記用例級別

Pytest系列(26)- 清空 allure 歷史報告記錄

Pytest系列(27)- allure 命令列引數

Pytest系列(28)- 引數化 parametrize + @allure.title() 動態生成標題

Pytest系列(29)- 詳解 allure.dynamic 動態生成功能

Pytest 面試寶典

 

實戰小專案

Docker + Jenkins + Gitlab + Pytest + Allure 介面自動化測試之持續整合實戰終極教程

 

UI 自動化

Selenium系列(二) - 詳細解讀針對瀏覽器的操作Selenium系列(一) - 詳細解讀8種元素定位方式

Selenium系列(三) - 詳細解讀針對元素常見的簡單操作

Selenium系列(四) - 詳細解讀滑鼠操作

Selenium系列(五) - 詳細解讀鍵盤操作

Selenium系列(六) - 詳細解讀強制等待、隱式等待、顯式等待的區別和原始碼解讀

Selenium系列(七) - 切換iframe 

Selenium系列(八) - 擷取完整頁面和擷取指定元素並儲存為圖片

Selenium系列(九) - 針對alert視窗的處理(警告框、確認框、對話方塊)和原始碼解讀

Selenium系列(十) - 針對Select下拉框的操作和原始碼解讀

Selenium系列(十一) - 針對兩種上傳檔案方式的實現方案

Selenium系列(十二) - 自動化必備知識之CSS選擇器的詳細使用

Selenium系列(十三) - 自動化必備知識之Xpath的詳細使用

Selenium系列(十四) - Web UI 自動化基礎實戰(1) 

Selenium系列(十五) - Web UI 自動化基礎實戰(2)

Selenium系列(十六) - Web UI 自動化基礎實戰(3)

Selenium系列(十七) - Web UI 自動化基礎實戰(4)

Selenium系列(十八) - Web UI 自動化基礎實戰(5)

Selenium系列(十九) - Web UI 自動化基礎實戰(6)

Selenium系列(二十) - PageObject模式的詳細介紹

Selenium系列(21) - Cookie操作和原始碼解讀

Selenium系列(22) - 通過selenium控制瀏覽器滾動條的幾種方式

Selenium常見報錯問題(1)- 先來認識下selenium常見異常類

Selenium常見報錯問題(2)- 解決和分析StaleElementReferenceException異常

Selenium常見報錯問題(3)- 解決和分析NoSuchElementException

Selenium 面試寶典

 

APP 自動化

Appium自動化(1) - 環境準備詳細教程

Appium自動化(2) - appium環境安裝常見問題的解決方案

Appium自動化(3) - adb無線連線手機的方法

Appium自動化(4) - Appium Desired Capabilities 引數詳解

Appium自動化(5) - 如何獲取android app 的Activity 和 Package

Appium自動化(6) - 控制元件定位工具之uiautomatorviewer 的詳細介紹

Appium自動化(7) - 控制元件定位工具之Appium 的 Inspector

Appium自動化(8) - 可定位的控制元件屬性

Appium自動化(9) - appium元素定位的快速入門

Appium自動化(10) - appium高階元素定位方式之 UI Automator API 的詳解

Appium自動化(11) - 詳解 Applications 類裡的方法和原始碼解析

Appium自動化(12) - 詳解 HardwareActions 類裡的方法和原始碼分析

Appium自動化(13) - 詳解 Keyboard 類裡的方法和原始碼分析

Appium自動化(14) - 詳解 ActionHelpers 類裡的方法和原始碼分析

Appium自動化(15) - 針對 webview 進行自動化測試

Appium自動化(16) - 使用手機瀏覽器進行自動化測試

 

 

常見問題解決方案

Appium問題解決方案(1)- 設定unicodeKeyboard: True執行指令碼後,手機輸入時無法調出軟鍵盤 

Appium問題解決方案(3)- java.lang.IllegalStateException: UiAutomation not connected! 

Appium問題解決方案(2)- AttributeError:module 'appium.webdriver' has no attribute 'Remote'

Appium問題解決方案(4)- Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException

Appium問題解決方案(5)- selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy 'name' is not supported for this session

Appium問題解決方案(6)- Java堆疊錯誤:java.lag.ClassNotFoundException:org.eclipse.swt.widets.Control

Appium問題解決方案(7)- Could not find 'adb.exe' in PATH. Please set the ANDROID_HOME environment variable with the Android SDK root directory path

Appium問題解決方案(8)- selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not sign with default certificate.

Appium問題解決方案(9)- Original error: Failed to launch Appium Settings app: Condition unmet after 5090 ms

Appium問題解決方案(10)- Original error: Swipe did not complete successfully 

 

RobotFramework

Robot Framework(1)- 入門介紹

Robot Framework(2)- 快速安裝

Robot Framework(3)- 基本概念

Robot Framework(4)- 測試套件的基本使用

Robot Framework(5)- 使用測試庫

Robot Framework(6)- BuiltIn 測試庫常用的關鍵字列表

Robot Framework(7)- DateTime 測試庫常用的關鍵字列表

Robot Framework(8)- Collections 測試庫常用的關鍵字列表

Robot Framework(9)- 使用變數檔案

Robot Framework(10)- 使用資原始檔

Robot Framework(11)- 使用者關鍵字的詳解

Robot Framework(12)- 詳細解讀 RF 的變數和常量

Robot Framework(13)- RF 迴圈的詳細使用

Robot Framework(14)- Variables 表的詳細使用和具體例子

Robot Framework(15)- 擴充套件關鍵字

Robot Framework 面試題

 

Flask

Flask(1)- 簡介

Flask(2)- 第一個 Flask Application

Flask(3)- Flask 中的 HTTP 方法

Flask(4)- URL 組成部分詳解

Flask(5)- 動態路由

Flask(6)- debug 模式

Flask(7)- request 物件

Flask(8)- jinja2 模板入門

Flask(9)- 藍圖的基本使用

Flask(10)- 標準類檢視

Flask(11)- 操作 Cookie

Flask(12)- 操作 Session

 

常見問題解決方案

Flask - 解決 app.run() 新增 host、port、debug 引數後執行不生效的問題 

Flask - 訪問返回字典的介面報錯:The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a dict.

 

FastAPI

FastAPI(1)- 簡單介紹

 

相關文章