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

前言

  • 這其實是將自己寫的文章進行一個總結分類,並不代表最佳學習路線
  • 會不斷更新這篇文章…沒鏈接的文章正在編寫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)- 簡單介紹