發(fā)布時(shí)間:2021-12-29 16:57:07來源:轉(zhuǎn)載
自上世紀(jì)末Kent Beck提出TDD(Test-Driven Development)開發(fā)理念以來,開發(fā)和測(cè)試的邊界變的越來越模糊,從原本上下游的依賴關(guān)系,逐步演變成你中有我、我中有你的互賴關(guān)系,甚至很多公司設(shè)立了新的QE(Quality Engineer)職位。和傳統(tǒng)的QA(Quality Assurance)不同,QE的主要職責(zé)是通過工程化的手段增加項(xiàng)目質(zhì)量,這些手段包括但不僅限于編寫單元測(cè)試、集成測(cè)試,搭建自動(dòng)化測(cè)試流程,設(shè)計(jì)性能測(cè)試等。可以說,QE身上兼具了QA的質(zhì)量意識(shí)和開發(fā)的工程能力。從這篇開始,我會(huì)從開發(fā)的角度分三期聊聊QE這個(gè)亦測(cè)試亦開發(fā)的角色所需的基本技能。
1 什么是性能測(cè)試?
先來看一下維基百科里對(duì)性能測(cè)試的定義,
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
注意上述定義中有三個(gè)關(guān)鍵詞:
responsiveness,即響應(yīng)時(shí)間,請(qǐng)求發(fā)出去之后,服務(wù)端需要多久才能返回結(jié)果,顯然響應(yīng)時(shí)間越短,性能越好。
stability,即穩(wěn)定性,同樣的請(qǐng)求,不同時(shí)刻發(fā)出去,響應(yīng)時(shí)間差別越小,穩(wěn)定性越好,性能也越好。
workload,即負(fù)載,同一時(shí)刻服務(wù)端收到的請(qǐng)求數(shù)量,其中單位時(shí)間內(nèi)成功處理的請(qǐng)求數(shù)量即吞吐量,吞吐量越大,性能越好。
響應(yīng)時(shí)間和吞吐量是衡量應(yīng)用性能好壞較重要的兩個(gè)指標(biāo)。對(duì)于絕大多數(shù)應(yīng)用,剛開始的時(shí)候,響應(yīng)時(shí)間較短;隨著負(fù)載的增大,吞吐量上升,響應(yīng)時(shí)間也逐漸變長(zhǎng);當(dāng)負(fù)載超過某一個(gè)值之后,響應(yīng)時(shí)間會(huì)突然呈指數(shù)級(jí)放大,同時(shí)吞吐量也應(yīng)聲下跌,應(yīng)用性能急劇下降。
2 性能測(cè)試的目的
了解了應(yīng)用性能變化的普遍規(guī)律,性能測(cè)試的目的也就有了答案:針對(duì)某一應(yīng)用,找出響應(yīng)時(shí)間和吞吐量的量化關(guān)系,找到應(yīng)用性能變化的臨界點(diǎn)。你可能會(huì)問,知道了這些有什么用呢?在我看來,至少有3個(gè)層面的好處:
第一,有的放矢,提高資源利用率。性能測(cè)試的過程就是量化性能的過程,有了各種性能數(shù)據(jù),你才能對(duì)應(yīng)用性能進(jìn)行定量分析,找到并解決潛在的性能問題,從而提高資源利用率。
第二,科學(xué)的進(jìn)行容量規(guī)劃。找到了應(yīng)用性能變化的臨界點(diǎn),也就很容易找到單節(jié)點(diǎn)的性能極限,這是進(jìn)行容量規(guī)劃的重要決策依據(jù)。比如某一應(yīng)用在單節(jié)點(diǎn)下的極限吞吐量是2000 QPS,那么面對(duì)10000 QPS的流量,至少需要部署5個(gè)節(jié)點(diǎn)。
第三,改善QoS(Quality of Service)。很多時(shí)候,資源是有限的,面對(duì)超出服務(wù)能力的流量,為了增加QoS,必須做出取舍(比如限流降級(jí),開關(guān)預(yù)案等),應(yīng)用性能數(shù)據(jù)是設(shè)計(jì)QoS方案的重要依據(jù)。
更多培訓(xùn)課程: 哈爾濱軟件測(cè)試 更多學(xué)校信息: 哈爾濱香坊區(qū)常青達(dá)內(nèi)IT教育培訓(xùn) 咨詢電話: