<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          mitmproxy抓包 | Python實(shí)時(shí)生成接口自動(dòng)化用例(三)

          共 2804字,需瀏覽 6分鐘

           ·

          2021-09-26 12:50

          抓包工具mitmproxy環(huán)境配置使用(一)

          抓包工具mitmproxy | mitmweb基本用法(二)

                 前面已經(jīng)給大家分享了mitmproxy的環(huán)境配置和基本使用,文章瀏覽量很高,相信對(duì)抓包工具感興趣的朋友,已經(jīng)熟練運(yùn)用起來(lái)了。

                 這期給大家分享下mitmproxy結(jié)合python腳本對(duì)抓包信息的(請(qǐng)求頭、請(qǐng)求頭、接口url、請(qǐng)求方式、響應(yīng)頭、響應(yīng)體等)進(jìn)行監(jiān)控,實(shí)時(shí)抓取數(shù)據(jù)并存儲(chǔ)到文件里,實(shí)現(xiàn)了接口自動(dòng)化測(cè)試中的接口用例設(shè)計(jì)自動(dòng)化,無(wú)需花費(fèi)大量時(shí)間手動(dòng)編寫接口用例,大大提高了工作效率,相信很多人看到這里已經(jīng)欣喜難耐了,一定要關(guān)注下方公眾號(hào),有更多精彩技術(shù)文章。

          一、mitmproxy介紹

          mitmproxy是Python編寫的一款功能完善的代理工具,mitmproxy是一款支持?jǐn)r截HTTP和HTTPS請(qǐng)求和響應(yīng)并即時(shí)修改它們的交互式中間人代理工具。最強(qiáng)大之處在于對(duì)python腳步的支持,它提供了Python API給開(kāi)發(fā)者編寫插件用來(lái)自定義對(duì)流量進(jìn)行處理和修改,可以在python代碼中直接處理數(shù)據(jù)包。


          二、mitmproxy的功能:

          1、攔截HTTP和HTTPS請(qǐng)求和響應(yīng)

          2、保存HTTP會(huì)話并進(jìn)行分析

          3、模擬客戶端發(fā)起請(qǐng)求,模擬服務(wù)器端返回響應(yīng)

          4、利用反向代理將流量轉(zhuǎn)發(fā)給指定的服務(wù)器

          5、支持Mac和linux上的透明代理

          6、利用Python對(duì)HTTP請(qǐng)求與響應(yīng)進(jìn)行實(shí)時(shí)處理

          三、環(huán)境

          1、部署python環(huán)境

          2、安裝mitmproxy,pip install mitmproxy

          mitmproxy提供了HTTP、WebSocket、TCP事件。本次只考慮HTTP事件,HTTP事件提供一些api,詳情參考https://docs.mitmproxy.org/stable/addons-events/


          四、啟動(dòng)web抓包,抓包信息全量存入文件

          1、cmd下執(zhí)行:

          mitmweb -p 8889 -w C:\Users\la\Desktop\test.txt

          啟動(dòng)抓包服務(wù),實(shí)時(shí)抓取全量數(shù)據(jù)存入文件

          2、自動(dòng)打開(kāi)web抓包頁(yè)面

          3、邊抓包,邊將抓包的全量信息實(shí)時(shí)存入文件


          五、python腳本

                 編寫python腳本,獲取接口(請(qǐng)求頭、請(qǐng)求頭、接口url、請(qǐng)求方式、響應(yīng)頭、響應(yīng)體等)需要的信息,腳本變更,保存后實(shí)時(shí)同步,無(wú)需重新啟動(dòng)抓包服務(wù)

          import mitmproxy.httpimport csv,json

          class CaptureInfoWriteFile: def __init__(self): pass
          def request(self, flow: mitmproxy.http.HTTPFlow): flow_request = flow.request # 獲取請(qǐng)求對(duì)象 self.url = flow_request.url # 接口url self.host = flow_request.host # 域名 self.path = flow_request.path # 接口地址 self.method = flow_request.method # 請(qǐng)求方式 self.content = flow_request.content self.timestamp_start = flow_request.timestamp_start # 請(qǐng)求開(kāi)始時(shí)間戳 self.timestamp_end = flow_request.timestamp_end # 請(qǐng)求結(jié)束時(shí)間戳 self.header = flow_request.headers # 請(qǐng)求頭 self.text = flow_request.text # 請(qǐng)求體
          def response(self, flow: mitmproxy.http.HTTPFlow): flow_response = flow.response # 獲取響應(yīng)對(duì)象 response_status_code = flow_response.status_code # 響應(yīng)狀態(tài)碼 response_text = flow_response.text # 響應(yīng)體 response_content = flow_response.content response_timestamp_start = flow_response.timestamp_start # 響應(yīng)開(kāi)始時(shí)間 response_timestamp_end = flow_response.timestamp_end # 響應(yīng)結(jié)束時(shí)間 response_header = flow_response.headers # 響應(yīng)頭
                  with open(r'C:\Users\xia\Desktop\test15.csv''a+',newline='') as f: f_csv = csv.writer(f) f_csv.writerows([[self.url, self.host, self.path, self.method, self.header, self.text, response_status_code, response_header, response_text]])

          addons = [CaptureInfoWriteFile()]

          六、啟動(dòng)web抓包,調(diào)用python腳本

          1、cmd下執(zhí)行:

          mitmweb -p 8889 -s C:\Users\xia\Desktop\test_maplocal.py

          啟動(dòng)抓包服務(wù),實(shí)時(shí)監(jiān)控獲取抓包信息

          2、自動(dòng)打開(kāi)web抓包頁(yè)面

          3、邊抓包,邊調(diào)用python腳本,將獲取的抓包信息實(shí)時(shí)存儲(chǔ)到文件里,方便接口自動(dòng)測(cè)試使用


          瀏覽 78
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人免费视频 国产免费 | 亚洲av先锋影音 亚洲AV一二三区 亚洲sese在线 | 九九热在线精品视频 | 人人草在线观看视频 | 日韩中文在线观看 |