版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第十章
數(shù)據(jù)庫測(cè)試授課教師:
鄭煒第十章數(shù)據(jù)庫測(cè)試10.1數(shù)據(jù)庫應(yīng)用軟件測(cè)試10.1.1數(shù)據(jù)庫設(shè)計(jì)驗(yàn)證10.1.2功能測(cè)試10.1.3并發(fā)測(cè)試10.1.4安全性測(cè)試10.2數(shù)據(jù)庫管理系統(tǒng)基礎(chǔ)測(cè)試10.2.1數(shù)據(jù)庫管理系統(tǒng)簡(jiǎn)介10.2.2DBMS的SQL功能測(cè)試10.2.3DBMS的事務(wù)特性測(cè)試第十章數(shù)據(jù)庫測(cè)試10.3數(shù)據(jù)庫管理系統(tǒng)性能測(cè)試10.3.1DBMS性能測(cè)試的目的與性能指標(biāo)10.3.2DBMS的基準(zhǔn)性能測(cè)試10.3.3DBMS的性能測(cè)試工具10.4數(shù)據(jù)庫管理系統(tǒng)高可用性測(cè)試10.1.1數(shù)據(jù)庫設(shè)計(jì)驗(yàn)證數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)10.1.1數(shù)據(jù)庫設(shè)計(jì)驗(yàn)證Student(Sno,Sdept,Mname,Cname,Grade)1.數(shù)據(jù)冗余太大:浪費(fèi)大量的存儲(chǔ)空間例:每一個(gè)系主任的姓名重復(fù)出現(xiàn)2.修改復(fù)雜數(shù)據(jù)冗余,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。例:某系更換系主任,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每個(gè)元組3.插入異常該插的數(shù)據(jù)無法插入到表中。例:如果一個(gè)系剛成立,尚無學(xué)生,我們就無法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫。⒋刪除異常不該刪除的數(shù)據(jù)被刪掉了例:如果某個(gè)系的學(xué)生全部畢業(yè)了,我們?cè)趧h除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了10.1.1數(shù)據(jù)庫設(shè)計(jì)驗(yàn)證●
數(shù)據(jù)庫設(shè)計(jì)步驟、成果與驗(yàn)證觀點(diǎn)10.1.2功能測(cè)試功能測(cè)試通過測(cè)試驗(yàn)證軟件的每個(gè)功能是否都按照用戶的需求進(jìn)行了實(shí)現(xiàn)并且能正常使用。測(cè)試重點(diǎn)—用戶需求—WebApp,移動(dòng)App測(cè)試方法
白盒測(cè)試+黑盒測(cè)試10.1.3性能測(cè)試性能測(cè)試:
驗(yàn)證系統(tǒng)的主要功能或組件的實(shí)際性能是否與用戶的性能需求一致。數(shù)據(jù)庫應(yīng)用軟件的性能測(cè)試:
關(guān)注該軟件整體或者其中某些組件在規(guī)定時(shí)間內(nèi),響應(yīng)用戶或系統(tǒng)輸入的能力,通常用請(qǐng)求響應(yīng)時(shí)間,吞吐量等度量性能優(yōu)劣。常見工具:LoadRunner、Jmeter、Locust10.1.3性能測(cè)試●
負(fù)載測(cè)試(LoadTest)
通過逐漸增加負(fù)載評(píng)估系統(tǒng)或者組件性能的測(cè)試方法,目的是觀察系統(tǒng)在各種不同的負(fù)載情況下是否都能夠正常工作。而性能測(cè)試通常是直接指定一個(gè)特定的負(fù)載進(jìn)行測(cè)試。●
壓力測(cè)試(StressTest)
評(píng)估系統(tǒng)或者組件處于或超過預(yù)期負(fù)載時(shí)的運(yùn)行情況。重點(diǎn)關(guān)注系統(tǒng)在峰值負(fù)載或超出最大負(fù)載情況下的處理能力,在壓力級(jí)別逐漸增加時(shí),系統(tǒng)性能應(yīng)該是按照預(yù)期緩慢下降,但是不應(yīng)發(fā)生系統(tǒng)崩潰的現(xiàn)象。10.1.3性能測(cè)試基于Jmeter的測(cè)試示例:10.1.3性能測(cè)試基于Jmeter的測(cè)試示例:10.1.4安全性測(cè)試●
SQL注入select*frommemberwhereUID='"&request("ID")&"'andPasswd='"&request("Pwd")"'select*frommemberwhereUID='Admin‘--'AndPasswd=''假設(shè)猜測(cè)系統(tǒng)有Admin的用戶,構(gòu)造以上SQL語句,由于SQL語言中“--”是注釋符號(hào),其后的字符都會(huì)被當(dāng)作注解,因此該攻擊者無需輸入密碼可直接進(jìn)入系統(tǒng)10.1.4安全性測(cè)試●
針對(duì)SQL注入的測(cè)試●
構(gòu)造專門的注入字符或者語句單獨(dú)測(cè)試:-例如給可輸入的用戶名構(gòu)造zhang'●
借助漏洞掃描工具測(cè)試:-掃描之后,進(jìn)行對(duì)應(yīng)的升級(jí)數(shù)據(jù)庫等動(dòng)作第十章數(shù)據(jù)庫測(cè)試10.1數(shù)據(jù)庫應(yīng)用軟件測(cè)試10.2數(shù)據(jù)庫管理系統(tǒng)基礎(chǔ)測(cè)試10.2.1數(shù)據(jù)庫管理系統(tǒng)簡(jiǎn)介10.2.2DBMS的SQL功能測(cè)試10.2.3DBMS的事務(wù)特性測(cè)試10.2.1數(shù)據(jù)庫管理系統(tǒng)簡(jiǎn)介●
數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)
是一種控制和管理數(shù)據(jù)庫的大型基礎(chǔ)軟件,用于建立、使用和維護(hù)數(shù)據(jù)
庫。數(shù)據(jù)定義功能:庫、表、視圖、索引等數(shù)據(jù)操控功能:數(shù)據(jù)的增刪改查數(shù)據(jù)庫運(yùn)行管理功能:完整性、安全性等數(shù)據(jù)庫的維護(hù)功能10.2.2DBMS的SQL功能測(cè)試●
手動(dòng)測(cè)試:根據(jù)SQL手冊(cè),設(shè)計(jì)測(cè)試用例并手動(dòng)執(zhí)行SQL?!?/p>
自動(dòng)測(cè)試:MySQLTest自動(dòng)化測(cè)試框架10.2.2DBMS的SQL功能測(cè)試測(cè)試用例文件(每個(gè).test是一個(gè)測(cè)試用例)測(cè)試用例基準(zhǔn)結(jié)果(.result與測(cè)試用例逐一對(duì)應(yīng))Test文件內(nèi)容示例MySQLTest語法參考:/doc/dev/mysqlserver/latest/PAGE_MYSQL_TEST_RUN.html10.2.3DBMS的事務(wù)特性測(cè)試●
自動(dòng)測(cè)試:
MySQLTest自動(dòng)化測(cè)試框架事務(wù)(數(shù)據(jù)操作的最小邏輯單元)特性:ACID●
原子性(Atomic):該事物中的SQL語句或者全部執(zhí)行,或者全部不執(zhí)行?!?/p>
一致性(Consistent):一個(gè)事務(wù)在執(zhí)行之前和執(zhí)行之后,數(shù)據(jù)庫的數(shù)據(jù)都必須處于一致的狀態(tài)●
隔離性(Isolation):在并發(fā)環(huán)境中,并發(fā)的事務(wù)時(shí)相互隔離的,一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾.●
持久性(Duration):一旦事務(wù)提交,事物對(duì)數(shù)據(jù)庫中的對(duì)應(yīng)數(shù)據(jù)的狀態(tài)變更就會(huì)永久保存到數(shù)據(jù)庫中。10.2.3DBMS的事務(wù)特性測(cè)試隔離級(jí)別臟讀不可重復(fù)讀幻讀讀未提交(Readuncommitted)允許允許允許讀已提交(Readcommitted)不允許允許允許可重復(fù)讀(Repeatableread)不允許不允許允許可串行化(Serializable)不允許不允許不允許●數(shù)據(jù)不一致問題與隔離級(jí)別10.2.3DBMS的事務(wù)特性測(cè)試●測(cè)試方法:同時(shí)開啟多個(gè)客戶端連接,設(shè)置不同隔離級(jí)別,測(cè)試不同的并發(fā)操作。10.2.3DBMS的事務(wù)特性測(cè)試●原子性●
持久性右側(cè)操作結(jié)束后,退出再次進(jìn)入,數(shù)據(jù)已經(jīng)正常保存10.2.3DBMS的事務(wù)特性測(cè)試●
隔離性用戶1用戶2SQL>beginwork;SQL>beginwork;SQL>insertintotest_1values(3,1);插入一條語句SQL>insertintotest_1values(3,33);插入一條語句SQL>select*fromtest_1wherea=3;AB
31查詢出一條數(shù)據(jù),無法查詢出用戶2插入數(shù)據(jù)SQL>select*fromtest_1wherea=3;AB
333查詢出一條數(shù)據(jù),無法查詢出用戶1插入數(shù)據(jù)SQL>commit;SQL>commit;SQL>select*fromtest_1wherea=3;AB
31333SQL>select*fromtest_1wherea=3;AB
3133310.2.3DBMS的事務(wù)特性測(cè)試●
一致性用戶1用戶2SQL>beginwork;SQL>Insertintotestvalues(1,11,'test1');SQL>select*fromtest;查出0條數(shù)SQL>commit;SQLoperationcomplete.SQL>select*fromtest;ABC
111test1
查詢出一條記錄第十章數(shù)據(jù)庫測(cè)試10.1數(shù)據(jù)庫應(yīng)用軟件測(cè)試10.2數(shù)據(jù)庫管理系統(tǒng)基礎(chǔ)測(cè)試10.3數(shù)據(jù)庫管理系統(tǒng)性能測(cè)試10.3.1DBMS性能測(cè)試的目的與性能指標(biāo)10.3.2DBMS的基準(zhǔn)性能測(cè)試10.3.3DBMS的性能測(cè)試工具10.3.1DBMS性能測(cè)試的目的與性能指標(biāo)DBMS性能測(cè)試的目的:為了驗(yàn)證系統(tǒng)是否能滿足到用戶提出的性能指標(biāo),發(fā)現(xiàn)性能瓶頸,優(yōu)化系統(tǒng)整體性能。常見的DBMS性能度量指標(biāo):1.每秒執(zhí)行事務(wù)數(shù)TPS(TransactionsPerSecond)
數(shù)據(jù)庫每秒執(zhí)行的事務(wù)數(shù),以COMMIT成功次數(shù)為準(zhǔn)。2.每秒執(zhí)行請(qǐng)求數(shù)QPS(QueriesPerSecond)
數(shù)據(jù)庫每秒執(zhí)行的SQL數(shù)。3.響應(yīng)時(shí)間RT(ResponseTime)數(shù)據(jù)庫執(zhí)行每個(gè)請(qǐng)求的響應(yīng)時(shí)間。注意:每個(gè)測(cè)試工具都有自己的度量,但總體是度量單位時(shí)間系統(tǒng)的處理能力10.3.2DBMS的基準(zhǔn)性能測(cè)試●
DBMS的基準(zhǔn)性能測(cè)試●
OLTP(OnlineTransactionProcessing)聯(lián)機(jī)業(yè)務(wù)處理測(cè)試標(biāo)準(zhǔn):TPC-C、TPC-E(最新)●
OLAP(OnlineAnalysisProcessing)決策支持/大數(shù)據(jù)測(cè)試標(biāo)準(zhǔn):TPC-H、TPC-DS(最新)10.3.3DBMS的性能測(cè)試工具●
常用工具:Sysbench、BechmarkSQL(TPC-C)等Sysbench主要的OLTP測(cè)試SQL語句10.3.3DBMS的性能測(cè)試工具Sysbench:/akopytov/sysbench/主要測(cè)試命令:sysbencholtp_read_write.lua--tables=3--table_size=10000--mysql-user=root--mysql-password=123456--mysql-host=--mysql-port=3306--mysql-db=sbtestpreparesysbencholtp_point_select.lua--tables=3--table_size=10000--mysql-user=root--mysql-password=123456--mysql-host=--mysql-port=3306--mysql-db=sbtest--threads=100--time=100--report-interval=5runsysbencholtp_point_select.lua--tables=3--table_size=10000--mysql-user=root--mysql-password=123456--mysql-host=--mysql-port=3306--mysql-db=sbtest--threads=100--time=100--report-interval=5cleanup10.3.3DBMS的性能測(cè)試工具Sysbench測(cè)試結(jié)果第十章數(shù)據(jù)庫測(cè)試10.1數(shù)據(jù)庫應(yīng)用軟件測(cè)試10.2數(shù)據(jù)庫管理系統(tǒng)基礎(chǔ)測(cè)試10.3
數(shù)據(jù)庫管理系統(tǒng)性能測(cè)試10.4數(shù)據(jù)庫管理系統(tǒng)高可用性測(cè)試10.4數(shù)據(jù)庫管理系統(tǒng)高可用性測(cè)試●
DBMS的高可用性測(cè)試●
高可用:指在DBMS發(fā)生故障時(shí)恢復(fù)業(yè)務(wù)運(yùn)行的能力。●
通常采用高可用架構(gòu):例如一主N備;三地兩中心等●
高可用測(cè)試:通過故障模擬(混沌測(cè)試),例如利用工具Jepsen、ChaosBlade等模擬網(wǎng)絡(luò)故障,CPU超載,服務(wù)器宕機(jī),內(nèi)存不足等,測(cè)試在這些極端條件下系統(tǒng)的處理。10.4數(shù)據(jù)庫管理系統(tǒng)高可用性測(cè)試●DBMS的高可用性測(cè)試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)日出作文600字7篇
- 護(hù)理工作總結(jié)15篇
- 《寒冷的冬天》教案
- 工傷簡(jiǎn)單辭職報(bào)告(集錦7篇)
- 網(wǎng)絡(luò)編程協(xié)議課程設(shè)計(jì)
- 2018年全國兩會(huì)學(xué)習(xí)解讀
- 消費(fèi)電子行業(yè)專題報(bào)告:創(chuàng)新驅(qū)動(dòng)需求復(fù)蘇 業(yè)績(jī)與估值有望修復(fù)
- 兒童看護(hù)服務(wù)合同(2篇)
- 河南省安陽市林州城郊鄉(xiāng)第六職業(yè)中學(xué)高二地理聯(lián)考試題含解析
- 煤炭經(jīng)營(yíng)場(chǎng)地出租合同范本
- 腳手架計(jì)算書-
- 部編版八年級(jí)語文上冊(cè)《句子的成分》定稿課件
- 清華大學(xué)《大學(xué)物理》習(xí)題庫試題及答案09磁學(xué)習(xí)題
- 目標(biāo)成本限額指標(biāo)
- 礦山測(cè)量課程設(shè)計(jì)
- 最易懂的杰普遜航圖學(xué)習(xí)課件
- 高速公路瀝青路面設(shè)計(jì)計(jì)算書(Word)
- 加油機(jī)拆卸安裝方案
- 國畫美術(shù)興趣小組活動(dòng)記錄(共9頁)
- 環(huán)境隱患排查治理檔案臺(tái)賬
- 《輪滑》專項(xiàng)體育課教學(xué)大綱、教學(xué)計(jì)劃
評(píng)論
0/150
提交評(píng)論