發布時間:2021-12-29 16:57:07來源:轉載
自上世紀末Kent Beck提出TDD(Test-Driven Development)開發理念以來,開發和測試的邊界變的越來越模糊,從原本上下游的依賴關系,逐步演變成你中有我、我中有你的互賴關系,甚至很多公司設立了新的QE(Quality Engineer)職位。和傳統的QA(Quality Assurance)不同,QE的主要職責是通過工程化的手段增加項目質量,這些手段包括但不僅限于編寫單元測試、集成測試,搭建自動化測試流程,設計性能測試等。可以說,QE身上兼具了QA的質量意識和開發的工程能力。從這篇開始,我會從開發的角度分三期聊聊QE這個亦測試亦開發的角色所需的基本技能。

1 什么是性能測試?
先來看一下維基百科里對性能測試的定義,
In software engineering, performance testing is in general, a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. - Wikipedia
注意上述定義中有三個關鍵詞:
responsiveness,即響應時間,請求發出去之后,服務端需要多久才能返回結果,顯然響應時間越短,性能越好。
stability,即穩定性,同樣的請求,不同時刻發出去,響應時間差別越小,穩定性越好,性能也越好。
workload,即負載,同一時刻服務端收到的請求數量,其中單位時間內成功處理的請求數量即吞吐量,吞吐量越大,性能越好。
響應時間和吞吐量是衡量應用性能好壞較重要的兩個指標。對于絕大多數應用,剛開始的時候,響應時間較短;隨著負載的增大,吞吐量上升,響應時間也逐漸變長;當負載超過某一個值之后,響應時間會突然呈指數級放大,同時吞吐量也應聲下跌,應用性能急劇下降。
2 性能測試的目的
了解了應用性能變化的普遍規律,性能測試的目的也就有了答案:針對某一應用,找出響應時間和吞吐量的量化關系,找到應用性能變化的臨界點。你可能會問,知道了這些有什么用呢?在我看來,至少有3個層面的好處:
第一,有的放矢,提高資源利用率。性能測試的過程就是量化性能的過程,有了各種性能數據,你才能對應用性能進行定量分析,找到并解決潛在的性能問題,從而提高資源利用率。
第二,科學的進行容量規劃。找到了應用性能變化的臨界點,也就很容易找到單節點的性能極限,這是進行容量規劃的重要決策依據。比如某一應用在單節點下的極限吞吐量是2000 QPS,那么面對10000 QPS的流量,至少需要部署5個節點。
第三,改善QoS(Quality of Service)。很多時候,資源是有限的,面對超出服務能力的流量,為了增加QoS,必須做出取舍(比如限流降級,開關預案等),應用性能數據是設計QoS方案的重要依據。
更多培訓課程: 哈爾濱軟件測試 更多學校信息: 哈爾濱香坊區常青達內IT教育培訓 咨詢電話: