????作為一名測(cè)試工程師,在職業(yè)技能的發(fā)展道路上很難繞開性能測(cè)試,但除了簡(jiǎn)單的使用功能對(duì)接口進(jìn)行并發(fā)測(cè)試外,更深入的性能測(cè)試往往讓人難以下手。
????性能測(cè)試對(duì)專業(yè)的技術(shù)知識(shí)有較高的要求,在測(cè)試工程師的日常工作中,屬于較難上手的類型。這里整理了作為一個(gè)測(cè)試想要做性能測(cè)試需要了解的基礎(chǔ)知識(shí)。
一、計(jì)算機(jī)基礎(chǔ)類知識(shí)
? ? 計(jì)算機(jī)從最基本的原件晶體管開始,只能進(jìn)行簡(jiǎn)單的“或與非”運(yùn)算,到能進(jìn)行大量運(yùn)算的CPU,再到輸入終端、存儲(chǔ)終端,內(nèi)存。到此為止都還算是機(jī)器的層面,而操作系統(tǒng)則是連接機(jī)器和人類的橋梁。
????計(jì)算機(jī)的基礎(chǔ)知識(shí),在計(jì)算機(jī)相關(guān)的大學(xué)專業(yè)課程,已有介紹學(xué)習(xí)。而對(duì)于大學(xué)專業(yè)是非計(jì)算機(jī)相關(guān)專業(yè)的測(cè)試工程師則需要補(bǔ)充這方面的知識(shí)。這篇文章(https://blog.csdn.net/sd01397055/article/details/93959977)有對(duì)這方面的知識(shí)進(jìn)行簡(jiǎn)單介紹。
? ? 在性能優(yōu)化中,對(duì)服務(wù)器操作系統(tǒng)的優(yōu)化,也是優(yōu)化的一個(gè)方方向。
二、網(wǎng)絡(luò)基礎(chǔ)
????作為接口的性能測(cè)試,對(duì)網(wǎng)絡(luò)基礎(chǔ)知識(shí)的掌握是必不可少的一部分,最重要的是對(duì)網(wǎng)絡(luò)協(xié)議的掌握。這篇文章(https://www.runoob.com/w3cnote/summary-of-network.html)有對(duì)常見網(wǎng)絡(luò)協(xié)議進(jìn)行詳細(xì)的介紹。
三、中間件
????中間件是連接軟件與系統(tǒng)之間的服務(wù),銜接網(wǎng)絡(luò)上應(yīng)用系統(tǒng)的各個(gè)部分或不同的應(yīng)用,能夠達(dá)到資源共享、功能共享的目的。在性能測(cè)試中,根據(jù)不同的場(chǎng)景,選擇不同的中間件、調(diào)整配置也能達(dá)到提高性能的效果。
常用基礎(chǔ)中間件:
- 路由與web服務(wù)器:處理和轉(zhuǎn)發(fā)其他服務(wù)器通信數(shù)據(jù)的服務(wù)器。 如被業(yè)界廣泛使用的阿里基于 Nginx 研發(fā)的 Tengine、阿里內(nèi)部的集中式路由服務(wù) VipServer
- RPC框架:微服務(wù)時(shí)代的遠(yuǎn)程服務(wù)調(diào)用框架。如grpc, Thrift, 阿里的 HSF, Dubbo, SOFA-RPC
- 消息中間件:支持在分布式系統(tǒng)之間發(fā)送和接收消息的軟件。 如 Apache kafka, Apache RabbitMQ, NSQ, 阿里孵化開源的 Apache RocketMQ
- 緩存服務(wù): 分布式的高速數(shù)據(jù)存儲(chǔ)層,一般是內(nèi)存存儲(chǔ)。如 阿里 Tair,業(yè)界的 Redis, Memcached, Ehcache
- 配置中心:用來統(tǒng)一管理各個(gè)項(xiàng)目中所有配置的系統(tǒng)。如 阿里 Nacos、攜程 Apollo、百度 Disconf
- 分布式事務(wù):事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上。 如 阿里 seata、騰訊 DTF
- 任務(wù)調(diào)度:分布式環(huán)境下提供定時(shí)、任務(wù)編排、分布式跑批等功能的系統(tǒng)。如 阿里 SchedulerX、業(yè)界 xxl-job、當(dāng)當(dāng) elastic-job、有贊 TSP
- 數(shù)據(jù)庫(kù)層 用于支持彈性擴(kuò)容和分庫(kù)分表的 TDDL,數(shù)據(jù)庫(kù)連接池 Driud, Binlog 同步的 Canal 等。
原文地址:https://www.zhihu.com/question/19730582/answer/1663627873
四、數(shù)據(jù)庫(kù)
? ? 數(shù)據(jù)庫(kù)在測(cè)試工程師日常的工作中也時(shí)常用到,而測(cè)試工程大部分的工作也只涉及到增刪改查方面。而性能測(cè)試則要涉及到數(shù)據(jù)存儲(chǔ)和查詢的相關(guān)算法的優(yōu)化。
數(shù)據(jù)庫(kù)基本概念:https://www.cnblogs.com/cainiao-chuanqi/p/11191647.html
數(shù)據(jù)庫(kù)的性能優(yōu)化:https://www.cnblogs.com/easypass/archive/2010/12/08/1900127.html
五、接口測(cè)試技能
? ? 在日常的接口功能測(cè)試工作中,HTTP請(qǐng)求、抓包工具(fidder、charles),接口請(qǐng)求工具(postman),這些也是在接口性能測(cè)試當(dāng)中會(huì)用到的技能。
????除了這些還有性能測(cè)試工具(Jmeter、loadrunner)。在已有的工具都具有局限性的情況下,也需要掌握一門編程語言,以便進(jìn)行性能腳本編寫。