基于Selenium Python的自動化測試框架的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于Selenium Python的自動化測試框架的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于Selenium Python的自動化測試框架的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于Selenium Python的自動化測試框架的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于Selenium Python的自動化測試框架的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(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)建一套適合自我測試的工具或框架,滿足實(shí)際需求的自動化測試框架是每個(gè)研究自動化測試或自動化測試的工作者需要考慮和解決的問題。本文主要是利用軟件測試知識、自動化測試相關(guān)教程和自動化測試框架理論,在結(jié)合對當(dāng)前市場上流行的自動化測試工具的分析結(jié)果,使用高效、簡潔、靈活的Python語言去實(shí)現(xiàn)一款基于Selenium+Python的自動化測試框架,該框架的測試對象主要是功能測試。在使用該測試框架過程中,需要提高測試腳本的維護(hù)性、復(fù)用性和擴(kuò)展性,有利于實(shí)現(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ā)展,這就使得測試工作者更加的需要實(shí)力,所有對于自動化測試這一領(lǐng)域是一定需要涉及的,不光如此,自動化測試其本身也是很有價(jià)值的。引入自動測試可以在不同程度上提高整個(gè)項(xiàng)目的測試效率,與手工測試一起保證軟件產(chǎn)品的高質(zhì)量。身處這個(gè)互聯(lián)網(wǎng)行業(yè)發(fā)展迅速的時(shí)代,對測試人員來說,隨著技術(shù)的不斷更新,是需要不斷提升個(gè)人的核心競爭力,以期待符合企業(yè)用人需求和對自動化、性能、接口測試的硬性要求,以及對編碼、數(shù)據(jù)庫、服務(wù)器等綜合應(yīng)用需求??偟膩碚f,于這個(gè)時(shí)代軟件、互聯(lián)網(wǎng)行業(yè)的工作者來說,特別是測試工作者,對于自動化測試的學(xué)習(xí)和運(yùn)用是一個(gè)提升能力的途徑?,F(xiàn)如今可以輔助進(jìn)行自動化測試的工具有很多,有商業(yè)化的,有開源性質(zhì)的。其中Selenium就屬于開源的,可以很好的用于學(xué)習(xí)。自動化測試在一個(gè)版本周期比較長且主要功能業(yè)務(wù)改變的可能性不大的項(xiàng)目中是非常有存在意義的。在這樣的項(xiàng)目中,首先,枯燥、重復(fù)的手工操作可以進(jìn)行腳本化,用于避免人為因素影響測試的進(jìn)展及質(zhì)量,可以解放部分時(shí)間。其次,對于一些軟件,比如其功能比較全面、整體框架比較穩(wěn)定,進(jìn)行新版本發(fā)布時(shí),這些軟件的整體頁面及其整體功能變化不大。類似這樣的軟件迭代就比較適合用自動化測試框架進(jìn)行測試,可以提高軟件的可信度。再次,它可以更好地利用資源,如工作日的晚上和每周的周末,可以用自動化測試來代替人工測試,使公司的資源可以被充分利用起來。最后,在版本快速迭代的過程中,自動化測試的目的是為了保證產(chǎn)品的質(zhì)量,而不是發(fā)現(xiàn)更多的Bug,多數(shù)的Bug還是需要手工測試才會暴露出來。本畢業(yè)論文主要是利用軟件測試知識、自動化測試相關(guān)教程和自動化測試框架理論,在結(jié)合對當(dāng)前市場上流行的自動化測試工具的分析結(jié)果,使用高效、簡潔、靈活的Python語言去實(shí)現(xiàn)一款基于Selenium+Python的自動化測試框架,框架以功能測試為主。在使用該測試框架過程中,需要提高測試腳本的維護(hù)性、復(fù)用性和擴(kuò)展性,有利于實(shí)現(xiàn)減少測試成本的消耗、提高測試效率和執(zhí)行速度和保證其測試的產(chǎn)品的質(zhì)量。1.2國內(nèi)外研究現(xiàn)狀本文研究基于Selenium+Python的自動化測試框架,在此也段落分別介紹Selenium、Python以及自動化測試的現(xiàn)今的發(fā)展及其歷史起源。Selenium是ThoughtWorks測試團(tuán)隊(duì)開發(fā)的。最初,它只是一個(gè)名為JavaScriptrunner的簡單測試工具,由JasonHuggins在2004年編寫。在后來的一系列發(fā)展中,逐漸成為了現(xiàn)在這樣的一個(gè)開源、免費(fèi)、獨(dú)立的自動化測試工具。出色的多語言開發(fā)特性、跨平臺、跨瀏覽器的工作兼容性使得Selenium獲得了許多研發(fā)團(tuán)隊(duì)的青睞[1]。1991年,出現(xiàn)python編譯器。自從Python編譯器出現(xiàn)以來,Python已經(jīng)有了核心數(shù)據(jù)類型,如類、函數(shù)、異常處理機(jī)制、表、字典和基于模塊的擴(kuò)展系統(tǒng)。Python的發(fā)展主要由Guido和他的團(tuán)隊(duì)以及社區(qū)進(jìn)行推動的。在Python2.0版本之后,Python的開發(fā)方法是完全開源的。到現(xiàn)在,Python已經(jīng)擁有了一個(gè)穩(wěn)定的框架。Python是一種編程語言,它圍繞對象組織代碼,支持多種編程模式,并自動回收內(nèi)存。Python的標(biāo)準(zhǔn)庫(BatteryIncluded)非常強(qiáng)大和穩(wěn)定。正因?yàn)槿绱?,Python已經(jīng)開始擴(kuò)展第三方包。Python一直是一種美麗、清晰、簡單的語言,因而被廣泛使用。第一代自動化測試通過硬件記錄鍵盤輸入,然后回放。其測試腳本的維護(hù)是非常非常不容易的。第二代自動化測試已經(jīng)從硬件轉(zhuǎn)換為通過軟件錄制/播放生成自動化的測試腳本,同時(shí)增加了檢查點(diǎn)功能對軟件進(jìn)行自動化測試是否正確進(jìn)行驗(yàn)證,自動化測試的整體范圍比前身的范圍要擴(kuò)大了很多[2]。第三代開始逐漸被稱為測試框架,其功能是將腳本進(jìn)行抽象化,使理解不了測試腳本源代碼、完全不會編寫測試腳本的人也會使用該工具來完成測試。第四代MercuryBusinessProcessTesting:關(guān)注的是業(yè)務(wù)需求。1.3研究目標(biāo)與內(nèi)容本文利用所學(xué)的軟件測試基礎(chǔ)知識、自動化測試相關(guān)教程和自動化測試框架理論,在綜合分析當(dāng)前市場流行的自動化測試工具,實(shí)現(xiàn)一個(gè)基于Selenium+Python的自動化測試框架,該框架側(cè)重于功能測試。在使用過程中,有必要提高測試腳本的可維護(hù)性、可重用性和可擴(kuò)展性,從而降低自動化測試的成本,提高自動化測試的測試執(zhí)行效率,以到達(dá)保證軟件的整體質(zhì)量的目的。本篇論文的主要研究內(nèi)容如下:(1)研究和分析軟件測試的基礎(chǔ)知識、自動化測試的相關(guān)技術(shù)和自動化測試框架技術(shù)。本文分析了當(dāng)前市場上流行的自動化測試工具,介紹了Selenium自動化測試系列工具及其特點(diǎn),分析了Selenium自動化測試的工作原理和實(shí)現(xiàn)機(jī)制。(2)結(jié)合測試?yán)碚撆c實(shí)際測試需求,分析并定義基于Selenium+Python的自動化測試框架的功能和非功能需求。(3)根據(jù)分析出來的需求點(diǎn),設(shè)計(jì)和實(shí)現(xiàn)基于Selenium+Python的易于維護(hù)、易于擴(kuò)展、可復(fù)用的自動化測試框架,以實(shí)現(xiàn)Web應(yīng)用程序功能的自動化測試。(4)應(yīng)用與實(shí)踐。以校友邦為測試對象,設(shè)計(jì)一些測試用例,通過實(shí)現(xiàn)的框架進(jìn)行腳本執(zhí)行,并對自動化測試生成的測試結(jié)果報(bào)告進(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è)計(jì):對基于Selenium+Python的自動化測試框架的總體架構(gòu)進(jìn)行設(shè)計(jì),然后對框架涉及的所有功能和需要用到的測試輸入數(shù)據(jù)進(jìn)行設(shè)計(jì)。第五章自動化測試框架實(shí)現(xiàn):實(shí)現(xiàn)基于Selenium+Python的自動化測試框架,包括開發(fā)環(huán)境的搭建以及各個(gè)功能和數(shù)據(jù)的具體實(shí)現(xiàn)。第六章應(yīng)用實(shí)踐:介紹基于Selenium+Python的自動化測試框架在真實(shí)項(xiàng)目中的運(yùn)用,以及對測試結(jié)果報(bào)告進(jìn)行簡要分析。第七章總結(jié)與展望:對實(shí)現(xiàn)的測試框架其成果進(jìn)行總結(jié),以及對未來的展望。1.5本章小結(jié)本章是對自動化測試的研究背景和意義進(jìn)行一個(gè)簡要的概述說明,對本課題的研究內(nèi)容和自動化測試在國內(nèi)外的現(xiàn)狀進(jìn)行一個(gè)總的綜述。同時(shí)對本課題進(jìn)行一個(gè)綱要介紹。

第二章自動化測試技術(shù)研究2.1軟件自動化測試概念研究2.1.1自動化測試定義自動化測試(AutomatedTest)是把機(jī)器執(zhí)行測試代替手工測試的一種過程,即通過執(zhí)行編寫的自動化程序腳本來模擬手工測試的過程[2]。根據(jù)需要,自動化測試可以包括所有的測試階段,支持跨平臺,并且與進(jìn)程沒有關(guān)系。通常情況下,進(jìn)行軟件測試,都是先進(jìn)行理解需求,在進(jìn)行需求評審,評審?fù)ㄟ^后,開始編寫自動化測試的整體測試計(jì)劃、和用于自動化測試的測試用例編寫,然后在通過自動化測試用例評審會議,評審會議通過后,測試人員才會正式的進(jìn)行測試,前面的步驟只是介入測試和對正式執(zhí)行測試的一些準(zhǔn)備工作。當(dāng)進(jìn)入執(zhí)行測試階段時(shí),測試人員需要根據(jù)測試用例對被測系統(tǒng)進(jìn)行測試,測試完成后,將分析測試結(jié)果并將其與預(yù)期結(jié)果進(jìn)行比較,如果測試用例與預(yù)期相同,則判斷為通過,需要將其按照正常的Bug提交流程提交到項(xiàng)目管理工具中,方便于項(xiàng)目開發(fā)人員進(jìn)行Bug的修復(fù)。在這個(gè)樣的手工測試過程中是一個(gè)耗時(shí)耗力的工作,如此操作雖然對測試的質(zhì)量有很高的保證,但它同時(shí)對人力、物力以及一些資源造成了浪費(fèi)。因此,為了節(jié)省各種資源(包括人力、物力、時(shí)間、硬件),提高測試執(zhí)行效率和測試的質(zhì)量,以及不脫軌于國家計(jì)算機(jī)信息化的發(fā)展,緊跟軟件的迭代速度,自動化測試注入軟件行業(yè)是一個(gè)必然事件。自動化測試現(xiàn)在運(yùn)用得比較多的三個(gè)地方是單元測試、接口測試,界面測試。單元自動化測試是軟件的數(shù)據(jù)處理層,是系統(tǒng)中可檢測和驗(yàn)證的最小模塊,在很大程度上,它將依賴于一些自動化測試的基本框架,例如JUnit,TestNG,Python的Unittest等;接口自動化測試是各種軟件的另一個(gè)基本業(yè)務(wù)邏輯層,它直接用于全面檢查和驗(yàn)證各種軟件模塊的初始化參數(shù)和返回?cái)?shù)據(jù),以及與系統(tǒng)和服務(wù)之間的數(shù)據(jù)交換。常用的接口測試工具包括Postman(非常簡單,操作簡單,免費(fèi)享受)、JMeter(開源社區(qū),基本功能非常強(qiáng)大,免費(fèi)享受)、LoadRunner(付費(fèi)購買)等;UI自動化測試是對各種軟件應(yīng)用程序界面層進(jìn)行測試。測試中的其他大部分工作都相對集中在這里,因?yàn)橛脩艋径际桥c這一層進(jìn)行交互,常見的測試工具有Robotframework、Selenium、Appium等等工具。2.1.2自動化測試過程在當(dāng)下,進(jìn)行一個(gè)項(xiàng)目的開發(fā),測試與開發(fā)是并行的,都會同時(shí)介入項(xiàng)目,只是側(cè)重點(diǎn)不一致。自動化測試也是測試,從本質(zhì)上來進(jìn)與手工測試沒什么不同,都是用于軟件測試質(zhì)量保證,只不過自動化技術(shù)的測試是利用自動化測試技術(shù)相關(guān)工具和代碼自動構(gòu)造輸入,并自動檢查結(jié)果的連續(xù)輸出是否可以滿足期望,手動測試要求執(zhí)行測試的人員自己執(zhí)行所有測試。利用自動化技術(shù)進(jìn)行自動化測試需要制定最終測試計(jì)劃,深入分析測試的實(shí)際需求,并對用戶需求進(jìn)行評審,然后設(shè)計(jì)用于測試人員手動進(jìn)行測試的測試用例,在其中挑選出一些手工測試用例轉(zhuǎn)換為自動化測試用例,完成用例評審,根據(jù)需求,選取相應(yīng)的工具進(jìn)行搭建自動化測試的框架,框架搭建完畢就可以開始編寫自動化測試過程中需要的腳本,在使用的測試腳本都編寫完成并成功調(diào)試通過后,進(jìn)行腳本執(zhí)行然后生成自動化測試結(jié)果分析報(bào)告,并根據(jù)最終測試正式報(bào)告對最終測試的最終結(jié)果進(jìn)行分析,并完整記錄測試中的核心問題,追蹤Bug,進(jìn)行回歸測試、執(zhí)行測試腳本,根據(jù)實(shí)際情況結(jié)束測試,如圖2-1。這基本就是一個(gè)完整的自動化測試完成流程。當(dāng)然,用于執(zhí)行自動化的自動化測試腳本是需要持續(xù)改進(jìn)和優(yōu)化的,這樣做的目的是希望提高自動化測試腳本的可維護(hù)性、復(fù)用性和擴(kuò)展性,有利于實(shí)現(xiàn)減少測試成本的消耗、提高測試執(zhí)行的效率和保證軟件質(zhì)量的目的。圖2-SEQ圖\*ARABIC1自動化測試基本流程(1)測試計(jì)劃制定測試之前,制定一個(gè)總體方案(測試計(jì)劃),在整個(gè)計(jì)劃中必須寫清楚測試的對象和目的、自動化測試的具體測試內(nèi)容和具體會用到的測試方法、測試進(jìn)度的詳細(xì)計(jì)劃和安排、測試所需的人力物力準(zhǔn)備等。一個(gè)好的測試計(jì)劃可以很好的指導(dǎo)整個(gè)測試過程。(2)對進(jìn)行自動化測試進(jìn)行需求分析當(dāng)被測系統(tǒng)滿足其整體需求的變化不會很頻繁,項(xiàng)目周期持續(xù)時(shí)間長、有生命力,最終的測試數(shù)據(jù)是全面的,并且用于自動化測試的測試用例和腳本的可重用性和可移植性非常強(qiáng),并且被測試系統(tǒng)開發(fā)具有標(biāo)準(zhǔn)化和可測試性。當(dāng)公司本身具有自動化設(shè)備最終測試的相關(guān)前提條件和高質(zhì)量資源時(shí),此時(shí)就可以分析自動化測試的內(nèi)容以及更多需求。在此過程中,有必要定義自動測試的覆蓋范圍,測試用例和測試要使用的數(shù)據(jù),并將其整理成文檔,方便后續(xù)使用。(3)設(shè)計(jì)用于自動化測試的用例深入分析需求,然后設(shè)計(jì)可用的用例,設(shè)計(jì)用例需要注意其設(shè)計(jì)的測試用例是否覆蓋了分析出來的所有的需求點(diǎn),如若無誤,則可以將其整理為測試用例文檔。當(dāng)然,并不是所有設(shè)計(jì)出來的用例都適合用于自動化測試的事實(shí),有必要從詳細(xì)設(shè)計(jì)的用例中選擇適合于自動化測試的用例,并將其轉(zhuǎn)化為自動化測試用例腳本。在條件允許的情況下,建議把一些參數(shù)信息(如:登錄、注冊界面的用戶、密碼等數(shù)據(jù))獨(dú)立出來,形成一份測試數(shù)據(jù),寫入Excel,并將其放到實(shí)現(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)試到腳本運(yùn)行正常不會出錯為止。在腳本的編寫以及對其進(jìn)行命名時(shí)都需要注意其是否要符合規(guī)范,以方便進(jìn)行統(tǒng)一的管理和維護(hù)。(5)運(yùn)行腳本,即執(zhí)行測試在此過程中會生成日志,也會有相應(yīng)的問題記錄截圖和測試報(bào)告生成。需要分析其結(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)計(jì)模塊中的一個(gè)或多個(gè)組合而成[3,4,9]。下面具體介紹幾個(gè)常見的測試框架類型。(1)模塊化測試框架。其優(yōu)點(diǎn)是將測試腳本按照應(yīng)用程序的功能模塊進(jìn)行封裝。當(dāng)需要修改某個(gè)模塊的時(shí)候,不會影響其他模塊,提高腳本的獨(dú)立性和可維護(hù)性。各個(gè)模塊可以進(jìn)行組裝或者被其他框架引用,提高腳本的復(fù)用性和拓展性。(2)關(guān)鍵字驅(qū)動框架。自身存在一個(gè)底層的關(guān)鍵字處理邏輯,用戶通過輸入合法的關(guān)鍵字就可以驅(qū)動測試任務(wù)的執(zhí)行,是后期維護(hù)工作最小的自動化測試框架。但此框架很難進(jìn)行調(diào)試,因?yàn)樗褂脴?biāo)準(zhǔn)的外部數(shù)據(jù)源(如Excel數(shù)據(jù)表)讀取信息腳本中的關(guān)鍵字。(3)測試庫框架。測試庫驅(qū)動是實(shí)現(xiàn)腳本和測試數(shù)據(jù)有內(nèi)在邏輯的分離[5],這種分離與模塊化框架的分離不同,它是按預(yù)設(shè)在工程中的許多個(gè)性方法并引用這些方法以完成測試任務(wù)的框架。優(yōu)點(diǎn)是腳本復(fù)用率高、后期維護(hù)量小。(4)數(shù)據(jù)驅(qū)動框架。數(shù)據(jù)驅(qū)動框架的基本思想是將最終測試數(shù)據(jù)與最終測試腳本分離,將數(shù)據(jù)文件放在外部的儲存空間中,需要時(shí)再引入即可。其優(yōu)點(diǎn)是數(shù)據(jù)與腳本是分離的其可維護(hù)性提高。(5)混合測試框架。理論上,上述的框架都可以單獨(dú)運(yùn)行測試,但在現(xiàn)實(shí)的中問題多是復(fù)雜而多樣的,單個(gè)測試框架完成測試很難覆蓋全面,所以將以上四種測試框架實(shí)行按需組合形成混合框架,是比較完美的解決措施。混合測試框架雖然其維護(hù)工作量大于單個(gè)框架,但其實(shí)用性也是最高的。2.2軟件自動化測試框架研究2.2.1主流自動化測試框架研究Robot框架是基于Python語言結(jié)構(gòu)的開源項(xiàng)目。它是關(guān)鍵字驅(qū)動的,有許多的測試庫。使用SeleniumWebDriver時(shí),它支持系統(tǒng)中Web應(yīng)用程序的自動化測試;當(dāng)使用Appnium時(shí),它支持移動應(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è)計(jì)原則研究(1)最終測試框架和被測試項(xiàng)目需要相互獨(dú)立。大部分企業(yè)只有開發(fā)一個(gè)測試框架的精力,而被測試的項(xiàng)目則是多種多樣的,這樣就只能要求測試框架有能力去測試這些項(xiàng)目中的共同部分,而其他部分采用人工檢測[5]。(2)編寫測試框架腳本時(shí),應(yīng)遵守開發(fā)代碼所要求的可靠性、可擴(kuò)展性、可維護(hù)性、健壯性等原則,特別注意的是盡量使各個(gè)部分都相對獨(dú)立方便后期修改和維護(hù)。(3)測試腳本語言與框架編程語言相適應(yīng)原則。腳本測試語言需要由測試項(xiàng)目的具體特征確定,這樣才能避免測試項(xiàng)目遷移的導(dǎo)致大量需重寫的麻煩。2.3軟件自動化測試工具研究2.3.1自動化測試工具分類研究隨著電子科技的不斷進(jìn)步人們對軟件自動化檢測的需求越來越大,各類自動化測試工具應(yīng)運(yùn)而生,盡管功能與種類繁多但根據(jù)測試方法的不同可分為黑盒自動化測試工具、白盒自動化測試工具和測試管理工具[6]。自動化測試的工具,大多數(shù)基本來自于MercuryInteractive(MI)、Segue、IBM/Rational、Compuware和Empirix等公司,其中占主流的自動化測試軟件來至于MI公司。常見的用于黑盒測試的自動化測試工具,如表2-1所示。表2-1用于黑盒測試的自動化工具工具支持語言簡介RobotframeworkPython/Java開源軟件,支持關(guān)鍵字驅(qū)動,可以實(shí)現(xiàn)驗(yàn)收測試以及驅(qū)動開發(fā)和在短時(shí)間內(nèi)完成關(guān)鍵字以及測試用例的編寫,對測試自動化人員的編程能力要求較高。WinRunnerJava其主要功能是用于檢驗(yàn)被測系統(tǒng)或軟件程序是否如期運(yùn)行。LoadRunnerJava該工具主要是通過模擬實(shí)際用戶在系統(tǒng)使用過程中的操作行為和對實(shí)時(shí)性能進(jìn)行監(jiān)測,從而查找和發(fā)現(xiàn)問題出現(xiàn)位置和方式,并預(yù)測系統(tǒng)行為進(jìn)行系統(tǒng)性能優(yōu)化。QuickTestProfessionalVB該工具適合功能、回歸測試,可以根據(jù)錄播進(jìn)行自動捕獲、驗(yàn)證和重放用戶的交互行為,有助于提高自動化開發(fā)效率Selenium支持多種語言開源軟件,可擴(kuò)展性強(qiáng),比較靈活,支持各種語言,可以集成到很多的開發(fā)工具中。幾種用于白盒測試的自動化測試工具,如表2-2所示。表2-2用于白盒測試的自動化工具工具支持語言簡介Jtest代碼分析和動態(tài)類、組件測試C++Test代碼分析和動態(tài)測試SmartCheckVB函數(shù)調(diào)用次數(shù),所占比例統(tǒng)計(jì)以及穩(wěn)定性跟蹤C(jī)odeReviewVB自動源代碼分析工具常見的用于管理測試過程的管理工具,如表2-3所示。表2-3用于管理測試過程的管理工具工具公司簡介TeamManagerRational對測試的需求、測試的計(jì)劃、測試的用例和測試的實(shí)施過程進(jìn)行管理、同時(shí)可以對缺陷進(jìn)行跟蹤處理。TrackRecordCompuwareTestDirectorMercuryInteractiveWebLoadRadview用于性能測試TestBytes針對數(shù)據(jù)庫測試本課題研究的自動化測試框架主要是自動化功能測試即黑盒測試的,使用Selenium用于自動化測試,其優(yōu)點(diǎn)有,完全開源、免費(fèi),具有很強(qiáng)的可擴(kuò)展性,相對的靈活性,支持多種語言編程和改寫,可以集成到多數(shù)開發(fā)工具中去。2.3.2Selenium工具研究Selenium是一款應(yīng)用廣泛的免費(fèi)開源自動化測試工具并且能夠使用多種語言進(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)點(diǎn):WebDriver使用HtmlUnit時(shí),無需打開瀏覽器就可以進(jìn)行測試;基于瀏覽器的內(nèi)部接口實(shí)現(xiàn)自動化測試,模擬真實(shí)用戶使用情況;提供合理簡潔的面向?qū)ο驛PI,提高了自動化測試腳本的編寫效率[9]。在使用過程中不需要進(jìn)行單獨(dú)啟動SeleniumServer。它可以支持不同類型的瀏覽器及不同版本的瀏覽器,具有非常好的兼容性。圖2-3Selenium工作基本原理2.4Python語言特點(diǎn)介紹Python是一種開源的自由語言,它代表了簡單性的思想。python和大多數(shù)主流高級編程語言(例如C和Java)都是面向?qū)ο蟮?,而且python在編程時(shí),不用去考慮底層細(xì)節(jié),用python寫的代碼程序不需要編譯就可以直接運(yùn)行;python有很強(qiáng)大的標(biāo)準(zhǔn)庫,比如文檔生成、電子郵件等,Python的另一個(gè)優(yōu)點(diǎn)是使用強(qiáng)制縮進(jìn)使代碼可讀。2.5本章小結(jié)這一章主要對自動化測試的相關(guān)技術(shù)進(jìn)行了概述,首先是對軟件自動化的相關(guān)知識進(jìn)行普及,之后對自動化測試框架和其設(shè)計(jì)原則進(jìn)行了闡述說明,最后對自動化測試工具的大體分類進(jìn)行了描述,并介紹了有關(guān)于本選題要設(shè)計(jì)的Selenum工具的相關(guān)知識和Python語言的特點(diǎn)。

第三章自動化測試框架需求分析3.1測試框架功能需求分析該框架的功能需求點(diǎn)包括以下七點(diǎn):自動執(zhí)行編寫的測試用例,不需要人為干預(yù);執(zhí)行測試用例需要用到的數(shù)據(jù)設(shè)計(jì)為獨(dú)立于框架以外,方便對測試數(shù)據(jù)的修改;執(zhí)行測試用例的過程中需要有日志和截圖進(jìn)行記錄腳本執(zhí)行軌跡和結(jié)果,便于對錯誤進(jìn)行定位;各個(gè)頁面的測試腳本相互獨(dú)立,不可以去影響其他頁面的用例執(zhí)行;測試執(zhí)行完畢需要將生成的測試報(bào)告發(fā)給指定的人員。如圖3-1所示。圖3-1測試框架功能需求分析3.1.1測試用例管理模塊測試需求分析在現(xiàn)行自動化技術(shù)測試的基本框架中,測試用例是腳本編寫的主要部分。另外,由于其產(chǎn)品的不斷迭代,測試用例將會同步更新或添加。因此,在設(shè)計(jì)測試用例的腳本時(shí),必須考慮對上一階段和下一階段的良好維護(hù)。對于自動化測試的測試案例,可以考慮以下幾點(diǎn)來進(jìn)行編寫:(1)通常,需要選擇需要重復(fù)執(zhí)行并且執(zhí)行過程耗時(shí)的測試用例。(2)對于一些邏輯性更強(qiáng)、更復(fù)雜、更難實(shí)現(xiàn)的測試用例,我們可以選擇不用自動化測試來實(shí)現(xiàn)它們。而是手動測試可能更快、更方便。(3)對于頁面的各公共控件的邊緣用例也可以暫時(shí)不用自動化測試去實(shí)現(xiàn)。3.1.2測試業(yè)務(wù)模塊需求分析Web自動化測試是需要打開瀏覽器的,為了使測試框架便于維護(hù),不去大面積的修改代碼,這個(gè)小部分需要封裝瀏覽器模塊的功能,力求實(shí)現(xiàn)瀏覽器在打開和關(guān)閉同一狀態(tài)后的通用方法,使后面每條測試腳本就可以直接調(diào)用打開和關(guān)閉瀏覽器方法,腳本只需要專注具體的測試業(yè)務(wù)邏輯的實(shí)現(xiàn)即可。在測試過程中會用到很多如截圖方法、元素定位方法、元素通用操作方法以及警示框處理方法等公共的測試方法。因此,在測試框架的構(gòu)建中常常需要封裝一些常用的公共方法,只要是軟件頁面的一些常用操作都可以選擇寫在該頁面基類中,這個(gè)頁面基類相對于一個(gè)公共的函數(shù)庫,存放著常用的公共方法,后面有需要的地方直接調(diào)用即可。本文內(nèi)容研究中的測試大框架需要封裝8個(gè)定位元素的方法和一種截圖方法,常用的鼠標(biāo)點(diǎn)擊方法,處理警告框的方法,Web瀏覽器的前進(jìn)和后退方法,一種隱式等待時(shí)間的方法、關(guān)閉當(dāng)前窗口和切換到新窗口的方法、輸入框和選擇框的方法等一些常用的功能函數(shù)或者方法。3.1.3數(shù)據(jù)模塊需求分析Selenium作為一個(gè)可以跟隨編寫者意愿自主配置的自動化測試框架,開始自動化測試的第一個(gè)步驟就是根據(jù)特定自動化測試需求對各種輸入數(shù)據(jù)進(jìn)行配置,這是一個(gè)設(shè)計(jì)框架能夠基本運(yùn)行的前提,也是其后續(xù)測試腳本運(yùn)行的重要基礎(chǔ)。輸入數(shù)據(jù)一般可分為測試框架的基本操作所需的綜合數(shù)據(jù)和基于框架的測試所需的最終數(shù)據(jù)兩大類??蚣芡暾哪軌蛱幚磉@些用戶輸入數(shù)據(jù),并在此基礎(chǔ)上,可以觸發(fā)啟動整個(gè)框架并運(yùn)行它進(jìn)行完整的測試。因此,配置最終測試數(shù)據(jù)是整個(gè)框架的基本功能。3.1.4日志模塊需求分析當(dāng)這個(gè)框架開始運(yùn)行時(shí),它將能夠輸出日志。所有的日志都是檢查程序整體運(yùn)行并發(fā)現(xiàn)錯誤的最重要手段。對于系統(tǒng)的自動測試,需要知道自動執(zhí)行這個(gè)測試的過程、執(zhí)行情況和執(zhí)行錯誤的處理情況,以便測試人員要能夠快速地定位到腳本具體失敗的位置,排查出失敗的原因是腳本Bug還是應(yīng)用的Bug。所以需要在程序的關(guān)鍵位置或者步驟節(jié)點(diǎn)下設(shè)置日志輸出。因此,在自動化測試框架中還需要提前封裝一個(gè)日志類的功能模塊,便于輸出日志。3.1.5測試報(bào)告模塊需求分析當(dāng)所有的測試用例都執(zhí)行完畢之后,會自動生成自動化測試結(jié)果報(bào)告,并自動地將正式測試結(jié)果報(bào)告發(fā)送給相關(guān)人員,測試用例的執(zhí)行結(jié)果以表格的形式在自動化測試報(bào)告中展示,在報(bào)告中可以對測試結(jié)果到達(dá)一目了然的效果。3.2測試框架非功能需求分析根據(jù)框架的特點(diǎn)和實(shí)現(xiàn)自動測試結(jié)果的目的,測試框架的潛在非功能需求如下:(1)有效性確保系統(tǒng)的自動化測試能夠正常、連續(xù)和有效地通過,在測試過程中能準(zhǔn)確有效的找出被測系統(tǒng)的真實(shí)缺陷,盡量避免非正常錯誤。(2)穩(wěn)定性穩(wěn)定性是一個(gè)軟件的必要因素,框架是否穩(wěn)定將決定其是否可以正常使用,并到達(dá)自動化測試的最終目的。(3)可擴(kuò)展性自動測試框架設(shè)計(jì)原則上應(yīng)與待測系統(tǒng)分離,使其用途更廣泛。但是在現(xiàn)實(shí)情況中,對于要測試的不同系統(tǒng),在自動測試實(shí)現(xiàn)過程中必須有特定內(nèi)容,因此為了滿足不同項(xiàng)目的不同測試需求,可擴(kuò)展性在自動化技術(shù)測試的基本框架中是必不可少的。(4)可維護(hù)性一般來說,用自動化測試框架進(jìn)行測試主要都是將其運(yùn)用需要進(jìn)行回歸測試的軟件中。因?yàn)橐粋€(gè)系統(tǒng)基本都不會只有一期項(xiàng)目,而是會通過一期、二期甚至更多期項(xiàng)目來不斷增加和完善其系統(tǒng)功能,一個(gè)測試腳本是需要進(jìn)行多次運(yùn)行的,而隨著自動化測試腳本的不斷增加,新版本的回歸測試量會漸增,這使得自動化測試框架的負(fù)載不斷變大,因此框架必須是可維護(hù)的,才能保持長期的可用性[9]。3.3本章小結(jié)從實(shí)現(xiàn)自動化測試基本框架的短期目標(biāo)出發(fā),結(jié)合Selenium測試工具的突出特點(diǎn),分析了實(shí)現(xiàn)框架需要定義的功能需求和非功能需求,并對這個(gè)框架的需求有一個(gè)整體的梳理。該框架應(yīng)支持?jǐn)?shù)據(jù)配置,測試環(huán)境的準(zhǔn)備以及測試集的動態(tài)性構(gòu)建,最終測試的執(zhí)行,測試結(jié)果報(bào)告的自動生成以及對測試執(zhí)行腳本類庫的支持。

第四章自動化測試框架設(shè)計(jì)4.1測試框架的整體架構(gòu)通過具體的分析這個(gè)框架的實(shí)際需求,對整個(gè)框架進(jìn)行一個(gè)具體的設(shè)計(jì),對實(shí)現(xiàn)每個(gè)需求點(diǎn)都做一個(gè)對應(yīng)的設(shè)計(jì),為后期的測試框架實(shí)現(xiàn)提供一個(gè)完整清晰的思路邏輯。設(shè)計(jì)的框架結(jié)構(gòu)中對每個(gè)需要實(shí)現(xiàn)的需求點(diǎn)都提供了進(jìn)一步的實(shí)現(xiàn)步驟。具體的自動化測試框架其整體架構(gòu)設(shè)計(jì),如圖4-1所示。圖4-1測試框架的整體結(jié)構(gòu)4.2測試業(yè)務(wù)模塊設(shè)計(jì)4.2.1公共類封裝在公共類中封裝通用的操作方法,比如封裝8個(gè)定位元素的方法和一種截圖方法,常用的鼠標(biāo)點(diǎn)擊方法,處理警告框的方法,Web瀏覽器的前進(jìn)和后退方法,一種隱式等待時(shí)間的方法、關(guān)閉當(dāng)前窗口和切換到新窗口的方法、輸入框和選擇框的方法等一些常用的功能函數(shù)或者方法。如圖4-2所示。圖4-2公共類封裝定義一個(gè)瀏覽器操作驅(qū)動庫,用于讀取配置文件信息,快速打開指定測試URL地址,以及自動開啟、關(guān)閉瀏覽器。4.2.2各個(gè)頁面類封裝新建page_obj文件夾,將每個(gè)頁面的多個(gè)元素放在一個(gè)目錄中。方便日常管理??梢砸灰粚?yīng)創(chuàng)建Python程序包,不同的頁面對應(yīng)一個(gè)不同的程序包,例如登錄頁面上的登錄程序包和主頁上的主頁程序包,每個(gè)界面類中通常會包括數(shù)據(jù)讀取和頁面元素操作及業(yè)務(wù)操作。4.2.3用例管理模塊設(shè)計(jì)此模塊設(shè)計(jì)一個(gè)獨(dú)立的目錄,所有的測試用例均寫到在該目錄下面,運(yùn)行時(shí),該模塊會引用測試框架中的其他模塊,來具體實(shí)現(xiàn)用例執(zhí)行。如公共類封裝模塊、頁面類封裝模塊、數(shù)據(jù)模塊和測試報(bào)告模塊等。如圖4-3所示。圖4-3Testcase結(jié)構(gòu)4.3數(shù)據(jù)模塊設(shè)計(jì)測試用例的每個(gè)實(shí)現(xiàn)都包括執(zhí)行腳本和輸入數(shù)據(jù)。為了在不修改腳本的情況下執(zhí)行測試用例,需要把測試的最終數(shù)據(jù)與測試腳本分離。測試數(shù)據(jù)存儲在專用文件中以供使用。執(zhí)行測試時(shí),通過函數(shù)數(shù)據(jù)進(jìn)行數(shù)據(jù)讀取。此舉使得自動化測試腳本變得比較容易維護(hù)和重用。4.4日志模塊設(shè)計(jì)4.4.1截圖執(zhí)行測試用例腳本的過程中,對于腳本的運(yùn)行,其速度是非??斓?,當(dāng)同一時(shí)間測試大量用例時(shí),某個(gè)測試用例執(zhí)行失敗后,測試將會直接跳過執(zhí)行失敗的測試用例,然后繼續(xù)執(zhí)行運(yùn)行命令中下一條需要執(zhí)行的測試用例,所以沒有特定人員的監(jiān)控情況下要精確的定位問題出現(xiàn)在什么地方是很難的,要查找問題源頭是非常麻煩的。所以需要在測試框架中設(shè)計(jì)log日志來記錄執(zhí)行過程,通過log日志就可以很方便的定位出問題所在的地方。4.4.2自定義日志服務(wù)和日志輸出日志服務(wù)可以記錄測試過程中的執(zhí)行情況、測試失敗情況和個(gè)人日志信息內(nèi)容,更方便對測試中的最終測試進(jìn)行跟蹤和深入分析。日志記錄服務(wù)可以根據(jù)不同的日志級別編寫個(gè)人日志,記錄斷言的判斷結(jié)果。在日志內(nèi)容服務(wù)中,定義了三個(gè)級別的日志記錄:Info、Warning和Error。當(dāng)使用不同的日志級別時(shí),記錄中會添加Info、Warning和Error關(guān)鍵字自動劃分日志級別。在測試過程無異常時(shí),默認(rèn)采用Info來記錄日志信息;測試過程異常時(shí)采用Error來記錄日志信息。日志內(nèi)容控制輸出:將日志內(nèi)容文件和截圖文件內(nèi)容保存到相應(yīng)路徑。4.5測試報(bào)告模塊設(shè)計(jì)4.5.1生成測試報(bào)告在一個(gè)完整的測試腳本執(zhí)行過程中,不管是否成功都要輸出一個(gè)明確的測試結(jié)果記錄,以便于對測試用例的通過和未通過用例的分析。輸出結(jié)果針對執(zhí)行過的每一條測試用例,當(dāng)腳本運(yùn)行出錯后,可以在后臺看到用例報(bào)的什么錯,進(jìn)行分析和統(tǒng)計(jì),可以評估出腳本質(zhì)量,檢驗(yàn)自動化測試框架實(shí)際的效果如何。本文引用html_test_runner.py文件來實(shí)現(xiàn)生成測試結(jié)果報(bào)告功能。4.5.2發(fā)送測試報(bào)告本框架在執(zhí)行完用例后,立即將測試報(bào)告發(fā)送給選定的其他人員。借助電子郵件服務(wù),以電子郵件的形式發(fā)送測試報(bào)告。4.6本章小結(jié)本章主要是對要實(shí)現(xiàn)的測試框架進(jìn)行設(shè)計(jì),在整個(gè)設(shè)計(jì)過程中,分別對每個(gè)模塊的作用效果和實(shí)現(xiàn)方法都做了一個(gè)比較詳細(xì)的介紹。到目前為止對要實(shí)現(xiàn)的測框架的各個(gè)模塊組成和功能都有了一個(gè)比較清晰的架構(gòu)和思路。

第五章自動化測試框架實(shí)現(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測試框架方案實(shí)現(xiàn)測試框架是在Pycharm平臺上基于Selenium+Python開發(fā)的。整個(gè)框架可以分為7個(gè)部分:配置文件、日志、測試數(shù)據(jù)、驅(qū)動、測試業(yè)務(wù)、測試報(bào)告、代碼啟動入口。測試框架如圖5-1所示。(1)配置文件配置文件包括兩個(gè)部分:config.ini中主要瀏覽器的參數(shù)、測試URL、郵件發(fā)送相關(guān)參數(shù)等的設(shè)置。globalparameter.py配置文件中設(shè)置了各個(gè)文件的存儲路徑。(2)日志此目錄用于存放腳本執(zhí)行過程中生成的日志。日志的封裝是在測試業(yè)務(wù)模塊下的公共類封裝下實(shí)現(xiàn)。(3)測試數(shù)據(jù)此模塊主要用于存放測試用例的數(shù)據(jù)。(4)瀏覽器驅(qū)動此模塊用于存放瀏覽器驅(qū)動。(5)測試業(yè)務(wù)此目錄下分為三個(gè)子目錄:公共類封裝、各個(gè)頁面類封裝、測試用例集。公共類封裝包括以下文件:html_test_runner.py#用于生成測試結(jié)果報(bào)告;browser_engine.py#用于封裝瀏覽器相關(guān)操作的;base_page.py#頁面基類,封裝所有頁面公共的方法;log.py#log類封裝,用于日志文件輸出;send_email#發(fā)送郵件。各個(gè)頁面類封裝用于封裝各個(gè)頁面類。測試用例集用于編寫測試用例腳本。(6)測試報(bào)告此模塊用于存放腳本運(yùn)行完畢自動生成的測試結(jié)果報(bào)告。(7)代碼啟動入口此模塊用于整個(gè)測試框架的腳本啟動。圖5-1測試框架結(jié)構(gòu)5.3測試業(yè)務(wù)模塊實(shí)現(xiàn)5.3.1公共類封裝base_page.py#頁面基類,封裝所有頁面公共的方法,比如:對瀏覽器的前進(jìn)和后退操作進(jìn)行封裝、對瀏覽器的當(dāng)前窗口進(jìn)行關(guān)閉的方法封裝、以及對瀏覽器頁面的元素查找設(shè)置隱式等待時(shí)間的方法封裝等等。(1)瀏覽器的前進(jìn)和后退操作、關(guān)閉瀏覽器打開的當(dāng)前窗口、設(shè)置查找元素的隱式等待時(shí)間的代碼實(shí)現(xiàn)如圖5-2所示。圖5-2頁面基本操作封裝(2)切換到新窗口、8大元素定位方法的封裝、輸入框、清除文本的代碼實(shí)現(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)點(diǎn)擊元素、獲取URL標(biāo)簽、獲取警示框、獲取等待時(shí)間的代碼實(shí)現(xiàn)如圖5-4所示。圖5-4頁面基本操作和信息獲取封裝瀏覽器封裝模塊,主要是實(shí)現(xiàn)打開和關(guān)閉不同瀏覽器的方法,對瀏覽器的一些基本操作進(jìn)行封裝后,在需要使用這些封裝的方法時(shí),直接調(diào)用即可。在test下新建python文件,自定義BrowserEngine類,實(shí)現(xiàn)對瀏覽器基本操作模塊的封裝,代碼如圖5-5所示。圖5-5瀏覽器封裝5.3.2頁面類封裝各個(gè)頁面的腳本分開寫,在此展示登錄頁面元素類的封裝,在page_obj目錄下新建一個(gè)login_page.py文件,用于實(shí)現(xiàn)登陸頁面元素定位和相應(yīng)元素操作方法的封裝,實(shí)現(xiàn)代碼如圖5-6所示。圖5-6頁面類封裝5.3.3測試用例管理模塊實(shí)現(xiàn)分頁面實(shí)現(xiàn),登錄頁面就寫登錄頁面的用例,首頁寫首頁的用例,如圖5-7所示。圖5-7測試用例腳本結(jié)構(gòu)再此展示登錄頁面用例實(shí)現(xiàn),代碼如圖5-8所示。圖5-8登錄頁面的測試用例腳本具體實(shí)現(xiàn)5.4數(shù)據(jù)模塊實(shí)現(xiàn)在頁面類封裝的login_page.py文件中引入第三方的Xlrd模塊,用于讀取Excel文件中的數(shù)據(jù),在編寫login_page.py前,需要先將相應(yīng)數(shù)據(jù)寫到對應(yīng)的Excel表中,即測試數(shù)據(jù)和腳本相互獨(dú)立,如果測試過程中數(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日志模塊實(shí)現(xiàn)5.5.1截圖在公共類封裝模塊寫入函數(shù)img_screenshot(),當(dāng)運(yùn)行過程中遇到測試用例失敗的情況下調(diào)用該函數(shù),對其進(jìn)行具體,并將截圖保存下來,方便最后進(jìn)行測試結(jié)果分析和找出錯誤出現(xiàn)的地方。代碼如圖5-10所示。圖5-10截圖功能封裝5.5.2自定義日志服務(wù)日志服務(wù)主要收集日志信息,以方便后面如果需要排查用例失敗的原因及錯誤定位。代碼實(shí)現(xiàn)如圖5-11所示。圖5-11日志類封裝5.6測試報(bào)告模塊實(shí)現(xiàn)引用html_test_runner.py文件來實(shí)現(xiàn)測試報(bào)告生成,實(shí)現(xiàn)代碼如圖5-12所示。圖5-12調(diào)用第三方庫生成測試報(bào)告5.7本章小結(jié)本章主要內(nèi)容是測試框架的實(shí)現(xiàn)過程和實(shí)現(xiàn)方式,在實(shí)現(xiàn)測試框架的過程中,先后對公共基類、頁面類進(jìn)行封裝,放到一個(gè)基本類下面,方便其他模塊進(jìn)行調(diào)用。如何就是日志和郵件發(fā)送的腳本編寫,以及測試用例的腳本編寫。從整個(gè)框架的設(shè)計(jì)到實(shí)現(xiàn),目前只是做出來了一個(gè)比較簡單的測試框架,還有很多需要優(yōu)化的地方,比如頁面基類中還需要補(bǔ)充更多的公共方法。

第六章應(yīng)用實(shí)踐6.1搭建測試環(huán)境安裝Python、Pip、Chrome、Pycharm、Selenium等軟件,導(dǎo)入標(biāo)準(zhǔn)庫或第三方庫Unittest、Smtplib、Xlrd、Logging、Webdriver、Configparser等等。6.2測試執(zhí)行運(yùn)行代碼啟動文件,執(zhí)行測試用例,本文用校友邦的登錄頁面作為例子進(jìn)行展示,如圖6-1和圖6-2所示。腳本會自動打開網(wǎng)頁,并讀取Data里面的數(shù)據(jù),先清空輸入框,在輸入讀取的數(shù)據(jù),最后關(guān)閉瀏覽器,之后開始循環(huán),直到測試用例執(zhí)行完畢,才會停止運(yùn)行。并產(chǎn)生日志和測試報(bào)告。圖6-1正確用例驗(yàn)證登錄圖6-2錯誤用例驗(yàn)證登錄6.3測試報(bào)告測試報(bào)告展示頁面主要包括開始執(zhí)行時(shí)間、執(zhí)行總耗時(shí)、測試通過、失敗用例數(shù),以及用例詳情。展示效果如圖6-3所示。圖6-3測試報(bào)告報(bào)告詳情展示,如圖6-4所示。圖6-4測試報(bào)告詳情展示通過測試報(bào)告,會發(fā)現(xiàn),測試速度是很快的,8條用例只用了一小會的時(shí)間就可以完成。如果用手工進(jìn)行測試的話,8條用例最少都要用幾分鐘以上,而且人工測試一直重復(fù)的做一件事是比較浪費(fèi)資源的。所有說,用自動化測試代替一些重復(fù)的、枯燥的手工測試,是一個(gè)很有必要的事件。6.4本章小結(jié)本章主要介紹用實(shí)現(xiàn)的自動化測試框架在真實(shí)的測試場景中的驗(yàn)證,測試框架達(dá)到了預(yù)期的要求,日志和測試報(bào)告都與設(shè)計(jì)一致。同時(shí)介紹了測試框架環(huán)境部署需要用到的工具,并對測試報(bào)告進(jìn)行了分析。

第七章總結(jié)與展望7.1總結(jié)本課題主要實(shí)現(xiàn)的是基于Selenium+Python的自動化測試框架,可以支持Web應(yīng)用程序的自動化測試。通過該框架的公共類和頁面基類的封裝,可以根據(jù)不同的場景進(jìn)行不同的腳本組裝來完成不同場景的自動化測試。該框架可以支持瀏覽器的兼容性測試。同時(shí)該框架還支持日志輸出,查看日志可以提高故障排除的效率。以及該框架支持在測試完畢后自動生成自動化測試結(jié)果報(bào)告,并可以將報(bào)告發(fā)送給配置文件中指定的人員,收到測試結(jié)果報(bào)告的人可以通過報(bào)告直觀的了解到測試的執(zhí)行結(jié)果。7.2后續(xù)研究展望本課題實(shí)現(xiàn)的框架還是很淺顯初級的測試框架。因此在此框架中還可以進(jìn)行多方面的擴(kuò)展??梢砸源丝蚣転榛A(chǔ)進(jìn)行進(jìn)一步的研究,比如在此框架的基礎(chǔ)上進(jìn)行編譯,使其去執(zhí)行一個(gè)完整的項(xiàng)目,而不是一個(gè)項(xiàng)目中是部分模塊,看最終的執(zhí)行結(jié)果是否有執(zhí)行一部分模塊的執(zhí)行結(jié)果一樣理想,如若不是,需要找出原因進(jìn)行優(yōu)化。此測試框架對于數(shù)據(jù)的管理是不成熟的,在整個(gè)框架中也看不出明顯的功能效率,需要在后續(xù)研究中對其進(jìn)行一個(gè)深入的挖掘和實(shí)現(xiàn)。同時(shí),此框架的測試報(bào)告生成是引用的第三方庫來實(shí)現(xiàn)的,期望在后續(xù)的研究中可以自己定義測試報(bào)告的模板和展示情況。7.3本章小結(jié)本章主要是對實(shí)現(xiàn)的測試框架及其功能進(jìn)行一個(gè)總結(jié),以及對該測試框架實(shí)現(xiàn)的功能進(jìn)行一個(gè)簡短的介紹。同時(shí)對自動化測試框架的研究在未來的優(yōu)化和發(fā)展趨勢做一個(gè)展望總結(jié)。參考文獻(xiàn)[1]馮晶晶.基于Selenium的Web自動化框架的設(shè)計(jì)與實(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自動化測實(shí)戰(zhàn)-基于Python語言[M],北京,電子工業(yè)出版社,2016:12.[7]但凝云.基于Selenium的自動化框架的設(shè)計(jì)與實(shí)現(xiàn)[D],云南師范大學(xué),2016.[8]王聰穎.基于Python的自動化測試框架的分析與設(shè)計(jì),北京郵電大學(xué),2017-05-04.[9]洪芳.基于Selenium2的WebUI自動化測試框架的設(shè)計(jì)與實(shí)現(xiàn)[D],西南交通大學(xué),2017.[10]辛慶.基于Selenium的WebUI自動化測試[D],華南理工大學(xué)碩士論文,2012-12.[11]羅明宇.基于Selenium的安全自動測試技術(shù)的研究與實(shí)現(xiàn)[D],廣東工業(yè)大學(xué),2015.[12]馬滌非.Selenium在EMGC系統(tǒng)自動化測試過程中的應(yīng)用與研究[D],北京交通大學(xué),2010.[13]洪芳.基于Selenium2的WebUI自動化測試框架的設(shè)計(jì)與實(shí)現(xiàn)[D],西南交通大學(xué),2017.[14]董永清.基于Web的自動測試框架的設(shè)計(jì)與實(shí)現(xiàn)[D],北京交通大學(xué),2012.[15]閏文蛟.Web功能自動化測試框架的研究與設(shè)計(jì)[D],西安電子科技大學(xué),2015.[16]趙金丹.基于Selenium的Web自動化測試腳本設(shè)計(jì)研究[J],科技傳播,2014(1).[17]梁向陽,高麗萍.基于Selenium的Web測試研究與應(yīng)用[D],西安工業(yè)大學(xué),2015.[18]柴旭琴.基于Selenium的Web應(yīng)用性能測試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].西安建筑科技大學(xué),2012.

致謝歲月似白駒過隙。四年的大學(xué)生活已經(jīng)接近尾聲,在東軟四年的大學(xué)生涯學(xué)到了很多,同時(shí)也收獲了不少的歡聲笑語。四年來,感謝陪我一路走過來的所有人,因?yàn)橛心銈兓蚨嗷蛏俚膮⑴c,讓我在大學(xué)這四年每天都有所收獲。本人此次的畢業(yè)論文都是在論文指導(dǎo)老師姚庚梅的關(guān)心和耐心指導(dǎo)下完成的,真摯的感謝我的指導(dǎo)老師對我的無私指導(dǎo)和悉心關(guān)懷。從最初的畢業(yè)論文選題到畢業(yè)作品的實(shí)施以及論文的寫作,直至畢業(yè)論文的順利完成,我的指導(dǎo)老師也是我的恩師姚庚梅都一直給予我最大耐心來幫助我完成畢業(yè)作品和論文,在此謹(jǐn)向恩師姚庚梅老師致以最真摯的感謝和崇高的敬意。同時(shí)感謝的我企業(yè)導(dǎo)師宋旺發(fā)的大力支持,無論是在課題研究還是工作中,都給予了我非常的大的幫助和指導(dǎo),課題研究的順利完成,離不開導(dǎo)師對我的支持。感謝在畢業(yè)作品和論文編寫期間給予我?guī)椭凸膭畹耐瑢W(xué)、朋友和同事,被大家互相學(xué)習(xí)互相幫助的精神所感動。最后要特別感謝家人在精神上給予我的極大的支持和鼓勵,順利地完成大學(xué)學(xué)業(yè),并有信心更好地對待未來的學(xué)業(yè)、生活和工作。

HYPERLINK如何選擇組裝電腦配件

如何選擇組裝的電腦配件.

第一,選擇好CPU平臺,就是INTER還是AMD,看你是要配什么樣的電腦,高端還是低端的,兩個(gè)平臺都高低的產(chǎn)品。第二,選擇主板了,主板的品牌比較多,質(zhì)量,價(jià)格也不一,當(dāng)你第一步卻定了,那么主板也就相應(yīng)的卻定下來了,以INTER為例,只可以選擇775接口的主板(早期有478接口的,不推薦),主板的選擇主要有兩種,一是集成顯卡,二是不集成顯卡。集成顯卡的話,就可以省下顯卡的錢,但是對游戲玩家不推薦。那么當(dāng)然是選擇不集成顯卡的主板了,而且最好選擇一線品牌,如華碩,技嘉等。主板里,還有個(gè)蕊片組的選擇。關(guān)于蕊片組,各個(gè)品牌的主板命名有些不一樣,主流是INTER965,945,915,VIA的KT890,還有NFORCE4,NFORCE5。等。比較難說清楚。最好是選擇INTER的蕊片組,雖然價(jià)格會稍高一些。推薦945,技術(shù)比較成熟。第三,顯卡的選擇。顯卡主要還是有兩類品牌,GEFORCE和ATI,兩個(gè)品牌有高,中,低的顯卡。顯卡選擇要看你個(gè)人喜歡了,預(yù)算充足的話,最好是買中,高端的顯卡。

第四,就是內(nèi)存了,內(nèi)存關(guān)系電腦的穩(wěn)定性。當(dāng)然是要好一點(diǎn)的。買一線品牌的。現(xiàn)在配電腦,主流是DDR667,DDR800DDR1333第五,顯示器的選擇,推薦液晶。如何選擇硬件組裝電腦這是一個(gè)老生常談的問題了,這也是一個(gè)讓高手們顯示自己硬件功底的問題,同時(shí)這還是一個(gè)讓很多新手為之焦頭爛額的問題。該怎么配?具體配什么?怎樣配才能盡量減小瓶頸?本文就將從內(nèi)到外,從理論到實(shí)踐,為朋友們抽絲剝繭一一道來。

一、CPU

作為一臺電腦最關(guān)鍵的組成部分,CPU確實(shí)起著舉足輕重的作用,但體現(xiàn)一臺電腦的綜合速度,并不是僅僅依靠CPU的,常??吹胶芏嘈率謧冊谂潆娔X的時(shí)候,把CPU選的很好,但其他的東西諸如內(nèi)存、主板、硬盤等都選的不太理想,好像這臺電腦速度的快慢就體現(xiàn)在CPU速度的快慢上似的。甚至很多著名的品牌機(jī)廠商,都推出過類似“P4+256M內(nèi)存”的這種跛腳配置。其實(shí)對于一般的家用電腦而言,一個(gè)真正會配的高手,是不會把大量的錢花在CPU上的。家用電腦,畢竟不是做密集型科學(xué)計(jì)算用的,它講求的是多種媒體的配合工作,講求的是能一邊下載文件、一邊上網(wǎng)瀏覽網(wǎng)頁、一邊聽音樂、一邊還能打開其他的程序,在這種情況下,提升內(nèi)存的容量比提升CPU的主頻對速度的影響要明顯的多。現(xiàn)今的中國家庭用戶,很多家長對于電腦一竅不通,他們只聽說“奔四”代表著速度快,并不知道整機(jī)速度的快慢除了CPU以外,還有很多其他的因素影響著它。但在買電腦的時(shí)候,最后做決定并掏錢的人,往往都是這些啥都不懂的家長們,于是就出現(xiàn)了上面的一幕:品牌機(jī)廠商為了能有更好的銷路、兼容機(jī)裝機(jī)店的銷售人員為了能拿到更多的獎金,開始違背良心來配置出這種高主頻處理器、低容量內(nèi)存的跛腳電腦。說嚴(yán)重點(diǎn),這是屬于對消費(fèi)者的不負(fù)責(zé)任,是一種商業(yè)欺詐行為!同樣5000元的配置,高手配出來的賽揚(yáng),比新手配出來的P4還要快很多,曾經(jīng)有一家全球著名的硬件網(wǎng)站在2003年的時(shí)候刊登過一篇關(guān)于配置家用電腦時(shí)各硬件占用總預(yù)算百分比的文章,文中很明確的提到了CPU的價(jià)錢最好不要超過總預(yù)算的10%-15%,我們雖然不能說他肯定完全正確,但至少人家是通過很多調(diào)查后得出的結(jié)論,有借鑒的理由。反觀現(xiàn)在的很多所謂的“低價(jià)奔四電腦”、“3999元買P4品牌機(jī)”之類的廣告,我想說的就是:你花了3999元,只買了一塊P4的處理器,其他的什么都沒有了!

二、內(nèi)存

對于配置一臺電腦來說,內(nèi)存是重頭戲,容量、速度、類型等等每一項(xiàng)指標(biāo)都對最終的整機(jī)綜合速度起著至關(guān)重要的影響,尤其是內(nèi)存的帶寬和容量。對于內(nèi)存帶寬而言,很多人都認(rèn)為400MHz、533MHz前端總線的賽揚(yáng)四或P4,配單通道的DDR內(nèi)存就足夠了,雙通道DDR內(nèi)存是配合800MHz以上前端總線的P4處理器用的,其實(shí)這樣就大錯特錯了,哪怕是最老的賽揚(yáng)四,都需要雙通道的DDR內(nèi)存才能達(dá)到它的帶寬!也就是說,你如果選擇賽揚(yáng)四1.8G,必須配合865以上的主板和至少雙通道DDR200的內(nèi)存,才能滿足它的帶寬要求!稍微計(jì)算一下就可以得知:賽揚(yáng)四1.8G的前端總線是400MHz,它的內(nèi)存帶寬理論值是400MHz×64bit÷8=3.2G/s,但當(dāng)它裝在845系列的主板上時(shí),由于845主板的限制,即使你插上能符合它帶寬要求的DDR400內(nèi)存,也只能運(yùn)行在DDR266上,這時(shí)的內(nèi)存所能提供的帶寬是266MHz×64bit÷8=2.1G/s,比3.2G/s要小很多,即使你通過BIOS里的內(nèi)存調(diào)節(jié)選項(xiàng)往上調(diào)節(jié)一檔(也只能調(diào)節(jié)一檔而已),讓內(nèi)存運(yùn)行在DDR333下,所能提供的帶寬也僅僅是333MHz×64bit÷8=2.66G/s,離3.2G/s還是有一定的距離,而內(nèi)存帶寬的降低,能非常明顯的降低整機(jī)的綜合速度,運(yùn)行任何程序都能明顯的感覺出來!所以如果想滿足賽揚(yáng)1.8G處理器的內(nèi)存帶寬要求,你必須要為它配置865以上的主板和雙通道的內(nèi)存才行!P4亦是如此。很多人也許會問:那845系列的主板是配什么處理器的呢?我想回答你的就是:845系列的主板是屬于“不能用”的主板,因?yàn)樘幚砥饔肋h(yuǎn)比主板發(fā)展的快,當(dāng)初Intel造出845系列的芯片組是為了能給當(dāng)時(shí)的賽揚(yáng)和P4提供一個(gè)過渡的平臺,不至于讓它們成為“沒有主板配合”的處理器而已,也是為了能在低端市場分一杯羹,而現(xiàn)今865甚至9xx系列的主板橫行的時(shí)候,845系列的主板確實(shí)是屬于“不能用”的主板了,滿足不了任何一款處理器的內(nèi)存帶寬,造成性能上的嚴(yán)重低下,試問這種主板你會選擇么?即使配臺2000多元的超低價(jià)電腦,也不要去選擇845系列的主板,至少需要865以上的和雙通道內(nèi)存才行,因?yàn)閮?nèi)存帶寬是一個(gè)非常影響系統(tǒng)性能的參數(shù),倘若一味的為了省錢而配置845系列的主板,那就得不償失了。

內(nèi)存的容量方面,應(yīng)每個(gè)人對電腦的使用方向不同,容量的要求也是不同的,現(xiàn)在配置的家用電腦,筆者建議:如果不打游戲,或者是打打掃雷、紙牌之類的游戲,平時(shí)注重于上網(wǎng)瀏覽或者是聊天、看電影之類的應(yīng)用的話,內(nèi)存容量不應(yīng)該低于1G;如果是偶爾打打單機(jī)游戲或者是網(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è)計(jì),那些沒有技術(shù)實(shí)力的三、四線主板廠家生產(chǎn)的主板,多數(shù)是采用公版走線,而且用料非常差,穩(wěn)定性不堪一擊,這種類型的主板,筆者建議寧愿不買電腦也不要配這種主板,否則以后將會是個(gè)淘氣的祖宗。對于家庭用戶,主板方面一定不能省錢,預(yù)算夠的話最好能買個(gè)一線的主板品牌,如果預(yù)算實(shí)在不足,二線的主板是底線了,不要再往下選擇了,畢竟家用電腦是用來使用的,不是用來整天維修的。再談到主板的用料,筆者常??吹胶芏嘈率衷谂渲弥靼宓臅r(shí)候,貌似老鳥似的說某某品牌的主板好,某某品牌的不好,試問你知道它好在哪里么?不好在哪里么?這個(gè)就要看主板的用料了,雖然用料好的主板并不能代表一定是高檔主板,但最少能代表它的電氣性能出色。舉一個(gè)很簡單的例子吧:有A、B兩款主板,A主板的處理器供電濾波電容采用的是日系電容,B主板的處理器供電濾波電容采用的是臺系電容,那么基本上可以肯定的是:如果在電源輸出電壓的波動范圍比較大的情況下,A主板就比較能耐得住,而B主板就很容易產(chǎn)生電容鼓包、漏夜等情況。不要小看這小小的電容,筆者從一個(gè)開維修店的朋友那里得知,來維修主板的人,有80%的都是這幾個(gè)小電容損壞,究其原因,就是電源選擇的不好,導(dǎo)致了輸出電壓的不穩(wěn)定,久而久之最終導(dǎo)致這幾個(gè)小電容爆漿,并且詳細(xì)敘述了主板的品牌:“一線廠家的×碩牌主板就很少出現(xiàn)這種情況,但同樣為一線廠家的×星牌主板,經(jīng)常遇到!原因就是前者的大部分主板使用的是日系電容,而后者的大部分主板為了省錢,選用的是臺系電容!”廠家的廣告不能信,宣傳也不能信,看到一個(gè)產(chǎn)品的廣告之后,你所能相信的唯一一點(diǎn)就是:地球上有這么個(gè)產(chǎn)品的存在!然后其他的就統(tǒng)統(tǒng)都不能信了!網(wǎng)上有好多所謂的“評測”文章,都是槍手寫的,基本上沒有任何參考余地,只能作為一篇小說來讀,一款主板的真正性能,只有你自己使用了之后才能知道。廠家為了銷量、商家為了利潤,他們能把最最垃圾的主板宣傳為最頂級的產(chǎn)品,筆者曾經(jīng)就看到過一款四線品牌的主板廠商,在對其主流主板的廣告上說“最優(yōu)秀的設(shè)計(jì)、最精湛的工藝、最穩(wěn)定的性能”……結(jié)果一看報(bào)價(jià):550元/塊……其他的話我也不想多說了,只想問問這家廠商:你這么垃圾的主板都用了三個(gè)“最”字,那么華碩的同芯片組主板,售價(jià)是你三倍的,應(yīng)該用什么詞語來描述了??中國有一句古話:一分錢一分貨,說的非常正確!不要認(rèn)為價(jià)格高的主板就是暴利產(chǎn)品,從市場經(jīng)濟(jì)學(xué)上說,暴利產(chǎn)品是不會被市場所接受的,之所以他能存活到今天,而且售價(jià)依然是這么高,肯定有他的理由,他在做工用料方面肯定比其他品牌的要好很多,成本高所以售價(jià)高,在此,筆者奉勸大家一句:買主板千萬不要憑僥幸心理,認(rèn)為自己能花很少的錢買到很好的東西,只有錯買的沒有錯賣的,商家永遠(yuǎn)都比你精明!主板上面還是老老實(shí)實(shí)的多花點(diǎn)錢來買個(gè)一線產(chǎn)品吧,否則以后有你吃苦的時(shí)候!

四、硬盤

現(xiàn)在的電腦,硬盤的速度當(dāng)之無愧的成為了“第一大瓶頸”,無論你是再高的高手,配電腦的時(shí)候也無法消除這個(gè)瓶頸的存在,我們只有盡量的減小…再減小……。對于家用電腦的硬盤來說,容量和速度是兩個(gè)非常重要的參數(shù),容量上而言,筆者建議:如果你的電腦只是上網(wǎng)瀏覽瀏覽、偶爾打打小游戲的,那么160G的硬盤是個(gè)不錯的選擇;如果你常常下載軟件或電影,那么250G的硬盤是個(gè)不錯的選擇,如果你是個(gè)下載狂人,那么400G的硬盤比較適合你;如果你有DV或者是經(jīng)常編輯大型的視頻文件,那么400G×2比較適合你,如果你是個(gè)玩HDTV的人,那么恭喜你,400G×4也許你都不夠用。對于硬盤容量上的選擇,你不能考慮現(xiàn)在是否夠用,你應(yīng)該考慮未來的1年里是否夠用,大概的公式是:現(xiàn)在需要的容量×3。也就是說,如果你現(xiàn)在感覺80G的硬盤差不多夠用了,那么你就需要買個(gè)250G的硬盤。如果你現(xiàn)在感覺120G的硬盤夠用了,那么就去買個(gè)400G的硬盤吧。硬盤另外的一個(gè)參數(shù)就是速度,受到內(nèi)部傳輸率等諸多因素的限制,一塊硬盤的實(shí)際傳輸速度是不可能達(dá)到它的接口速度的,現(xiàn)在的并口硬盤基本上都是ATA133了,串口硬盤也都是150了,但民用級硬盤的實(shí)際傳輸速度最快的也還沒突破66M/s,所以跟內(nèi)存相比,硬盤的速度是電腦中最大的瓶頸,那么怎么來減小這個(gè)瓶頸呢?于是人們就發(fā)明了RAID,就是磁盤陣列(當(dāng)然RAID不是僅僅為了這個(gè)而發(fā)明的),用兩塊一模一樣的硬盤來組成RAID0,速度理論上能提高1倍,雖然實(shí)際上是不可能達(dá)到1倍的,但至少能非常非常明顯的感覺到了硬盤速度的提升,筆者建議:如果你買的主板是帶有RAID功能的,并且你需要保存的數(shù)據(jù)不是很重要的話,那么強(qiáng)烈建議你在預(yù)算允許的情況下購買兩塊硬盤來組建RAID0,這將使你能親身體會到飛機(jī)與火車的速度差別!但最好是串口的,如果是并口的話,因?yàn)椴⒖谧叩氖荘CI總線,由于PCI總線上的設(shè)備比較多,所以速度不可能達(dá)到比較高的地步,但如果是串口的話,那么硬盤的速度提升將更加明顯!

五、顯示器

顯示器方面,筆者想澄清一個(gè)觀念:曾經(jīng)聽過非常多的人說液晶顯示器保護(hù)眼睛,因?yàn)闆]有輻射和閃爍……包括很多業(yè)內(nèi)人士都這么認(rèn)為的,其實(shí)錯了,液晶顯示器比普通的CRT還要傷眼睛!因?yàn)閭劬Σ粌H僅是輻射和閃爍,還有對比度、亮度等參數(shù),雖然液晶顯示器的輻射和閃爍比CRT要小的多,但它那要命的對比度、那要命的色澤度、還有那大于每平方米300cd的亮度,這些都會對眼睛造成很大的傷害,并且你即使將液晶顯示器的亮度和對比度調(diào)節(jié)到最低,也還是非常的刺眼。德國的一家權(quán)威機(jī)構(gòu)做過一項(xiàng)調(diào)查:液晶顯示器用久了會使人的眼睛感覺到疲倦,甚至頭痛等癥狀,而使用相同時(shí)間的CRT顯示器,卻基本沒有這些情況出現(xiàn)。現(xiàn)在的通過TCO03認(rèn)證的CRT顯示器,其實(shí)外露的輻射已經(jīng)相當(dāng)小了,基本上對人已經(jīng)沒有多大的傷害了,閃爍感也可以通過調(diào)節(jié)刷新率來降低,筆者實(shí)在是搞不懂為什么很多人非要去選擇液晶顯示器,還非要說液晶顯示器不傷眼睛??一個(gè)最差的17寸液晶顯示器的價(jià)格,能買一臺不錯的、通過TCO03標(biāo)準(zhǔn)的19寸CRT了,顯示面積也差不多大,而且CRT又比液晶更保護(hù)眼睛,液晶顯示器唯一的一個(gè)優(yōu)點(diǎn)就是占用空間小而已,其他的統(tǒng)統(tǒng)是缺點(diǎn),為什么不選擇CRT呢??說到TCO03標(biāo)準(zhǔn),現(xiàn)在很多的號稱是通過TCO03認(rèn)證的顯示器,其實(shí)都是貼牌的,都沒有真正的

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論