❶ Python滲透測試工具都有哪些
Scapy, Scapy3k: 發送,嗅探,分析和偽造網路數據包。可用作互動式包處理程序或單獨作為一個庫
pypcap, Pcapy, pylibpcap: 幾個不同 libpcap 捆綁的python庫
libdnet: 低級網路路由,包括埠查看和乙太網幀的轉發
dpkt: 快速,輕量數據包創建和分析,面向基本的 TCP/IP 協議
Impacket: 偽造和解碼網路數據包,支持高級協議如 NMB 和 SMB
pynids: libnids 封裝提供網路嗅探,IP 包碎片重組,TCP 流重組和埠掃描偵查
Dirtbags py-pcap: 無需 libpcap 庫支持讀取 pcap 文件
flowgrep: 通過正則表達式查找數據包中的 Payloads
Knock Subdomain Scan: 通過字典枚舉目標子域名
SubBrute: 快速的子域名枚舉工具
Mallory: 可擴展的 TCP/UDP 中間人代理工具,可以實時修改非標准協議
Pytbull: 靈活的 IDS/IPS 測試框架(附帶超過300個測試樣例)
調試和逆向工程
Paimei: 逆向工程框架,包含PyDBG, PIDA , pGRAPH
Immunity Debugger: 腳本 GUI 和命令行調試器
mona.py: Immunity Debugger 中的擴展,用於代替 pvefindaddr
IDAPython: IDA pro 中的插件,集成 Python 編程語言,允許腳本在 IDA Pro 中執行
PyEMU: 全腳本實現的英特爾32位模擬器,用於惡意軟體分析
pefile: 讀取並處理 PE 文件
pydasm: Python 封裝的libdasm
PyDbgEng: Python 封裝的微軟 Windows 調試引擎
uhooker: 截獲 DLL 或內存中任意地址可執行文件的 API 調用
diStorm: AMD64 下的反匯編庫
python-ptrace: Python 寫的使用 ptrace 的調試器
vdb/vtrace: vtrace 是用 Python 實現的跨平台調試 API, vdb 是使用它的調試器
Androguard: 安卓應用程序的逆向分析工具
Capstone: 一個輕量級的多平台多架構支持的反匯編框架。支持包括ARM,ARM64,MIPS和x86/x64平台
PyBFD: GNU 二進制文件描述(BFD)庫的 Python 介面
Fuzzing
Sulley: 一個模糊器開發和模糊測試的框架,由多個可擴展的構件組成的
Peach Fuzzing Platform: 可擴展的模糊測試框架(v2版本 是用 Python 語言編寫的)
antiparser: 模糊測試和故障注入的 API
TAOF: (The Art of Fuzzing, 模糊的藝術)包含 ProxyFuzz, 一個中間人網路模糊測試工具
untidy: 針對 XML 模糊測試工具
Powerfuzzer: 高度自動化和可完全定製的 Web 模糊測試工具
SMUDGE: 純 Python 實現的網路協議模糊測試
Mistress: 基於預設模式,偵測實時文件格式和偵測畸形數據中的協議
Fuzzbox: 媒體多編碼器的模糊測試
Forensic Fuzzing Tools: 通過生成模糊測試用的文件,文件系統和包含模糊測試文件的文件系統,來測試取證工具的魯棒性
Windows IPC Fuzzing Tools: 使用 Windows 進程間通信機制進行模糊測試的工具
WSBang: 基於 Web 服務自動化測試 SOAP 安全性
Construct: 用於解析和構建數據格式(二進制或文本)的庫
fuzzer.py(feliam): 由 Felipe Andres Manzano 編寫的簡單模糊測試工具
Fusil: 用於編寫模糊測試程序的 Python 庫
Web
Requests: 優雅,簡單,人性化的 HTTP 庫
HTTPie: 人性化的類似 cURL 命令行的 HTTP 客戶端
ProxMon: 處理代理日誌和報告發現的問題
WSMap: 尋找 Web 伺服器和發現文件
Twill: 從命令行界面瀏覽網頁。支持自動化網路測試
Ghost.py: Python 寫的 WebKit Web 客戶端
Windmill: Web 測試工具幫助你輕松實現自動化調試 Web 應用
FunkLoad: Web 功能和負載測試
spynner: Python 寫的 Web瀏覽模塊支持 Javascript/AJAX
python-spidermonkey: 是 Mozilla js 引擎在 Python 上的移植,允許調用 Javascript 腳本和函數
mitmproxy: 支持 SSL 的 HTTP 代理。可以在控制台介面實時檢查和編輯網路流量
pathod/pathoc: 變態的 HTTP/S 守護進程,用於測試和折磨 HTTP 客戶端
❷ python怎麼做介面測試工具
之前使用過urllib和urllib2做介面測試,在做的途中,感覺使用urllib2直接進行的get,post 請求並沒有那麼好用。作為測試人員,所需要的測試工具應當以方便為第一要務,測試的耗時只要是真正的無人值守,耗時不是太久的都可以接受。所以,本人又嘗試了一個新的包:requests。
Requests 是用Python語言編寫,基於 urllib,採用 Apache2 Licensed 開源協議的 HTTP 庫。它比 urllib 更加方便,可以節約我們大量的工作,完全滿足 HTTP 測試需求。Requests 的哲學是以 PEP 20 的習語為中心開發的,所以它比 urllib 更加 Pythoner。更重要的一點是它支持 Python3 !推薦一篇文章,上面有該包的詳細說明傳送門,以下只會寫到我用到的部分,所以更多的了解需要自己去搜資料
好了,我們開始吧!!
介面測試中重要的部分:
1.get和post方法
2.用到的參數
3.請求頭
4.cookie
5.日誌輸出
6.如何調試你的程序--藉助fiddler
按照以上的順序,我將一一說明我的搞法,因為編碼能力有限,所以可能看著很low
一、get和post
requests包很好的實現了post和get方法,示例:
1 import requests2 response_get = requests.get(url, data, headers, cookies)3 response_post = requests.post(url, data, headers, cookies)
其他的訪問方式如put,head等等,用法幾乎都是如此,因為沒用到,所以省略
現在一般的介面返回值有頁面和json倆種,按照需求,可以分別使用response.text或者response.content獲取,text獲取的是unicode類型的返回值,而content返回值是str類型,所以我一般使用content來獲取返回值,因為這樣獲取的返回值可以直接使用正則或者in的方式來驗證返回值結果是否正確。
我自己為了實現介面的自動訪問,所以又在requests上面加了一層封裝,就像下面這樣:
三、cookie
一款產品的介面測試中必定會使用登錄狀態,需要使用cookie實現,之前寫過使用cookiejar獲取cookie,requests中獲取cookie的方法更為簡單,不過首先你得知道是哪個介面set了cookie,不過一般是登錄啦。登錄介面訪問之後set了cookie,那好,就去調用登錄介面,然後拿到搞回來的cookie:
# 只需要這樣!!login = requests.post(login_url, data=login_data, headers=login_header)
cookie = login.cookies
這個cookie就是登錄狀態了,拿著隨便用,需要登錄的就直接cookies=cookies
四、日誌輸出
這里注意看第二步中介面數據,有介面描述,也有介面是啥,第一步中又把content做成返回值了,具體拼接方式自己想吧,東西全有了,想寫啥寫啥,還可以加上獲取本地時間的api獲取介面運行時間,log文件該長啥樣是門學問,這里就不獻丑了。
五、借用fiddler調試你的腳本
requests允許使用代理訪問,這有啥用,真有!fiddler是一款截包改包的工具,而且通過擴展可以進行請求間的比對,這樣讓你的程序訪問的請求和真正正確的請求作對比,為啥我的程序訪問出錯?是不是缺了請求頭?參數是不是丟了?cookie是不是少了?很容易看出來。寫法如下:
proxies = { "http": "http://127.0.0.1:8888", "https": "http://127.0.0.1:8888"}
requests.post(url, proxies=proxies)
這樣就可以走代理了,除fiddler以外還有charles和burp suite可以使用,具體看個人喜好吧。
❸ 用python的SimpleHTTPServer做了一個簡單測試網頁的伺服器,但是一直沒法解決shtml的支持問題,求教!!!
自己寫的簡易伺服器,那就不便使用現存的一些SSI模塊了
建議1、可以自寫ssi模塊,對所有的.shtml文件訪問做單獨解析,
先實現其中解析<!--#include-->一個標簽。畢竟SSI只相當於一個較簡的預處理器。
建議2,重定向。把所有的.shtml訪問重定向到其他成熟的SSI伺服器上。
❹ Python測試有什麼用途
Python測試有什麼用途
Python測試用途如下:
1、使用Python +Selenium實現web端的UI自動化
Selenium是一個用於Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序看是否能夠很好得工作在不同瀏覽器和操作系統之上。測試系統功能——創建回歸測試檢驗軟體功能和用戶需求。
Python與Selenium結合能夠很好的實現web端的UI級別的自動化。Selenium幾乎能解決目前遇到的web頁面中所有的定位難題,當然有些特殊的可以藉助JavaScripts也可以實現。
2、使用Python + Requests實現介面測試
進入python requests官網看到的的第一句話是:Requests 唯一的一個非轉基因的Python HTTP 庫,人類可以安全享用。
通過requests庫提供的各種API可以非常方便的模擬HTTP請求,實現介面自動化測試。
3、使用Python + Appium實現app自動化測試
Appium是一個自動化測試開源工具,支持 iOS 平台和Android 平台上的原生應用,web 應用和混合應用。
所謂的 移動原生應用 是指那些用iOS 或者 Android SDK 寫的應用。所謂的 移動 web 應用 是指使用移動瀏覽器訪問的應用(Appium 支持 iOS 上的Safari 和 Android 上的 Chrome)。所謂的「混合應用」是指原生代碼封裝網頁視圖——原生代碼和web 內容交互。比如,像 Phonegap,可以幫助開發者使用網頁技術開發應用,然後用原生代碼封裝,這些就是混合應用。
重要的是,Appium 是一個跨平台的工具:它允許測試人員在不同的平台(iOS,Android)使用同一套API來寫自動化測試腳本,這樣大大增加了iOS 和 Android 測試套件間代碼的復用性。
Appium也是多語言支持,當然也是支持python的,運用python + Appium可以實現跨平台的app UI自動化測試。
更多技術請關注Python視頻教程。
❺ 介面自動化測試工具有哪些
介面自動化工具有以下:
1、QTP。是quicktest Professional的簡稱,是一種自動測試工具。使用QTP的目的是想用它來執行重復的手動測試,主要是用於回歸測試和測試同一軟體的新版本。因此你在測試前要考慮好如何對應用程序進行測試,例如要測試那些功能、操作步驟、輸入數據和期望的輸出數據等。
2、WinRunner。是一種企業級的功能測試工具,用於檢測應用程序是否能夠達到預期的功能及正常運行。通過自動錄制、檢測和回放用戶的應用操作,WinRunner能夠有效地幫助測試人員對復雜的企業級應用的不同發布版進行測試,提高測試人員的工作效率和質量,確保跨平台的、復雜的企業級應用無故障發布及長期穩定運行。
3、AdventNetQEngine。是一個應用廣泛且獨立於平台的自動化軟體測試工具,可用於Web功能測試、web性能測試、Java應用功能測試、Java API測試、SOAP測試、回歸測試和Java應用性能測試。
❻ Python做軟體自動化測試的入門提問
同在軟體測試崗位。由於同樣初學python,所以沒有太多的實踐經驗。
使用python的單元測試框架,可以建立測試類,構造測試集。
測試類中包含了common的測試方法定義,包括測試開始前建立測試環境的setUp方法和測試完成後清理還原環境的tearDown方法,最好按照約定規則(以test開頭)來命名所有的測試方法。
測試集允許你根據測試策略組合不同的測試用例並實施。
下面兩篇文章推薦看看:
http://www.ibm.com/developerworks/cn/linux/l-pyunit/
http://www.cnblogs.com/coderzh/archive/2010/08/23/custom-python-unittestoutput-as-gtest.html
有一個問題我還沒找到答案,就是如何讓單元測試框架的log輸出到文件(默認輸出到控制台)。
❼ python http介面測試腳本怎麼寫
根據Testcase的具體業務邏輯用事先准備好的測試數據去調用封裝好的API介面,驗證實際返回結果是否與預期返回結果一致.
測試數據可以以各種形式存放,如Excel數據表:
TestCaseName uname method Expected Result
TestCase1 aaaa GET ....
TestCase2 aaaa POST ....
TestCase3 bbbb GET ....
❽ Python什麼爬蟲庫好用
請求庫:
1. requests 這個庫是爬蟲最常用的一個庫
2. Selenium Selenium 是一個自動化測試工具,利用它我們可以驅動瀏覽器執行特定的動作,如點擊、下拉等操作 對於一些用JS做誼染的頁面來說,這種抓取方式是非常有效的。
3.ChomeDrive 安裝了這個庫,才能驅動Chrome瀏覽器完成相應的操作
4.GeckoDriver 使用W3C WebDriver兼容客戶端與基於Gecko的瀏覽器進行交互的代理。
5.PhantomJS PhantomJS 是一個無界面 、可腳本編程的 WebKit 瀏覽器引擎,它原生支持多種Web標准:Dom操作,css選擇器,json,Canvas以及SVG。
6.aiohttp 之前接收requests庫是一個阻塞式HTTP請求庫,當我們發送一個請求後。程序會一直等待伺服器響應,直到伺服器響應後,程序才會最下一步處理。其實,這個過程比較耗時間。如果程序可以在等待的過程中做一些其他的事情,如進行請求的調度,響應的處理等,那麼爬蟲的效率就會比之前的那種方式有很大的提升。 而aiohttp就是這樣一個提供非同步web服務的庫。使用說這個庫用起來還是相當方便的。
解析庫:
1.lxml lxml是python的一個解析庫,這個庫支持HTML和xml的解析,支持XPath的解析方式,而且效率也是非常高的,深受廣大程序員的熱愛
2.Beautiful Soup Beautiful Soup也是python里一個HTML或XMl的解析庫,它可以很方便的懂網頁中提取數據,擁有強大的API和多種解析方式。
3.pyquery 同樣是一個強大的網頁解析工具,它提供了和 jQuery 類似的語法來解析HTML 文梢,
資料庫:
1.mysql 資料庫
2.MongoDB Mo goDB 是由 ++語言編寫的非關系型資料庫, 是一個基於分布式文件存儲的開源資料庫系統內容存儲形式類似 JSON 對象,它的欄位值可以包含其他文檔、數組及文檔數組,非常靈活
3.Redis 是一個基於 存的高效的非關系型資料庫,
存儲庫:
1.PyMySOL
2.PyMongo
3.redis-py
4.RedisDump
web庫:
1.Flask 是一個輕量級的Web服務程序,它簡單,易用,靈活
2.Tornado 是一個支持非同步的Web框架,通過使用非阻塞I/O流,可以支持成千上萬的開放式連接。