軟體測試之一 曾經遇到的bug

2022-09-12 05:30:09 字數 871 閱讀 5633

一、簡述

在一次編寫簡單的python爬蟲的過程中,發現了某個bug,深入學習後了解了這個bug。

二、bug出現的情景

在某次編寫python爬蟲的過程中,因為是初學,對爬蟲並不能很好的使用,在邊學習邊編寫**的過程中,對某個**的內容的爬取出現了問題。爬蟲的編寫時首先對單頁內容進行爬取測試,測試時結果正確無誤,接下來進行廣泛內容的爬取,因為資料量較大,所以需要較長時間。

在內容爬取到大概半個小時的時候,程式程序突然報錯,具體錯誤應為http響應錯誤,程式執行被強行終止。第一次草草的排查錯誤後並未發現問題所在,所以在此執行嘗試。二第二次執行時,經歷比第一次還要短的執行時間後程式在此報錯。

三、排除bug

因為是初次編寫爬蟲,在對很多東西並不熟悉的情況下便進行了**的編寫。因此遇到無法解決的問題首先想到的是使用搜尋引擎搜尋學習。從搜尋結果中找到了問題所在。原因非常簡單,大多數的大型**都有為了保護**資源不受傷害而設立的保護措施,其中有一條便是防止大量的機械人訪問導致**可用資源緊張。因此大多數的**設立了防護措施,對於短時間內同意ip位址對**的重複性訪問會給予限制,以保護**資源。因此只要避免大量的重複訪問就可以了,對於本機電腦上的爬蟲程式執行,可以限制速度,比如可以限制為每10s訪問一次,可以使用time.sleep()函式來限制。設定時間限制後執行程式,經過較長時間的執行後程式正常結束,未發生問題。

但是,限制訪問速度同時帶來了速度的減慢,所以可以使用多執行緒來解決,將原本的類設定為thread的子類,然後建立執行緒執行程式,同時執行緒不能過多,過多會導致訪問速度的加快。

四、總結

對於出現bug的情況,尤其是對於新手而言,不要過於慌張,而是應該好好學習打好基礎,無法解決的問題需要善於使用搜尋引擎。同時看源**是一種非常好的習慣,通過閱讀源**可以了解原理,快速排除bug。

軟體測試基礎篇之一

軟體測試,就是在規定的條件下,設計各種使用者使用場景對程式進行操作,以發現錯誤,並對軟體質量進行評估。從這篇帖子開始,先給大家講解一些測試工程師必須要掌握的軟體測試理論,也是從事測試工作最基礎的內容。1 軟體測試的目的 服從於軟體專案的目標,通過使用有效的方法和工具,提高開發效率和開發質量 並在規定...

那些年遇到的bug 之一 多次繫結事件

由於各種原因老大們決定使用sea.js模組化開發,所以需要把各功能重新梳理。保險起見一致決定先從首頁著手處理,完成後再跟進其它的頁面開發。1.定時更新資料,並且支援點選重新整理資料 2.滑鼠移到主播小圖上,顯示主播大圖,並且顯示當前主播的詳細資訊。3.大圖跟隨滑鼠移動。滑鼠離開,大圖消失。費了一番功...

軟體測試一般bug分類

測試用例首先來自於對於需求的分析,是否能為測試挑選最合適或最關鍵的需求,關係到專案的成敗。思考方法1 正反面思考法 為每個測試需求至少編制兩個測試用例 正面測試用例 負面測試用例 正面測試用例 用於證明該需求已經滿足 負面測試用例 反映某個無法接受 反常或意外的條件或資料,用於論證只有在所需條件下才...