版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
摘要隨著互聯(lián)網(wǎng)行業(yè)的快速發(fā)展,敏捷開發(fā)快速迭代的性質(zhì)。傳統(tǒng)軟件測試的技術(shù)和方式并不完全適用于如今的Web系統(tǒng)的測試,對于企業(yè)引進(jìn)自動化測試是非常必要的。目前,市場上已經(jīng)有許多自動化測試工具和框架。如何構(gòu)建一套適合自我測試的工具或框架,滿足實際需求的自動化測試框架是每個研究自動化測試或自動化測試的工作者需要考慮和解決的問題。本文主要是利用軟件測試知識、自動化測試相關(guān)教程和自動化測試框架理論,在結(jié)合對當(dāng)前市場上流行的自動化測試工具的分析結(jié)果,使用高效、簡潔、靈活的Python語言去實現(xiàn)一款基于Selenium+Python的自動化測試框架,該框架的測試對象主要是功能測試。在使用該測試框架過程中,需要提高測試腳本的維護(hù)性、復(fù)用性和擴(kuò)展性,有利于實現(xiàn)減少測試成本的消耗、提高測試執(zhí)行的效率和保證軟件產(chǎn)品的質(zhì)量。關(guān)鍵詞:自動化測試測試框架Selenium框架Python腳本
AbstractWithWiththeagiledevelopmentoftheInternetindustry.Nowadays,traditionalsoftwaretestingtechniquesandmethodsarenotfullyapplicabletoWebsystemtesting,soitisverynecessaryforenterprisestointroduceautomatedtesting.Atpresent,therearealotofautomatedtestingtoolsandshellframeinthemarket.Howtobuildasetofself-testmeansorshellframetomeetthe
physicaldemandsofautomatedtestingframeworkisaproblemthateveryresearcherofautomatedtestingor
testautomationneedstoconsiderandsolve.This
paper
mainly
uses
the
knowledge
of
software
testing,
related
courses
of
automatic
testing
and
the
theory
of
automatic
testing
framework.
Combining
with
the
analysis
results
of
the
popular
automatic
testing
tools
in
the
current
market,
it
uses
the
efficient,
concise
and
flexible
Python
language
to
realize
an
automatic
testing
framework
based
on
selenium
+
python.
The
testing
object
of
this
framework
is
mainly
function
testing.Inusingthetestframeworkatthisprocess,weneedtoimprovethemaintainability,reusabilityandaugmentabilityoftestscripts,whichisinstrumentalinreducingtheconsumptionoftestcosts,improvingtheefficiencyoftestexecutionandensuringthequalityofsoftwareproducts.Keywords:AutomaticTestFrameworkSeleniumFrameworkPythonScript目錄第一章緒論 第一章緒論1.1研究背景及意義隨著軟件行業(yè)的發(fā)展,公司是越來越重視測試部門的發(fā)展,這就使得測試工作者更加的需要實力,所有對于自動化測試這一領(lǐng)域是一定需要涉及的,不光如此,自動化測試其本身也是很有價值的。引入自動測試可以在不同程度上提高整個項目的測試效率,與手工測試一起保證軟件產(chǎn)品的高質(zhì)量。身處這個互聯(lián)網(wǎng)行業(yè)發(fā)展迅速的時代,對測試人員來說,隨著技術(shù)的不斷更新,是需要不斷提升個人的核心競爭力,以期待符合企業(yè)用人需求和對自動化、性能、接口測試的硬性要求,以及對編碼、數(shù)據(jù)庫、服務(wù)器等綜合應(yīng)用需求??偟膩碚f,于這個時代軟件、互聯(lián)網(wǎng)行業(yè)的工作者來說,特別是測試工作者,對于自動化測試的學(xué)習(xí)和運用是一個提升能力的途徑?,F(xiàn)如今可以輔助進(jìn)行自動化測試的工具有很多,有商業(yè)化的,有開源性質(zhì)的。其中Selenium就屬于開源的,可以很好的用于學(xué)習(xí)。自動化測試在一個版本周期比較長且主要功能業(yè)務(wù)改變的可能性不大的項目中是非常有存在意義的。在這樣的項目中,首先,枯燥、重復(fù)的手工操作可以進(jìn)行腳本化,用于避免人為因素影響測試的進(jìn)展及質(zhì)量,可以解放部分時間。其次,對于一些軟件,比如其功能比較全面、整體框架比較穩(wěn)定,進(jìn)行新版本發(fā)布時,這些軟件的整體頁面及其整體功能變化不大。類似這樣的軟件迭代就比較適合用自動化測試框架進(jìn)行測試,可以提高軟件的可信度。再次,它可以更好地利用資源,如工作日的晚上和每周的周末,可以用自動化測試來代替人工測試,使公司的資源可以被充分利用起來。最后,在版本快速迭代的過程中,自動化測試的目的是為了保證產(chǎn)品的質(zhì)量,而不是發(fā)現(xiàn)更多的Bug,多數(shù)的Bug還是需要手工測試才會暴露出來。本畢業(yè)論文主要是利用軟件測試知識、自動化測試相關(guān)教程和自動化測試框架理論,在結(jié)合對當(dāng)前市場上流行的自動化測試工具的分析結(jié)果,使用高效、簡潔、靈活的Python語言去實現(xiàn)一款基于Selenium+Python的自動化測試框架,框架以功能測試為主。在使用該測試框架過程中,需要提高測試腳本的維護(hù)性、復(fù)用性和擴(kuò)展性,有利于實現(xiàn)減少測試成本的消耗、提高測試效率和執(zhí)行速度和保證其測試的產(chǎn)品的質(zhì)量。1.2國內(nèi)外研究現(xiàn)狀本文研究基于Selenium+Python的自動化測試框架,在此也段落分別介紹Selenium、Python以及自動化測試的現(xiàn)今的發(fā)展及其歷史起源。Selenium是ThoughtWorks測試團(tuán)隊開發(fā)的。最初,它只是一個名為JavaScriptrunner的簡單測試工具,由JasonHuggins在2004年編寫。在后來的一系列發(fā)展中,逐漸成為了現(xiàn)在這樣的一個開源、免費、獨立的自動化測試工具。出色的多語言開發(fā)特性、跨平臺、跨瀏覽器的工作兼容性使得Selenium獲得了許多研發(fā)團(tuán)隊的青睞[1]。1991年,出現(xiàn)python編譯器。自從Python編譯器出現(xiàn)以來,Python已經(jīng)有了核心數(shù)據(jù)類型,如類、函數(shù)、異常處理機制、表、字典和基于模塊的擴(kuò)展系統(tǒng)。Python的發(fā)展主要由Guido和他的團(tuán)隊以及社區(qū)進(jìn)行推動的。在Python2.0版本之后,Python的開發(fā)方法是完全開源的。到現(xiàn)在,Python已經(jīng)擁有了一個穩(wěn)定的框架。Python是一種編程語言,它圍繞對象組織代碼,支持多種編程模式,并自動回收內(nèi)存。Python的標(biāo)準(zhǔn)庫(BatteryIncluded)非常強大和穩(wěn)定。正因為如此,Python已經(jīng)開始擴(kuò)展第三方包。Python一直是一種美麗、清晰、簡單的語言,因而被廣泛使用。第一代自動化測試通過硬件記錄鍵盤輸入,然后回放。其測試腳本的維護(hù)是非常非常不容易的。第二代自動化測試已經(jīng)從硬件轉(zhuǎn)換為通過軟件錄制/播放生成自動化的測試腳本,同時增加了檢查點功能對軟件進(jìn)行自動化測試是否正確進(jìn)行驗證,自動化測試的整體范圍比前身的范圍要擴(kuò)大了很多[2]。第三代開始逐漸被稱為測試框架,其功能是將腳本進(jìn)行抽象化,使理解不了測試腳本源代碼、完全不會編寫測試腳本的人也會使用該工具來完成測試。第四代MercuryBusinessProcessTesting:關(guān)注的是業(yè)務(wù)需求。1.3研究目標(biāo)與內(nèi)容本文利用所學(xué)的軟件測試基礎(chǔ)知識、自動化測試相關(guān)教程和自動化測試框架理論,在綜合分析當(dāng)前市場流行的自動化測試工具,實現(xiàn)一個基于Selenium+Python的自動化測試框架,該框架側(cè)重于功能測試。在使用過程中,有必要提高測試腳本的可維護(hù)性、可重用性和可擴(kuò)展性,從而降低自動化測試的成本,提高自動化測試的測試執(zhí)行效率,以到達(dá)保證軟件的整體質(zhì)量的目的。本篇論文的主要研究內(nèi)容如下:(1)研究和分析軟件測試的基礎(chǔ)知識、自動化測試的相關(guān)技術(shù)和自動化測試框架技術(shù)。本文分析了當(dāng)前市場上流行的自動化測試工具,介紹了Selenium自動化測試系列工具及其特點,分析了Selenium自動化測試的工作原理和實現(xiàn)機制。(2)結(jié)合測試?yán)碚撆c實際測試需求,分析并定義基于Selenium+Python的自動化測試框架的功能和非功能需求。(3)根據(jù)分析出來的需求點,設(shè)計和實現(xiàn)基于Selenium+Python的易于維護(hù)、易于擴(kuò)展、可復(fù)用的自動化測試框架,以實現(xiàn)Web應(yīng)用程序功能的自動化測試。(4)應(yīng)用與實踐。以校友邦為測試對象,設(shè)計一些測試用例,通過實現(xiàn)的框架進(jìn)行腳本執(zhí)行,并對自動化測試生成的測試結(jié)果報告進(jìn)行分析。1.4本文結(jié)構(gòu)本畢業(yè)論文章節(jié)結(jié)構(gòu)及相應(yīng)章節(jié)內(nèi)容展示:第一章緒論:對本畢業(yè)論文的研究背景及意義、國內(nèi)外自動化測試相關(guān)研究現(xiàn)狀以及論文的整體結(jié)構(gòu)進(jìn)行闡述。第二章自動化測試相關(guān)技術(shù)研究:對自動化測試的理論、過程、框架和工具進(jìn)行相關(guān)研究。第三章自動化測試框架需求分析:對測試框架的功能和非功能需求這兩方面進(jìn)行分析和敘述。第四章自動化測試框架設(shè)計:對基于Selenium+Python的自動化測試框架的總體架構(gòu)進(jìn)行設(shè)計,然后對框架涉及的所有功能和需要用到的測試輸入數(shù)據(jù)進(jìn)行設(shè)計。第五章自動化測試框架實現(xiàn):實現(xiàn)基于Selenium+Python的自動化測試框架,包括開發(fā)環(huán)境的搭建以及各個功能和數(shù)據(jù)的具體實現(xiàn)。第六章應(yīng)用實踐:介紹基于Selenium+Python的自動化測試框架在真實項目中的運用,以及對測試結(jié)果報告進(jìn)行簡要分析。第七章總結(jié)與展望:對實現(xiàn)的測試框架其成果進(jìn)行總結(jié),以及對未來的展望。1.5本章小結(jié)本章是對自動化測試的研究背景和意義進(jìn)行一個簡要的概述說明,對本課題的研究內(nèi)容和自動化測試在國內(nèi)外的現(xiàn)狀進(jìn)行一個總的綜述。同時對本課題進(jìn)行一個綱要介紹。
第二章自動化測試技術(shù)研究2.1軟件自動化測試概念研究2.1.1自動化測試定義自動化測試(AutomatedTest)是把機器執(zhí)行測試代替手工測試的一種過程,即通過執(zhí)行編寫的自動化程序腳本來模擬手工測試的過程[2]。根據(jù)需要,自動化測試可以包括所有的測試階段,支持跨平臺,并且與進(jìn)程沒有關(guān)系。通常情況下,進(jìn)行軟件測試,都是先進(jìn)行理解需求,在進(jìn)行需求評審,評審?fù)ㄟ^后,開始編寫自動化測試的整體測試計劃、和用于自動化測試的測試用例編寫,然后在通過自動化測試用例評審會議,評審會議通過后,測試人員才會正式的進(jìn)行測試,前面的步驟只是介入測試和對正式執(zhí)行測試的一些準(zhǔn)備工作。當(dāng)進(jìn)入執(zhí)行測試階段時,測試人員需要根據(jù)測試用例對被測系統(tǒng)進(jìn)行測試,測試完成后,將分析測試結(jié)果并將其與預(yù)期結(jié)果進(jìn)行比較,如果測試用例與預(yù)期相同,則判斷為通過,需要將其按照正常的Bug提交流程提交到項目管理工具中,方便于項目開發(fā)人員進(jìn)行Bug的修復(fù)。在這個樣的手工測試過程中是一個耗時耗力的工作,如此操作雖然對測試的質(zhì)量有很高的保證,但它同時對人力、物力以及一些資源造成了浪費。因此,為了節(jié)省各種資源(包括人力、物力、時間、硬件),提高測試執(zhí)行效率和測試的質(zhì)量,以及不脫軌于國家計算機信息化的發(fā)展,緊跟軟件的迭代速度,自動化測試注入軟件行業(yè)是一個必然事件。自動化測試現(xiàn)在運用得比較多的三個地方是單元測試、接口測試,界面測試。單元自動化測試是軟件的數(shù)據(jù)處理層,是系統(tǒng)中可檢測和驗證的最小模塊,在很大程度上,它將依賴于一些自動化測試的基本框架,例如JUnit,TestNG,Python的Unittest等;接口自動化測試是各種軟件的另一個基本業(yè)務(wù)邏輯層,它直接用于全面檢查和驗證各種軟件模塊的初始化參數(shù)和返回數(shù)據(jù),以及與系統(tǒng)和服務(wù)之間的數(shù)據(jù)交換。常用的接口測試工具包括Postman(非常簡單,操作簡單,免費享受)、JMeter(開源社區(qū),基本功能非常強大,免費享受)、LoadRunner(付費購買)等;UI自動化測試是對各種軟件應(yīng)用程序界面層進(jìn)行測試。測試中的其他大部分工作都相對集中在這里,因為用戶基本都是與這一層進(jìn)行交互,常見的測試工具有Robotframework、Selenium、Appium等等工具。2.1.2自動化測試過程在當(dāng)下,進(jìn)行一個項目的開發(fā),測試與開發(fā)是并行的,都會同時介入項目,只是側(cè)重點不一致。自動化測試也是測試,從本質(zhì)上來進(jìn)與手工測試沒什么不同,都是用于軟件測試質(zhì)量保證,只不過自動化技術(shù)的測試是利用自動化測試技術(shù)相關(guān)工具和代碼自動構(gòu)造輸入,并自動檢查結(jié)果的連續(xù)輸出是否可以滿足期望,手動測試要求執(zhí)行測試的人員自己執(zhí)行所有測試。利用自動化技術(shù)進(jìn)行自動化測試需要制定最終測試計劃,深入分析測試的實際需求,并對用戶需求進(jìn)行評審,然后設(shè)計用于測試人員手動進(jìn)行測試的測試用例,在其中挑選出一些手工測試用例轉(zhuǎn)換為自動化測試用例,完成用例評審,根據(jù)需求,選取相應(yīng)的工具進(jìn)行搭建自動化測試的框架,框架搭建完畢就可以開始編寫自動化測試過程中需要的腳本,在使用的測試腳本都編寫完成并成功調(diào)試通過后,進(jìn)行腳本執(zhí)行然后生成自動化測試結(jié)果分析報告,并根據(jù)最終測試正式報告對最終測試的最終結(jié)果進(jìn)行分析,并完整記錄測試中的核心問題,追蹤Bug,進(jìn)行回歸測試、執(zhí)行測試腳本,根據(jù)實際情況結(jié)束測試,如圖2-1。這基本就是一個完整的自動化測試完成流程。當(dāng)然,用于執(zhí)行自動化的自動化測試腳本是需要持續(xù)改進(jìn)和優(yōu)化的,這樣做的目的是希望提高自動化測試腳本的可維護(hù)性、復(fù)用性和擴(kuò)展性,有利于實現(xiàn)減少測試成本的消耗、提高測試執(zhí)行的效率和保證軟件質(zhì)量的目的。圖2-SEQ圖\*ARABIC1自動化測試基本流程(1)測試計劃制定測試之前,制定一個總體方案(測試計劃),在整個計劃中必須寫清楚測試的對象和目的、自動化測試的具體測試內(nèi)容和具體會用到的測試方法、測試進(jìn)度的詳細(xì)計劃和安排、測試所需的人力物力準(zhǔn)備等。一個好的測試計劃可以很好的指導(dǎo)整個測試過程。(2)對進(jìn)行自動化測試進(jìn)行需求分析當(dāng)被測系統(tǒng)滿足其整體需求的變化不會很頻繁,項目周期持續(xù)時間長、有生命力,最終的測試數(shù)據(jù)是全面的,并且用于自動化測試的測試用例和腳本的可重用性和可移植性非常強,并且被測試系統(tǒng)開發(fā)具有標(biāo)準(zhǔn)化和可測試性。當(dāng)公司本身具有自動化設(shè)備最終測試的相關(guān)前提條件和高質(zhì)量資源時,此時就可以分析自動化測試的內(nèi)容以及更多需求。在此過程中,有必要定義自動測試的覆蓋范圍,測試用例和測試要使用的數(shù)據(jù),并將其整理成文檔,方便后續(xù)使用。(3)設(shè)計用于自動化測試的用例深入分析需求,然后設(shè)計可用的用例,設(shè)計用例需要注意其設(shè)計的測試用例是否覆蓋了分析出來的所有的需求點,如若無誤,則可以將其整理為測試用例文檔。當(dāng)然,并不是所有設(shè)計出來的用例都適合用于自動化測試的事實,有必要從詳細(xì)設(shè)計的用例中選擇適合于自動化測試的用例,并將其轉(zhuǎn)化為自動化測試用例腳本。在條件允許的情況下,建議把一些參數(shù)信息(如:登錄、注冊界面的用戶、密碼等數(shù)據(jù))獨立出來,形成一份測試數(shù)據(jù),寫入Excel,并將其放到實現(xiàn)的自動化測試框架中去。(4)測試框架的搭建及測試腳本編寫自動化測試框架類似與軟件架構(gòu),是需要明確在使用此框架使需要用到哪些文件、哪些結(jié)構(gòu),以及調(diào)用這些文件或結(jié)構(gòu)的過程。在編寫腳本的過程中,將公共類進(jìn)行封裝,分別進(jìn)行調(diào)用。如果有需要,可以對一些數(shù)據(jù)進(jìn)行參數(shù)化。在腳本編寫完畢后,是需要其編寫的腳本進(jìn)行反復(fù)不斷的調(diào)試,避免框架本身的問題造成測試結(jié)果的失誤,對于調(diào)試,一定要調(diào)試到腳本運行正常不會出錯為止。在腳本的編寫以及對其進(jìn)行命名時都需要注意其是否要符合規(guī)范,以方便進(jìn)行統(tǒng)一的管理和維護(hù)。(5)運行腳本,即執(zhí)行測試在此過程中會生成日志,也會有相應(yīng)的問題記錄截圖和測試報告生成。需要分析其結(jié)果,以便定位失敗用例和發(fā)現(xiàn)缺陷。在此過程中發(fā)現(xiàn)的Bug需要提交到相應(yīng)的缺陷管理工具中,方便對Bug的跟蹤。待開發(fā)人員修復(fù)完成后,需要進(jìn)行回歸測試,如若通過則關(guān)閉,否則將會繼續(xù)修改。2.1.3自動化測試框架分類應(yīng)對于不同測試需求以及測試條件的測試框架也明顯不同,不過大多數(shù)框架都是由基礎(chǔ)模塊、執(zhí)行模塊、管理模塊和統(tǒng)計模塊中的一個或多個組合而成[3,4,9]。下面具體介紹幾個常見的測試框架類型。(1)模塊化測試框架。其優(yōu)點是將測試腳本按照應(yīng)用程序的功能模塊進(jìn)行封裝。當(dāng)需要修改某個模塊的時候,不會影響其他模塊,提高腳本的獨立性和可維護(hù)性。各個模塊可以進(jìn)行組裝或者被其他框架引用,提高腳本的復(fù)用性和拓展性。(2)關(guān)鍵字驅(qū)動框架。自身存在一個底層的關(guān)鍵字處理邏輯,用戶通過輸入合法的關(guān)鍵字就可以驅(qū)動測試任務(wù)的執(zhí)行,是后期維護(hù)工作最小的自動化測試框架。但此框架很難進(jìn)行調(diào)試,因為它使用標(biāo)準(zhǔn)的外部數(shù)據(jù)源(如Excel數(shù)據(jù)表)讀取信息腳本中的關(guān)鍵字。(3)測試庫框架。測試庫驅(qū)動是實現(xiàn)腳本和測試數(shù)據(jù)有內(nèi)在邏輯的分離[5],這種分離與模塊化框架的分離不同,它是按預(yù)設(shè)在工程中的許多個性方法并引用這些方法以完成測試任務(wù)的框架。優(yōu)點是腳本復(fù)用率高、后期維護(hù)量小。(4)數(shù)據(jù)驅(qū)動框架。數(shù)據(jù)驅(qū)動框架的基本思想是將最終測試數(shù)據(jù)與最終測試腳本分離,將數(shù)據(jù)文件放在外部的儲存空間中,需要時再引入即可。其優(yōu)點是數(shù)據(jù)與腳本是分離的其可維護(hù)性提高。(5)混合測試框架。理論上,上述的框架都可以單獨運行測試,但在現(xiàn)實的中問題多是復(fù)雜而多樣的,單個測試框架完成測試很難覆蓋全面,所以將以上四種測試框架實行按需組合形成混合框架,是比較完美的解決措施?;旌蠝y試框架雖然其維護(hù)工作量大于單個框架,但其實用性也是最高的。2.2軟件自動化測試框架研究2.2.1主流自動化測試框架研究Robot框架是基于Python語言結(jié)構(gòu)的開源項目。它是關(guān)鍵字驅(qū)動的,有許多的測試庫。使用SeleniumWebDriver時,它支持系統(tǒng)中Web應(yīng)用程序的自動化測試;當(dāng)使用Appnium時,它支持移動應(yīng)用測試(如Android),另外也支持?jǐn)?shù)據(jù)庫測試。以及擁有許多的API外部設(shè)備接口,支持基本功能擴(kuò)展。Tellurium是用于web應(yīng)用程序的自動化測試框架。它是在Selenium的基礎(chǔ)上搭建成立的,但它與Selenium還是存在很多的不同,例如,selenium有兩種模式:錄制模式和回放模式,而Tellurium不是錄制和回放模式,而是側(cè)重于網(wǎng)頁模塊。QTP是用于系統(tǒng)自動化測試。QTP非常適合需要重復(fù)測試的測試模塊。它最常用于回歸測試和版本升級為其他版本的最終測試。QTP測試之前,需要還考慮怎樣去測試需要測試的軟件,比如測試要用的數(shù)據(jù)、函數(shù)和需要哪些操作都需要提前考慮清楚。PhoenixAutotest是基于用Python+Java編寫的自動化測試框架。它涵蓋了WebUI自動化測試所需的大多數(shù)基本功能封裝。2.2.2自動化測試框架設(shè)計原則研究(1)最終測試框架和被測試項目需要相互獨立。大部分企業(yè)只有開發(fā)一個測試框架的精力,而被測試的項目則是多種多樣的,這樣就只能要求測試框架有能力去測試這些項目中的共同部分,而其他部分采用人工檢測[5]。(2)編寫測試框架腳本時,應(yīng)遵守開發(fā)代碼所要求的可靠性、可擴(kuò)展性、可維護(hù)性、健壯性等原則,特別注意的是盡量使各個部分都相對獨立方便后期修改和維護(hù)。(3)測試腳本語言與框架編程語言相適應(yīng)原則。腳本測試語言需要由測試項目的具體特征確定,這樣才能避免測試項目遷移的導(dǎo)致大量需重寫的麻煩。2.3軟件自動化測試工具研究2.3.1自動化測試工具分類研究隨著電子科技的不斷進(jìn)步人們對軟件自動化檢測的需求越來越大,各類自動化測試工具應(yīng)運而生,盡管功能與種類繁多但根據(jù)測試方法的不同可分為黑盒自動化測試工具、白盒自動化測試工具和測試管理工具[6]。自動化測試的工具,大多數(shù)基本來自于MercuryInteractive(MI)、Segue、IBM/Rational、Compuware和Empirix等公司,其中占主流的自動化測試軟件來至于MI公司。常見的用于黑盒測試的自動化測試工具,如表2-1所示。表2-1用于黑盒測試的自動化工具工具支持語言簡介RobotframeworkPython/Java開源軟件,支持關(guān)鍵字驅(qū)動,可以實現(xiàn)驗收測試以及驅(qū)動開發(fā)和在短時間內(nèi)完成關(guān)鍵字以及測試用例的編寫,對測試自動化人員的編程能力要求較高。WinRunnerJava其主要功能是用于檢驗被測系統(tǒng)或軟件程序是否如期運行。LoadRunnerJava該工具主要是通過模擬實際用戶在系統(tǒng)使用過程中的操作行為和對實時性能進(jìn)行監(jiān)測,從而查找和發(fā)現(xiàn)問題出現(xiàn)位置和方式,并預(yù)測系統(tǒng)行為進(jìn)行系統(tǒng)性能優(yōu)化。QuickTestProfessionalVB該工具適合功能、回歸測試,可以根據(jù)錄播進(jìn)行自動捕獲、驗證和重放用戶的交互行為,有助于提高自動化開發(fā)效率Selenium支持多種語言開源軟件,可擴(kuò)展性強,比較靈活,支持各種語言,可以集成到很多的開發(fā)工具中。幾種用于白盒測試的自動化測試工具,如表2-2所示。表2-2用于白盒測試的自動化工具工具支持語言簡介Jtest代碼分析和動態(tài)類、組件測試C++Test代碼分析和動態(tài)測試SmartCheckVB函數(shù)調(diào)用次數(shù),所占比例統(tǒng)計以及穩(wěn)定性跟蹤CodeReviewVB自動源代碼分析工具常見的用于管理測試過程的管理工具,如表2-3所示。表2-3用于管理測試過程的管理工具工具公司簡介TeamManagerRational對測試的需求、測試的計劃、測試的用例和測試的實施過程進(jìn)行管理、同時可以對缺陷進(jìn)行跟蹤處理。TrackRecordCompuwareTestDirectorMercuryInteractiveWebLoadRadview用于性能測試TestBytes針對數(shù)據(jù)庫測試本課題研究的自動化測試框架主要是自動化功能測試即黑盒測試的,使用Selenium用于自動化測試,其優(yōu)點有,完全開源、免費,具有很強的可擴(kuò)展性,相對的靈活性,支持多種語言編程和改寫,可以集成到多數(shù)開發(fā)工具中去。2.3.2Selenium工具研究Selenium是一款應(yīng)用廣泛的免費開源自動化測試工具并且能夠使用多種語言進(jìn)行編寫,其主要由IDE、Grid、RC三大基本組件構(gòu)成[7]。其中RC是Selenium的核心組成部分,是可以為測試腳本訪問應(yīng)用的代理服務(wù)器,具體原理如圖2-2所示。不過在最新的Selenium3.0中WebDriver已經(jīng)能夠代替其工作;IDE是對腳本進(jìn)行初步構(gòu)建,可以通過錄制來進(jìn)行簡單的腳本生成、并可以對生成的腳本代碼執(zhí)行簡單的腳本編輯和靈活的操作步驟來回放其他功能;Grid測試輔助工具,可以可分布式執(zhí)行測試。圖2-2Selenium-RC的原理2.3.3SeleniumWebDriver工具研究SeleniumWedDriver是Selenium中重要的組件,該工具新發(fā)掘了一些全新的功能,比如更具組織性的API,在一定程度擺脫了是Selenium1的局限性,是Selenium升級完善象征和代表,擁有更為簡潔的編程接口[8]。WebDriver的優(yōu)點:WebDriver使用HtmlUnit時,無需打開瀏覽器就可以進(jìn)行測試;基于瀏覽器的內(nèi)部接口實現(xiàn)自動化測試,模擬真實用戶使用情況;提供合理簡潔的面向?qū)ο驛PI,提高了自動化測試腳本的編寫效率[9]。在使用過程中不需要進(jìn)行單獨啟動SeleniumServer。它可以支持不同類型的瀏覽器及不同版本的瀏覽器,具有非常好的兼容性。圖2-3Selenium工作基本原理2.4Python語言特點介紹Python是一種開源的自由語言,它代表了簡單性的思想。python和大多數(shù)主流高級編程語言(例如C和Java)都是面向?qū)ο蟮?,而且python在編程時,不用去考慮底層細(xì)節(jié),用python寫的代碼程序不需要編譯就可以直接運行;python有很強大的標(biāo)準(zhǔn)庫,比如文檔生成、電子郵件等,Python的另一個優(yōu)點是使用強制縮進(jìn)使代碼可讀。2.5本章小結(jié)這一章主要對自動化測試的相關(guān)技術(shù)進(jìn)行了概述,首先是對軟件自動化的相關(guān)知識進(jìn)行普及,之后對自動化測試框架和其設(shè)計原則進(jìn)行了闡述說明,最后對自動化測試工具的大體分類進(jìn)行了描述,并介紹了有關(guān)于本選題要設(shè)計的Selenum工具的相關(guān)知識和Python語言的特點。
第三章自動化測試框架需求分析3.1測試框架功能需求分析該框架的功能需求點包括以下七點:自動執(zhí)行編寫的測試用例,不需要人為干預(yù);執(zhí)行測試用例需要用到的數(shù)據(jù)設(shè)計為獨立于框架以外,方便對測試數(shù)據(jù)的修改;執(zhí)行測試用例的過程中需要有日志和截圖進(jìn)行記錄腳本執(zhí)行軌跡和結(jié)果,便于對錯誤進(jìn)行定位;各個頁面的測試腳本相互獨立,不可以去影響其他頁面的用例執(zhí)行;測試執(zhí)行完畢需要將生成的測試報告發(fā)給指定的人員。如圖3-1所示。圖3-1測試框架功能需求分析3.1.1測試用例管理模塊測試需求分析在現(xiàn)行自動化技術(shù)測試的基本框架中,測試用例是腳本編寫的主要部分。另外,由于其產(chǎn)品的不斷迭代,測試用例將會同步更新或添加。因此,在設(shè)計測試用例的腳本時,必須考慮對上一階段和下一階段的良好維護(hù)。對于自動化測試的測試案例,可以考慮以下幾點來進(jìn)行編寫:(1)通常,需要選擇需要重復(fù)執(zhí)行并且執(zhí)行過程耗時的測試用例。(2)對于一些邏輯性更強、更復(fù)雜、更難實現(xiàn)的測試用例,我們可以選擇不用自動化測試來實現(xiàn)它們。而是手動測試可能更快、更方便。(3)對于頁面的各公共控件的邊緣用例也可以暫時不用自動化測試去實現(xiàn)。3.1.2測試業(yè)務(wù)模塊需求分析Web自動化測試是需要打開瀏覽器的,為了使測試框架便于維護(hù),不去大面積的修改代碼,這個小部分需要封裝瀏覽器模塊的功能,力求實現(xiàn)瀏覽器在打開和關(guān)閉同一狀態(tài)后的通用方法,使后面每條測試腳本就可以直接調(diào)用打開和關(guān)閉瀏覽器方法,腳本只需要專注具體的測試業(yè)務(wù)邏輯的實現(xiàn)即可。在測試過程中會用到很多如截圖方法、元素定位方法、元素通用操作方法以及警示框處理方法等公共的測試方法。因此,在測試框架的構(gòu)建中常常需要封裝一些常用的公共方法,只要是軟件頁面的一些常用操作都可以選擇寫在該頁面基類中,這個頁面基類相對于一個公共的函數(shù)庫,存放著常用的公共方法,后面有需要的地方直接調(diào)用即可。本文內(nèi)容研究中的測試大框架需要封裝8個定位元素的方法和一種截圖方法,常用的鼠標(biāo)點擊方法,處理警告框的方法,Web瀏覽器的前進(jìn)和后退方法,一種隱式等待時間的方法、關(guān)閉當(dāng)前窗口和切換到新窗口的方法、輸入框和選擇框的方法等一些常用的功能函數(shù)或者方法。3.1.3數(shù)據(jù)模塊需求分析Selenium作為一個可以跟隨編寫者意愿自主配置的自動化測試框架,開始自動化測試的第一個步驟就是根據(jù)特定自動化測試需求對各種輸入數(shù)據(jù)進(jìn)行配置,這是一個設(shè)計框架能夠基本運行的前提,也是其后續(xù)測試腳本運行的重要基礎(chǔ)。輸入數(shù)據(jù)一般可分為測試框架的基本操作所需的綜合數(shù)據(jù)和基于框架的測試所需的最終數(shù)據(jù)兩大類??蚣芡暾哪軌蛱幚磉@些用戶輸入數(shù)據(jù),并在此基礎(chǔ)上,可以觸發(fā)啟動整個框架并運行它進(jìn)行完整的測試。因此,配置最終測試數(shù)據(jù)是整個框架的基本功能。3.1.4日志模塊需求分析當(dāng)這個框架開始運行時,它將能夠輸出日志。所有的日志都是檢查程序整體運行并發(fā)現(xiàn)錯誤的最重要手段。對于系統(tǒng)的自動測試,需要知道自動執(zhí)行這個測試的過程、執(zhí)行情況和執(zhí)行錯誤的處理情況,以便測試人員要能夠快速地定位到腳本具體失敗的位置,排查出失敗的原因是腳本Bug還是應(yīng)用的Bug。所以需要在程序的關(guān)鍵位置或者步驟節(jié)點下設(shè)置日志輸出。因此,在自動化測試框架中還需要提前封裝一個日志類的功能模塊,便于輸出日志。3.1.5測試報告模塊需求分析當(dāng)所有的測試用例都執(zhí)行完畢之后,會自動生成自動化測試結(jié)果報告,并自動地將正式測試結(jié)果報告發(fā)送給相關(guān)人員,測試用例的執(zhí)行結(jié)果以表格的形式在自動化測試報告中展示,在報告中可以對測試結(jié)果到達(dá)一目了然的效果。3.2測試框架非功能需求分析根據(jù)框架的特點和實現(xiàn)自動測試結(jié)果的目的,測試框架的潛在非功能需求如下:(1)有效性確保系統(tǒng)的自動化測試能夠正常、連續(xù)和有效地通過,在測試過程中能準(zhǔn)確有效的找出被測系統(tǒng)的真實缺陷,盡量避免非正常錯誤。(2)穩(wěn)定性穩(wěn)定性是一個軟件的必要因素,框架是否穩(wěn)定將決定其是否可以正常使用,并到達(dá)自動化測試的最終目的。(3)可擴(kuò)展性自動測試框架設(shè)計原則上應(yīng)與待測系統(tǒng)分離,使其用途更廣泛。但是在現(xiàn)實情況中,對于要測試的不同系統(tǒng),在自動測試實現(xiàn)過程中必須有特定內(nèi)容,因此為了滿足不同項目的不同測試需求,可擴(kuò)展性在自動化技術(shù)測試的基本框架中是必不可少的。(4)可維護(hù)性一般來說,用自動化測試框架進(jìn)行測試主要都是將其運用需要進(jìn)行回歸測試的軟件中。因為一個系統(tǒng)基本都不會只有一期項目,而是會通過一期、二期甚至更多期項目來不斷增加和完善其系統(tǒng)功能,一個測試腳本是需要進(jìn)行多次運行的,而隨著自動化測試腳本的不斷增加,新版本的回歸測試量會漸增,這使得自動化測試框架的負(fù)載不斷變大,因此框架必須是可維護(hù)的,才能保持長期的可用性[9]。3.3本章小結(jié)從實現(xiàn)自動化測試基本框架的短期目標(biāo)出發(fā),結(jié)合Selenium測試工具的突出特點,分析了實現(xiàn)框架需要定義的功能需求和非功能需求,并對這個框架的需求有一個整體的梳理。該框架應(yīng)支持?jǐn)?shù)據(jù)配置,測試環(huán)境的準(zhǔn)備以及測試集的動態(tài)性構(gòu)建,最終測試的執(zhí)行,測試結(jié)果報告的自動生成以及對測試執(zhí)行腳本類庫的支持。
第四章自動化測試框架設(shè)計4.1測試框架的整體架構(gòu)通過具體的分析這個框架的實際需求,對整個框架進(jìn)行一個具體的設(shè)計,對實現(xiàn)每個需求點都做一個對應(yīng)的設(shè)計,為后期的測試框架實現(xiàn)提供一個完整清晰的思路邏輯。設(shè)計的框架結(jié)構(gòu)中對每個需要實現(xiàn)的需求點都提供了進(jìn)一步的實現(xiàn)步驟。具體的自動化測試框架其整體架構(gòu)設(shè)計,如圖4-1所示。圖4-1測試框架的整體結(jié)構(gòu)4.2測試業(yè)務(wù)模塊設(shè)計4.2.1公共類封裝在公共類中封裝通用的操作方法,比如封裝8個定位元素的方法和一種截圖方法,常用的鼠標(biāo)點擊方法,處理警告框的方法,Web瀏覽器的前進(jìn)和后退方法,一種隱式等待時間的方法、關(guān)閉當(dāng)前窗口和切換到新窗口的方法、輸入框和選擇框的方法等一些常用的功能函數(shù)或者方法。如圖4-2所示。圖4-2公共類封裝定義一個瀏覽器操作驅(qū)動庫,用于讀取配置文件信息,快速打開指定測試URL地址,以及自動開啟、關(guān)閉瀏覽器。4.2.2各個頁面類封裝新建page_obj文件夾,將每個頁面的多個元素放在一個目錄中。方便日常管理??梢砸灰粚?yīng)創(chuàng)建Python程序包,不同的頁面對應(yīng)一個不同的程序包,例如登錄頁面上的登錄程序包和主頁上的主頁程序包,每個界面類中通常會包括數(shù)據(jù)讀取和頁面元素操作及業(yè)務(wù)操作。4.2.3用例管理模塊設(shè)計此模塊設(shè)計一個獨立的目錄,所有的測試用例均寫到在該目錄下面,運行時,該模塊會引用測試框架中的其他模塊,來具體實現(xiàn)用例執(zhí)行。如公共類封裝模塊、頁面類封裝模塊、數(shù)據(jù)模塊和測試報告模塊等。如圖4-3所示。圖4-3Testcase結(jié)構(gòu)4.3數(shù)據(jù)模塊設(shè)計測試用例的每個實現(xiàn)都包括執(zhí)行腳本和輸入數(shù)據(jù)。為了在不修改腳本的情況下執(zhí)行測試用例,需要把測試的最終數(shù)據(jù)與測試腳本分離。測試數(shù)據(jù)存儲在專用文件中以供使用。執(zhí)行測試時,通過函數(shù)數(shù)據(jù)進(jìn)行數(shù)據(jù)讀取。此舉使得自動化測試腳本變得比較容易維護(hù)和重用。4.4日志模塊設(shè)計4.4.1截圖執(zhí)行測試用例腳本的過程中,對于腳本的運行,其速度是非??斓?,當(dāng)同一時間測試大量用例時,某個測試用例執(zhí)行失敗后,測試將會直接跳過執(zhí)行失敗的測試用例,然后繼續(xù)執(zhí)行運行命令中下一條需要執(zhí)行的測試用例,所以沒有特定人員的監(jiān)控情況下要精確的定位問題出現(xiàn)在什么地方是很難的,要查找問題源頭是非常麻煩的。所以需要在測試框架中設(shè)計log日志來記錄執(zhí)行過程,通過log日志就可以很方便的定位出問題所在的地方。4.4.2自定義日志服務(wù)和日志輸出日志服務(wù)可以記錄測試過程中的執(zhí)行情況、測試失敗情況和個人日志信息內(nèi)容,更方便對測試中的最終測試進(jìn)行跟蹤和深入分析。日志記錄服務(wù)可以根據(jù)不同的日志級別編寫個人日志,記錄斷言的判斷結(jié)果。在日志內(nèi)容服務(wù)中,定義了三個級別的日志記錄:Info、Warning和Error。當(dāng)使用不同的日志級別時,記錄中會添加Info、Warning和Error關(guān)鍵字自動劃分日志級別。在測試過程無異常時,默認(rèn)采用Info來記錄日志信息;測試過程異常時采用Error來記錄日志信息。日志內(nèi)容控制輸出:將日志內(nèi)容文件和截圖文件內(nèi)容保存到相應(yīng)路徑。4.5測試報告模塊設(shè)計4.5.1生成測試報告在一個完整的測試腳本執(zhí)行過程中,不管是否成功都要輸出一個明確的測試結(jié)果記錄,以便于對測試用例的通過和未通過用例的分析。輸出結(jié)果針對執(zhí)行過的每一條測試用例,當(dāng)腳本運行出錯后,可以在后臺看到用例報的什么錯,進(jìn)行分析和統(tǒng)計,可以評估出腳本質(zhì)量,檢驗自動化測試框架實際的效果如何。本文引用html_test_runner.py文件來實現(xiàn)生成測試結(jié)果報告功能。4.5.2發(fā)送測試報告本框架在執(zhí)行完用例后,立即將測試報告發(fā)送給選定的其他人員。借助電子郵件服務(wù),以電子郵件的形式發(fā)送測試報告。4.6本章小結(jié)本章主要是對要實現(xiàn)的測試框架進(jìn)行設(shè)計,在整個設(shè)計過程中,分別對每個模塊的作用效果和實現(xiàn)方法都做了一個比較詳細(xì)的介紹。到目前為止對要實現(xiàn)的測框架的各個模塊組成和功能都有了一個比較清晰的架構(gòu)和思路。
第五章自動化測試框架實現(xiàn)5.1開發(fā)工具測試框架的開發(fā)建立在Windows10操作系統(tǒng)上,Pycharm為開發(fā)平臺,Python為編程語言,以Chrome作為執(zhí)行測試用例的瀏覽器,以Selenium2為基礎(chǔ)框架。具體如表5-1所示。表5-1開發(fā)環(huán)境及工具開發(fā)環(huán)境及工具具體產(chǎn)品操作系統(tǒng)Windows10開發(fā)平臺Pycharm編程語言Python執(zhí)行測試用例瀏覽器Chrome集成框架Selenium2驅(qū)動Chromedriver5.2測試框架方案實現(xiàn)測試框架是在Pycharm平臺上基于Selenium+Python開發(fā)的。整個框架可以分為7個部分:配置文件、日志、測試數(shù)據(jù)、驅(qū)動、測試業(yè)務(wù)、測試報告、代碼啟動入口。測試框架如圖5-1所示。(1)配置文件配置文件包括兩個部分:config.ini中主要瀏覽器的參數(shù)、測試URL、郵件發(fā)送相關(guān)參數(shù)等的設(shè)置。globalparameter.py配置文件中設(shè)置了各個文件的存儲路徑。(2)日志此目錄用于存放腳本執(zhí)行過程中生成的日志。日志的封裝是在測試業(yè)務(wù)模塊下的公共類封裝下實現(xiàn)。(3)測試數(shù)據(jù)此模塊主要用于存放測試用例的數(shù)據(jù)。(4)瀏覽器驅(qū)動此模塊用于存放瀏覽器驅(qū)動。(5)測試業(yè)務(wù)此目錄下分為三個子目錄:公共類封裝、各個頁面類封裝、測試用例集。公共類封裝包括以下文件:html_test_runner.py#用于生成測試結(jié)果報告;browser_engine.py#用于封裝瀏覽器相關(guān)操作的;base_page.py#頁面基類,封裝所有頁面公共的方法;log.py#log類封裝,用于日志文件輸出;send_email#發(fā)送郵件。各個頁面類封裝用于封裝各個頁面類。測試用例集用于編寫測試用例腳本。(6)測試報告此模塊用于存放腳本運行完畢自動生成的測試結(jié)果報告。(7)代碼啟動入口此模塊用于整個測試框架的腳本啟動。圖5-1測試框架結(jié)構(gòu)5.3測試業(yè)務(wù)模塊實現(xiàn)5.3.1公共類封裝base_page.py#頁面基類,封裝所有頁面公共的方法,比如:對瀏覽器的前進(jìn)和后退操作進(jìn)行封裝、對瀏覽器的當(dāng)前窗口進(jìn)行關(guān)閉的方法封裝、以及對瀏覽器頁面的元素查找設(shè)置隱式等待時間的方法封裝等等。(1)瀏覽器的前進(jìn)和后退操作、關(guān)閉瀏覽器打開的當(dāng)前窗口、設(shè)置查找元素的隱式等待時間的代碼實現(xiàn)如圖5-2所示。圖5-2頁面基本操作封裝(2)切換到新窗口、8大元素定位方法的封裝、輸入框、清除文本的代碼實現(xiàn)如圖5-3所示。圖5-3頁面元素定位及基本操作封裝selenium框架之八大元素定位介紹,如表5-2表5-2八大元素定位定位方法語法描述idfind_element_by_id()通過id屬性定位namefind_element_by_name()通過name屬性定位class_namefind_element_by_class_name()通過class屬性定位tagnamefind_element_by_tag_name()通過tag標(biāo)簽定位link_textfind_element_by_link_text()通過鏈接定位partial_link_textfind_element_by_partial_link_text()通過超鏈接定位xpathfind_element_by_xpath()通過路徑定位css_selectorfind_element_by_css_selector()通過選擇器定位(3)點擊元素、獲取URL標(biāo)簽、獲取警示框、獲取等待時間的代碼實現(xiàn)如圖5-4所示。圖5-4頁面基本操作和信息獲取封裝瀏覽器封裝模塊,主要是實現(xiàn)打開和關(guān)閉不同瀏覽器的方法,對瀏覽器的一些基本操作進(jìn)行封裝后,在需要使用這些封裝的方法時,直接調(diào)用即可。在test下新建python文件,自定義BrowserEngine類,實現(xiàn)對瀏覽器基本操作模塊的封裝,代碼如圖5-5所示。圖5-5瀏覽器封裝5.3.2頁面類封裝各個頁面的腳本分開寫,在此展示登錄頁面元素類的封裝,在page_obj目錄下新建一個login_page.py文件,用于實現(xiàn)登陸頁面元素定位和相應(yīng)元素操作方法的封裝,實現(xiàn)代碼如圖5-6所示。圖5-6頁面類封裝5.3.3測試用例管理模塊實現(xiàn)分頁面實現(xiàn),登錄頁面就寫登錄頁面的用例,首頁寫首頁的用例,如圖5-7所示。圖5-7測試用例腳本結(jié)構(gòu)再此展示登錄頁面用例實現(xiàn),代碼如圖5-8所示。圖5-8登錄頁面的測試用例腳本具體實現(xiàn)5.4數(shù)據(jù)模塊實現(xiàn)在頁面類封裝的login_page.py文件中引入第三方的Xlrd模塊,用于讀取Excel文件中的數(shù)據(jù),在編寫login_page.py前,需要先將相應(yīng)數(shù)據(jù)寫到對應(yīng)的Excel表中,即測試數(shù)據(jù)和腳本相互獨立,如果測試過程中數(shù)據(jù)發(fā)生了變化,只需要修改Excel中的數(shù)據(jù)即可,不修改代碼。在路徑data下新建Excle文件:cases.xls,sheet名為:login,登錄數(shù)據(jù)示例如5-9所示。圖5-9登錄頁面的測試用例輸入數(shù)據(jù)其他模塊進(jìn)行讀取數(shù)據(jù)操作即可。5.5日志模塊實現(xiàn)5.5.1截圖在公共類封裝模塊寫入函數(shù)img_screenshot(),當(dāng)運行過程中遇到測試用例失敗的情況下調(diào)用該函數(shù),對其進(jìn)行具體,并將截圖保存下來,方便最后進(jìn)行測試結(jié)果分析和找出錯誤出現(xiàn)的地方。代碼如圖5-10所示。圖5-10截圖功能封裝5.5.2自定義日志服務(wù)日志服務(wù)主要收集日志信息,以方便后面如果需要排查用例失敗的原因及錯誤定位。代碼實現(xiàn)如圖5-11所示。圖5-11日志類封裝5.6測試報告模塊實現(xiàn)引用html_test_runner.py文件來實現(xiàn)測試報告生成,實現(xiàn)代碼如圖5-12所示。圖5-12調(diào)用第三方庫生成測試報告5.7本章小結(jié)本章主要內(nèi)容是測試框架的實現(xiàn)過程和實現(xiàn)方式,在實現(xiàn)測試框架的過程中,先后對公共基類、頁面類進(jìn)行封裝,放到一個基本類下面,方便其他模塊進(jìn)行調(diào)用。如何就是日志和郵件發(fā)送的腳本編寫,以及測試用例的腳本編寫。從整個框架的設(shè)計到實現(xiàn),目前只是做出來了一個比較簡單的測試框架,還有很多需要優(yōu)化的地方,比如頁面基類中還需要補充更多的公共方法。
第六章應(yīng)用實踐6.1搭建測試環(huán)境安裝Python、Pip、Chrome、Pycharm、Selenium等軟件,導(dǎo)入標(biāo)準(zhǔn)庫或第三方庫Unittest、Smtplib、Xlrd、Logging、Webdriver、Configparser等等。6.2測試執(zhí)行運行代碼啟動文件,執(zhí)行測試用例,本文用校友邦的登錄頁面作為例子進(jìn)行展示,如圖6-1和圖6-2所示。腳本會自動打開網(wǎng)頁,并讀取Data里面的數(shù)據(jù),先清空輸入框,在輸入讀取的數(shù)據(jù),最后關(guān)閉瀏覽器,之后開始循環(huán),直到測試用例執(zhí)行完畢,才會停止運行。并產(chǎn)生日志和測試報告。圖6-1正確用例驗證登錄圖6-2錯誤用例驗證登錄6.3測試報告測試報告展示頁面主要包括開始執(zhí)行時間、執(zhí)行總耗時、測試通過、失敗用例數(shù),以及用例詳情。展示效果如圖6-3所示。圖6-3測試報告報告詳情展示,如圖6-4所示。圖6-4測試報告詳情展示通過測試報告,會發(fā)現(xiàn),測試速度是很快的,8條用例只用了一小會的時間就可以完成。如果用手工進(jìn)行測試的話,8條用例最少都要用幾分鐘以上,而且人工測試一直重復(fù)的做一件事是比較浪費資源的。所有說,用自動化測試代替一些重復(fù)的、枯燥的手工測試,是一個很有必要的事件。6.4本章小結(jié)本章主要介紹用實現(xiàn)的自動化測試框架在真實的測試場景中的驗證,測試框架達(dá)到了預(yù)期的要求,日志和測試報告都與設(shè)計一致。同時介紹了測試框架環(huán)境部署需要用到的工具,并對測試報告進(jìn)行了分析。
第七章總結(jié)與展望7.1總結(jié)本課題主要實現(xiàn)的是基于Selenium+Python的自動化測試框架,可以支持Web應(yīng)用程序的自動化測試。通過該框架的公共類和頁面基類的封裝,可以根據(jù)不同的場景進(jìn)行不同的腳本組裝來完成不同場景的自動化測試。該框架可以支持瀏覽器的兼容性測試。同時該框架還支持日志輸出,查看日志可以提高故障排除的效率。以及該框架支持在測試完畢后自動生成自動化測試結(jié)果報告,并可以將報告發(fā)送給配置文件中指定的人員,收到測試結(jié)果報告的人可以通過報告直觀的了解到測試的執(zhí)行結(jié)果。7.2后續(xù)研究展望本課題實現(xiàn)的框架還是很淺顯初級的測試框架。因此在此框架中還可以進(jìn)行多方面的擴(kuò)展??梢砸源丝蚣転榛A(chǔ)進(jìn)行進(jìn)一步的研究,比如在此框架的基礎(chǔ)上進(jìn)行編譯,使其去執(zhí)行一個完整的項目,而不是一個項目中是部分模塊,看最終的執(zhí)行結(jié)果是否有執(zhí)行一部分模塊的執(zhí)行結(jié)果一樣理想,如若不是,需要找出原因進(jìn)行優(yōu)化。此測試框架對于數(shù)據(jù)的管理是不成熟的,在整個框架中也看不出明顯的功能效率,需要在后續(xù)研究中對其進(jìn)行一個深入的挖掘和實現(xiàn)。同時,此框架的測試報告生成是引用的第三方庫來實現(xiàn)的,期望在后續(xù)的研究中可以自己定義測試報告的模板和展示情況。7.3本章小結(jié)本章主要是對實現(xiàn)的測試框架及其功能進(jìn)行一個總結(jié),以及對該測試框架實現(xiàn)的功能進(jìn)行一個簡短的介紹。同時對自動化測試框架的研究在未來的優(yōu)化和發(fā)展趨勢做一個展望總結(jié)。參考文獻(xiàn)[1]馮晶晶.基于Selenium的Web自動化框架的設(shè)計與實現(xiàn)[D].北京工業(yè)大學(xué),2018.[2]王艷梅.基于Selenium的Web應(yīng)用測試框架的開發(fā)[D],上海交通大學(xué)軟件學(xué)院,2013-06[3]王光源.Web應(yīng)用的自動化測試[D].山東大學(xué),2006.[4]秦海光.基于Selenium自動化測試框架的改進(jìn)與應(yīng)用[D],中國科學(xué)院大學(xué)(工程管理與信息技術(shù)學(xué)院),2014.[5]鄧青華.軟件自動化測試分析[J].軟件導(dǎo)刊.2011.[6]蟲師.Selenium2自動化測實戰(zhàn)-基于Python語言[M],北京,電子工業(yè)出版社,2016:12.[7]但凝云.基于Selenium的自動化框架的設(shè)計與實現(xiàn)[D],云南師范大學(xué),2016.[8]王聰穎.基于Python的自動化測試框架的分析與設(shè)計,北京郵電大學(xué),2017-05-04.[9]洪芳.基于Selenium2的WebUI自動化測試框架的設(shè)計與實現(xiàn)[D],西南交通大學(xué),2017.[10]辛慶.基于Selenium的WebUI自動化測試[D],華南理工大學(xué)碩士論文,2012-12.[11]羅明宇.基于Selenium的安全自動測試技術(shù)的研究與實現(xiàn)[D],廣東工業(yè)大學(xué),2015.[12]馬滌非.Selenium在EMGC系統(tǒng)自動化測試過程中的應(yīng)用與研究[D],北京交通大學(xué),2010.[13]洪芳.基于Selenium2的WebUI自動化測試框架的設(shè)計與實現(xiàn)[D],西南交通大學(xué),2017.[14]董永清.基于Web的自動測試框架的設(shè)計與實現(xiàn)[D],北京交通大學(xué),2012.[15]閏文蛟.Web功能自動化測試框架的研究與設(shè)計[D],西安電子科技大學(xué),2015.[16]趙金丹.基于Selenium的Web自動化測試腳本設(shè)計研究[J],科技傳播,2014(1).[17]梁向陽,高麗萍.基于Selenium的Web測試研究與應(yīng)用[D],西安工業(yè)大學(xué),2015.[18]柴旭琴.基于Selenium的Web應(yīng)用性能測試系統(tǒng)設(shè)計與實現(xiàn)[D].西安建筑科技大學(xué),2012.
致謝歲月似白駒過隙。四年的大學(xué)生活已經(jīng)接近尾聲,在東軟四年的大學(xué)生涯學(xué)到了很多,同時也收獲了不少的歡聲笑語。四年來,感謝陪我一路走過來的所有人,因為有你們或多或少的參與,讓我在大學(xué)這四年每天都有所收獲。本人此次的畢業(yè)論文都是在論文指導(dǎo)老師姚庚梅的關(guān)心和耐心指導(dǎo)下完成的,真摯的感謝我的指導(dǎo)老師對我的無私指導(dǎo)和悉心關(guān)懷。從最初的畢業(yè)論文選題到畢業(yè)作品的實施以及論文的寫作,直至畢業(yè)論文的順利完成,我的指導(dǎo)老師也是我的恩師姚庚梅都一直給予我最大耐心來幫助我完成畢業(yè)作品和論文,在此謹(jǐn)向恩師姚庚梅老師致以最真摯的感謝和崇高的敬意。同時感謝的我企業(yè)導(dǎo)師宋旺發(fā)的大力支持,無論是在課題研究還是工作中,都給予了我非常的大的幫助和指導(dǎo),課題研究的順利完成,離不開導(dǎo)師對我的支持。感謝在畢業(yè)作品和論文編寫期間給予我?guī)椭凸膭畹耐瑢W(xué)、朋友和同事,被大家互相學(xué)習(xí)互相幫助的精神所感動。最后要特別感謝家人在精神上給予我的極大的支持和鼓勵,順利地完成大學(xué)學(xué)業(yè),并有信心更好地對待未來的學(xué)業(yè)、生活和工作。
HYPERLINK如何選擇組裝電腦配件
如何選擇組裝的電腦配件.
第一,選擇好CPU平臺,就是INTER還是AMD,看你是要配什么樣的電腦,高端還是低端的,兩個平臺都高低的產(chǎn)品。第二,選擇主板了,主板的品牌比較多,質(zhì)量,價格也不一,當(dāng)你第一步卻定了,那么主板也就相應(yīng)的卻定下來了,以INTER為例,只可以選擇775接口的主板(早期有478接口的,不推薦),主板的選擇主要有兩種,一是集成顯卡,二是不集成顯卡。集成顯卡的話,就可以省下顯卡的錢,但是對游戲玩家不推薦。那么當(dāng)然是選擇不集成顯卡的主板了,而且最好選擇一線品牌,如華碩,技嘉等。主板里,還有個蕊片組的選擇。關(guān)于蕊片組,各個品牌的主板命名有些不一樣,主流是INTER965,945,915,VIA的KT890,還有NFORCE4,NFORCE5。等。比較難說清楚。最好是選擇INTER的蕊片組,雖然價格會稍高一些。推薦945,技術(shù)比較成熟。第三,顯卡的選擇。顯卡主要還是有兩類品牌,GEFORCE和ATI,兩個品牌有高,中,低的顯卡。顯卡選擇要看你個人喜歡了,預(yù)算充足的話,最好是買中,高端的顯卡。
第四,就是內(nèi)存了,內(nèi)存關(guān)系電腦的穩(wěn)定性。當(dāng)然是要好一點的。買一線品牌的。現(xiàn)在配電腦,主流是DDR667,DDR800DDR1333第五,顯示器的選擇,推薦液晶。如何選擇硬件組裝電腦這是一個老生常談的問題了,這也是一個讓高手們顯示自己硬件功底的問題,同時這還是一個讓很多新手為之焦頭爛額的問題。該怎么配?具體配什么?怎樣配才能盡量減小瓶頸?本文就將從內(nèi)到外,從理論到實踐,為朋友們抽絲剝繭一一道來。
一、CPU
作為一臺電腦最關(guān)鍵的組成部分,CPU確實起著舉足輕重的作用,但體現(xiàn)一臺電腦的綜合速度,并不是僅僅依靠CPU的,常??吹胶芏嘈率謧冊谂潆娔X的時候,把CPU選的很好,但其他的東西諸如內(nèi)存、主板、硬盤等都選的不太理想,好像這臺電腦速度的快慢就體現(xiàn)在CPU速度的快慢上似的。甚至很多著名的品牌機廠商,都推出過類似“P4+256M內(nèi)存”的這種跛腳配置。其實對于一般的家用電腦而言,一個真正會配的高手,是不會把大量的錢花在CPU上的。家用電腦,畢竟不是做密集型科學(xué)計算用的,它講求的是多種媒體的配合工作,講求的是能一邊下載文件、一邊上網(wǎng)瀏覽網(wǎng)頁、一邊聽音樂、一邊還能打開其他的程序,在這種情況下,提升內(nèi)存的容量比提升CPU的主頻對速度的影響要明顯的多?,F(xiàn)今的中國家庭用戶,很多家長對于電腦一竅不通,他們只聽說“奔四”代表著速度快,并不知道整機速度的快慢除了CPU以外,還有很多其他的因素影響著它。但在買電腦的時候,最后做決定并掏錢的人,往往都是這些啥都不懂的家長們,于是就出現(xiàn)了上面的一幕:品牌機廠商為了能有更好的銷路、兼容機裝機店的銷售人員為了能拿到更多的獎金,開始違背良心來配置出這種高主頻處理器、低容量內(nèi)存的跛腳電腦。說嚴(yán)重點,這是屬于對消費者的不負(fù)責(zé)任,是一種商業(yè)欺詐行為!同樣5000元的配置,高手配出來的賽揚,比新手配出來的P4還要快很多,曾經(jīng)有一家全球著名的硬件網(wǎng)站在2003年的時候刊登過一篇關(guān)于配置家用電腦時各硬件占用總預(yù)算百分比的文章,文中很明確的提到了CPU的價錢最好不要超過總預(yù)算的10%-15%,我們雖然不能說他肯定完全正確,但至少人家是通過很多調(diào)查后得出的結(jié)論,有借鑒的理由。反觀現(xiàn)在的很多所謂的“低價奔四電腦”、“3999元買P4品牌機”之類的廣告,我想說的就是:你花了3999元,只買了一塊P4的處理器,其他的什么都沒有了!
二、內(nèi)存
對于配置一臺電腦來說,內(nèi)存是重頭戲,容量、速度、類型等等每一項指標(biāo)都對最終的整機綜合速度起著至關(guān)重要的影響,尤其是內(nèi)存的帶寬和容量。對于內(nèi)存帶寬而言,很多人都認(rèn)為400MHz、533MHz前端總線的賽揚四或P4,配單通道的DDR內(nèi)存就足夠了,雙通道DDR內(nèi)存是配合800MHz以上前端總線的P4處理器用的,其實這樣就大錯特錯了,哪怕是最老的賽揚四,都需要雙通道的DDR內(nèi)存才能達(dá)到它的帶寬!也就是說,你如果選擇賽揚四1.8G,必須配合865以上的主板和至少雙通道DDR200的內(nèi)存,才能滿足它的帶寬要求!稍微計算一下就可以得知:賽揚四1.8G的前端總線是400MHz,它的內(nèi)存帶寬理論值是400MHz×64bit÷8=3.2G/s,但當(dāng)它裝在845系列的主板上時,由于845主板的限制,即使你插上能符合它帶寬要求的DDR400內(nèi)存,也只能運行在DDR266上,這時的內(nèi)存所能提供的帶寬是266MHz×64bit÷8=2.1G/s,比3.2G/s要小很多,即使你通過BIOS里的內(nèi)存調(diào)節(jié)選項往上調(diào)節(jié)一檔(也只能調(diào)節(jié)一檔而已),讓內(nèi)存運行在DDR333下,所能提供的帶寬也僅僅是333MHz×64bit÷8=2.66G/s,離3.2G/s還是有一定的距離,而內(nèi)存帶寬的降低,能非常明顯的降低整機的綜合速度,運行任何程序都能明顯的感覺出來!所以如果想滿足賽揚1.8G處理器的內(nèi)存帶寬要求,你必須要為它配置865以上的主板和雙通道的內(nèi)存才行!P4亦是如此。很多人也許會問:那845系列的主板是配什么處理器的呢?我想回答你的就是:845系列的主板是屬于“不能用”的主板,因為處理器永遠(yuǎn)比主板發(fā)展的快,當(dāng)初Intel造出845系列的芯片組是為了能給當(dāng)時的賽揚和P4提供一個過渡的平臺,不至于讓它們成為“沒有主板配合”的處理器而已,也是為了能在低端市場分一杯羹,而現(xiàn)今865甚至9xx系列的主板橫行的時候,845系列的主板確實是屬于“不能用”的主板了,滿足不了任何一款處理器的內(nèi)存帶寬,造成性能上的嚴(yán)重低下,試問這種主板你會選擇么?即使配臺2000多元的超低價電腦,也不要去選擇845系列的主板,至少需要865以上的和雙通道內(nèi)存才行,因為內(nèi)存帶寬是一個非常影響系統(tǒng)性能的參數(shù),倘若一味的為了省錢而配置845系列的主板,那就得不償失了。
內(nèi)存的容量方面,應(yīng)每個人對電腦的使用方向不同,容量的要求也是不同的,現(xiàn)在配置的家用電腦,筆者建議:如果不打游戲,或者是打打掃雷、紙牌之類的游戲,平時注重于上網(wǎng)瀏覽或者是聊天、看電影之類的應(yīng)用的話,內(nèi)存容量不應(yīng)該低于1G;如果是偶爾打打單機游戲或者是網(wǎng)絡(luò)游戲,內(nèi)存容量應(yīng)該選擇在2G左右,如果是經(jīng)常打大型的游戲或是進(jìn)行HDTV視頻編輯等應(yīng)用,那么4G的內(nèi)存是必不可少的。
三、主板
一臺電腦的穩(wěn)定性和兼容性,一大部分是看主板的,一款優(yōu)秀的主板不僅需要擁有上等的用料和優(yōu)良的做工,還需要擁有合理的走線設(shè)計,那些沒有技術(shù)實力的三、四線主板廠家生產(chǎn)的主板,多數(shù)是采用公版走線,而且用料非常差,穩(wěn)定性不堪一擊,這種類型的主板,筆者建議寧愿不買電腦也不要配這種主板,否則以后將會是個淘氣的祖宗。對于家庭用戶,主板方面一定不能省錢,預(yù)算夠的話最好能買個一線的主板品牌,如果預(yù)算實在不足,二線的主板是底線了,不要再往下選擇了,畢竟家用電腦是用來使用的,不是用來整天維修的。再談到主板的用料,筆者常常看到很多新手在配置主板的時候,貌似老鳥似的說某某品牌的主板好,某某品牌的不好,試問你知道它好在哪里么?不好在哪里么?這個就要看主板的用料了,雖然用料好的主板并不能代表一定是高檔主板,但最少能代表它的電氣性能出色。舉一個很簡單的例子吧:有A、B兩款主板,A主板的處理器供電濾波電容采用的是日系電容,B主板的處理器供電濾波電容采用的是臺系電容,那么基本上可以肯定的是:如果在電源輸出電壓的波動范圍比較大的情況下,A主板就比較能耐得住,而B主板就很容易產(chǎn)生電容鼓包、漏夜等情況。不要小看這小小的電容,筆者從一個開維修店的朋友那里得知,來維修主板的人,有80%的都是這幾個小電容損壞,究其原因,就是電源選擇的不好,導(dǎo)致了輸出電壓的不穩(wěn)定,久而久之最終導(dǎo)致這幾個小電容爆漿,并且詳細(xì)敘述了主板的品牌:“一線廠家的×碩牌主板就很少出現(xiàn)這種情況,但同樣為一線廠家的×星牌主板,經(jīng)常遇到!原因就是前者的大部分主板使用的是日系電容,而后者的大部分主板為了省錢,選用的是臺系電容!”廠家的廣告不能信,宣傳也不能信,看到一個產(chǎn)品的廣告之后,你所能相信的唯一一點就是:地球上有這么個產(chǎn)品的存在!然后其他的就統(tǒng)統(tǒng)都不能信了!網(wǎng)上有好多所謂的“評測”文章,都是槍手寫的,基本上沒有任何參考余地,只能作為一篇小說來讀,一款主板的真正性能,只有你自己使用了之后才能知道。廠家為了銷量、商家為了利潤,他們能把最最垃圾的主板宣傳為最頂級的產(chǎn)品,筆者曾經(jīng)就看到過一款四線品牌的主板廠商,在對其主流主板的廣告上說“最優(yōu)秀的設(shè)計、最精湛的工藝、最穩(wěn)定的性能”……結(jié)果一看報價:550元/塊……其他的話我也不想多說了,只想問問這家廠商:你這么垃圾的主板都用了三個“最”字,那么華碩的同芯片組主板,售價是你三倍的,應(yīng)該用什么詞語來描述了??中國有一句古話:一分錢一分貨,說的非常正確!不要認(rèn)為價格高的主板就是暴利產(chǎn)品,從市場經(jīng)濟(jì)學(xué)上說,暴利產(chǎn)品是不會被市場所接受的,之所以他能存活到今天,而且售價依然是這么高,肯定有他的理由,他在做工用料方面肯定比其他品牌的要好很多,成本高所以售價高,在此,筆者奉勸大家一句:買主板千萬不要憑僥幸心理,認(rèn)為自己能花很少的錢買到很好的東西,只有錯買的沒有錯賣的,商家永遠(yuǎn)都比你精明!主板上面還是老老實實的多花點錢來買個一線產(chǎn)品吧,否則以后有你吃苦的時候!
四、硬盤
現(xiàn)在的電腦,硬盤的速度當(dāng)之無愧的成為了“第一大瓶頸”,無論你是再高的高手,配電腦的時候也無法消除這個瓶頸的存在,我們只有盡量的減小…再減小……。對于家用電腦的硬盤來說,容量和速度是兩個非常重要的參數(shù),容量上而言,筆者建議:如果你的電腦只是上網(wǎng)瀏覽瀏覽、偶爾打打小游戲的,那么160G的硬盤是個不錯的選擇;如果你常常下載軟件或電影,那么250G的硬盤是個不錯的選擇,如果你是個下載狂人,那么400G的硬盤比較適合你;如果你有DV或者是經(jīng)常編輯大型的視頻文件,那么400G×2比較適合你,如果你是個玩HDTV的人,那么恭喜你,400G×4也許你都不夠用。對于硬盤容量上的選擇,你不能考慮現(xiàn)在是否夠用,你應(yīng)該考慮未來的1年里是否夠用,大概的公式是:現(xiàn)在需要的容量×3。也就是說,如果你現(xiàn)在感覺80G的硬盤差不多夠用了,那么你就需要買個250G的硬盤。如果你現(xiàn)在感覺120G的硬盤夠用了,那么就去買個400G的硬盤吧。硬盤另外的一個參數(shù)就是速度,受到內(nèi)部傳輸率等諸多因素的限制,一塊硬盤的實際傳輸速度是不可能達(dá)到它的接口速度的,現(xiàn)在的并口硬盤基本上都是ATA133了,串口硬盤也都是150了,但民用級硬盤的實際傳輸速度最快的也還沒突破66M/s,所以跟內(nèi)存相比,硬盤的速度是電腦中最大的瓶頸,那么怎么來減小這個瓶頸呢?于是人們就發(fā)明了RAID,就是磁盤陣列(當(dāng)然RAID不是僅僅為了這個而發(fā)明的),用兩塊一模一樣的硬盤來組成RAID0,速度理論上能提高1倍,雖然實際上是不可能達(dá)到1倍的,但至少能非常非常明顯的感覺到了硬盤速度的提升,筆者建議:如果你買的主板是帶有RAID功能的,并且你需要保存的數(shù)據(jù)不是很重要的話,那么強烈建議你在預(yù)算允許的情況下購買兩塊硬盤來組建RAID0,這將使你能親身體會到飛機與火車的速度差別!但最好是串口的,如果是并口的話,因為并口走的是PCI總線,由于PCI總線上的設(shè)備比較多,所以速度不可能達(dá)到比較高的地步,但如果是串口的話,那么硬盤的速度提升將更加明顯!
五、顯示器
顯示器方面,筆者想澄清一個觀念:曾經(jīng)聽過非常多的人說液晶顯示器保護(hù)眼睛,因為沒有輻射和閃爍……包括很多業(yè)內(nèi)人士都這么認(rèn)為的,其實錯了,液晶顯示器比普通的CRT還要傷眼睛!因為傷眼睛不僅僅是輻射和閃爍,還有對比度、亮度等參數(shù),雖然液晶顯示器的輻射和閃爍比CRT要小的多,但它那要命的對比度、那要命的色澤度、還有那大于每平方米300cd的亮度,這些都會對眼睛造成很大的傷害,并且你即使將液晶顯示器的亮度和對比度調(diào)節(jié)到最低,也還是非常的刺眼。德國的一家權(quán)威機構(gòu)做過一項調(diào)查:液晶顯示器用久了會使人的眼睛感覺到疲倦,甚至頭痛等癥狀,而使用相同時間的CRT顯示器,卻基本沒有這些情況出現(xiàn)?,F(xiàn)在的通過TCO03認(rèn)證的CRT顯示器,其實外露的輻射已經(jīng)相當(dāng)小了,基本上對人已經(jīng)沒有多大的傷害了,閃爍感也可以通過調(diào)節(jié)刷新率來降低,筆者實在是搞不懂為什么很多人非要去選擇液晶顯示器,還非要說液晶顯示器不傷眼睛??一個最差的17寸液晶顯示器的價格,能買一臺不錯的、通過TCO03標(biāo)準(zhǔn)的19寸CRT了,顯示面積也差不多大,而且CRT又比液晶更保護(hù)眼睛,液晶顯示器唯一的一個優(yōu)點就是占用空間小而已,其他的統(tǒng)統(tǒng)是缺點,為什么不選擇CRT呢??說到TCO03標(biāo)準(zhǔn),現(xiàn)在很多的號稱是通過TCO03認(rèn)證的顯示器,其實都是貼牌的,都沒有真正的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《肺特殊CT征象》課件
- 《電能計量技術(shù)》課件
- 《家具的加工工藝》課件
- 第19課 七七事變與全民族抗戰(zhàn)(解析版)
- 《衛(wèi)生經(jīng)濟(jì)管理系統(tǒng)》課件
- 寒假自習(xí)課 25春初中道德與法治八年級下冊教學(xué)課件 第一單元 大單元整體設(shè)計
- 銀行宣傳推廣總結(jié)
- 《皮膚生理學(xué)》課件
- 素描藝術(shù)探索
- 風(fēng)險監(jiān)測與追蹤培訓(xùn)
- DB63T 2376-2024 餐飲單位有害生物防治技術(shù)指南
- 中考語文名著《西游記》專項復(fù)習(xí):《三調(diào)芭蕉扇》
- 2025新年春節(jié)專用對聯(lián)蛇年春聯(lián)帶橫批
- 【MOOC】融合新聞:通往未來新聞之路-暨南大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年世界職業(yè)院校技能大賽中職組“工程測量組”賽項考試題庫(含答案)
- JGJT46-2024《施工現(xiàn)場臨時用電安全技術(shù)標(biāo)準(zhǔn)》條文解讀
- 半結(jié)構(gòu)化面試題100題
- 靜脈治療小組管理
- 五星級大酒店會議團(tuán)隊接待方案
- 2024屆上海高考語文課內(nèi)古詩文背誦默寫篇目(精校版)
- MOOC 模擬電子技術(shù)基礎(chǔ)-華中科技大學(xué) 中國大學(xué)慕課答案
評論
0/150
提交評論