python測試相關庫學習

今天花了一些時間,過了一下這幾年本身用Python開發的自動化測試框架,而後將其中經常使用到Python庫抽出來,簡單整理了一下它們的用處。我以爲,只要掌握了這些經常使用的Python庫,足以應對大多數自動化測試框架和工具的開發工做。前端

爲了從若干源代碼文件中找出這些被引用的Python庫,還專門寫了一個小工具來查找它們,該工具已經上傳到github,地址是:import_search.pypython

若是各位在平時工做中,發現了好用的Python庫,也請留言註明,我好補充。git

基本庫:github

sys 程序和Python解析器的交互web

os 啓動新進程;操做文件和目錄正則表達式

re 正則表達式,字符串匹配redis

string 基本字符串操做sql

inspect 提供自省和反射功能mongodb

importlib 支持動態導入數據庫

bitstring二進制數據處理

zipfile 壓縮解壓文件

tarfile 壓縮解壓文件

random 隨機數,機率

uuid 生成惟一碼

defaultdict 帶默認值的字典

fcntl 操做文件描述符

signal 信號處理

threading 線程庫,構建併發應用

psutil 系統性能參數

命令行,讀取配置:

optparse 處理命令行選項

glob 文件路徑查找

yaml 訪問yaml數據文件

ConfigParser 讀取配置文件

xml XML

pickle 序列化

json 序列化

網絡請求相關:

libxml2 XML解析器

urlparse URL解析

urllib 訪問URL資源

urllib2 訪問URL資源

cookielib http客戶端的cookie處理

requests 神器,用於發送網絡請求,經常使用於接口測試

httplib http請求客戶端

BeautifulSoup HTMLXML文件中提取數據的Python

網絡數據包:

scapy 網絡嗅探工具包

dpkt 網絡數據報解析

pcapy 解析pcap文件

socket TCP,UDP數據協議

struct python基本類型值與用python字符串格式表示的C struct類型間的轉化,主要用於網絡數據傳輸

測試系統構建:

flask 構建web應用,構建HTTP接口

tornado 構建web應用,構建HTTP接口

BaseHTTPServer 簡單HTTP服務器

appium App自動化測試工具

selenium 大名鼎鼎的web自動化測試工具

behave BDD自動化測試框(通用自動化測試框架)

unittest Python內置自動化測試框架(通用自動化測試框架)

logging 日誌庫

traceback 調試信息

nanotime 納秒級的時間

time 時間訪問和轉換函數

datetime 日期和時間

jenkinsapi 訪問jenkins

分佈式系統構建

xmlrpclib 基於xml的遠程RPC

fabric 利用ssh高效部署和管理系統的工具,用於遠程執行命令和部署文件

paramiko 遵循SSH2協議,支持以加密和認證的方式,進行遠程服務器的鏈接。用於遠程執行命令和部署文件

大數據和數據庫相關:

avro avro是一個數據序列化系統

etcd etcd訪問庫

pyspark spark

hdfs hdfs

pyhive hive

redis 訪問redis數據庫

rediscluster 訪問redis集羣

pymongo 訪問mongodb

kafka 訪問kafka

pykafka 訪問kafka

sqlalchemy ORM

MySQLdb 訪問MySQL數據庫

結果展現:

smtplib 負責發送郵件

email 負責構造郵件

numpy 數據處理

math 顧名思義

matplotlib 數據繪圖包

pylab 繪製二維,三維數據

pychart 製做圖表

 

你必須知道的10個Python第三庫

  1. BeautifulSoup
      Beautiful Soup是一個能夠從HTML,XML進行提取文件的Python庫,平常咱們使用爬蟲進行數據抓取回來以後,每每須要進行數據解析。
      使用它能讓你開心愉快提取裏面的爬回來的數據。
      2. Arrow
      用過datetime標準庫的同窗都知道,這個庫每次須要import各類時間模塊格式化,很是不友好,arrow直接接受各類時間(datetime,date,timestamp)類型轉化爲Arrow類型,而後進行各類格式化操做,很是方便。非常人性化,簡直是居家旅行必備良藥
      3. Requests
      題圖就是requests的logo,這個庫使用量之大,Python開發者應該是無人不知無人不曉。
      requests是平常網絡庫使用最頻繁的一個,不論是用於正式仍是測試,它徹底知足與平常網絡的需求,很是人性化,簡單好用。
      requests目前在github有36+的star,除了功能強大,源碼也是寫的很是贊。五星推薦
      4. Fabric
      對於少許服務器,平常自動化發佈配置,與服務器交互只須要配置一個fabfile.py的自動化腳本就行,很是簡單方便。若是須要更多配置運維可使用ansible,這個後期我單獨和你們討論。
      5. Statsd
      做爲一枚開發同窗,服務器API性能,耗時監控是一個很重要的數據,咱們須要收集起來進行實時分析。
      statsd是一個網絡守護進程,經過Python客戶端,咱們能夠統計監聽API數據發送到服務端,好比ES,influxdb,promethues,而且用Grafana進行數據展現。
      6. Gevent
      gevent是基於協程的Python網絡庫,經過gevent使的協程的使用變得很是簡單,遇到阻塞你不須要顯示切換,程序會進行自動調度。使用很是普遍,在部署flask,celery每每會加入gevent提升服務性能。
      7. Supervisor
      以前文章提到過supervisor能夠大大方便咱們進行進程管理,開始,重啓,中止,查看日誌等等。
      8. Voluptuous
      這個庫估計不少同窗不知道,主要是平常寫API的時候進行數據校驗,當前端API傳遞參數過多的時候,這個庫,能夠經過裝飾器的方式提早進行校驗數據邏輯,大大下降了你在代碼邏輯校驗數據的耦合,強烈推薦後端的同窗使用。
      9. Raven
      單純這個名字你們可能不那麼敏感,可是sentry你們確定就知道了。
      這個庫就是sentry服務的SDK包。對於平常郵件報警咱們經過安裝了這個包配合sentry後端服務,就可以進行各類郵件報警的錯誤收集。
      另外經過設置日誌等級,咱們能輕鬆經過logger進行觸發報警。
      這個包適合多個語言,不只僅是Python語言之下。10. uWSGIuWSGI這個是一個web服務器,它實現了WSGI協議、uwsgi、http等協議,咱們在Python平常部署文章提到過,主要經過Nginx + uWSGI 拉動咱們應用服務(好比Django)提升服務吞吐量。
相關文章
相關標籤/搜索