網(wǎng)站流量統(tǒng)計系統(tǒng)_第1頁
網(wǎng)站流量統(tǒng)計系統(tǒng)_第2頁
網(wǎng)站流量統(tǒng)計系統(tǒng)_第3頁
網(wǎng)站流量統(tǒng)計系統(tǒng)_第4頁
網(wǎng)站流量統(tǒng)計系統(tǒng)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

PAGE./網(wǎng)站流量統(tǒng)計系統(tǒng)摘要網(wǎng)站流量統(tǒng)計是改進(jìn)網(wǎng)站服務(wù)的重要手段之一,通過獲取用戶在網(wǎng)站的行為,可以分析出哪些內(nèi)容受到歡迎,哪些頁面存在問題,從而使網(wǎng)站改進(jìn)活動更具有有針對性。常用的網(wǎng)站流量統(tǒng)計指標(biāo)包括三類:〔1網(wǎng)站流量指標(biāo),如在一定統(tǒng)計周期那網(wǎng)站的獨(dú)立用戶數(shù)量、總用戶數(shù)量、網(wǎng)頁瀏覽數(shù)量、每個用戶的頁面瀏覽數(shù)量等;〔2用戶行為指標(biāo),如用戶來源網(wǎng)站、用戶所使用的搜索引擎及其關(guān)鍵詞、在不同時段的訪問量情況等;〔3用戶瀏覽網(wǎng)站的方式,如用戶上網(wǎng)設(shè)備類型、用戶瀏覽器的名稱和版本、訪問者電腦分辨率顯示模式等。獲取網(wǎng)站訪問統(tǒng)計資料通常有兩種方法:〔1在自己的網(wǎng)站服務(wù)器端安裝統(tǒng)計分析軟件進(jìn)行監(jiān)測;〔2采用第三方提供的網(wǎng)站流量分析服務(wù)。兩種方法各有利弊,采用第一種方法可以方便地獲得詳細(xì)的網(wǎng)站統(tǒng)計信息,并且除了訪問統(tǒng)計軟件的費(fèi)用之外無需其他直接的費(fèi)用,但由于這些資料在自己的服務(wù)器上,因此在向第三方提供有關(guān)數(shù)據(jù)時缺乏說服力;第二種方法則正好具有這種優(yōu)勢,但通常要為這種服務(wù)付費(fèi),雖然也有一些免費(fèi)網(wǎng)站流量統(tǒng)計服務(wù),但由于在功能方面會有一定的限制,或者通常需要在網(wǎng)站上出現(xiàn)服務(wù)商的標(biāo)識甚至廣告。因此本人以第三方統(tǒng)計網(wǎng)站流量為設(shè)計基礎(chǔ),運(yùn)用Python編程語言及其web開發(fā)框架Django,結(jié)合SQLite3數(shù)據(jù)庫,完成對訪客的IP地址,瀏覽器,操作系統(tǒng),瀏覽頁面的記錄,并按時間單位進(jìn)行統(tǒng)計統(tǒng)計。關(guān)鍵詞網(wǎng)站流量統(tǒng)計;Python;Django;SQLite;.第1章緒論1.1網(wǎng)站流量統(tǒng)計的動機(jī)在用戶訪問模式、Web軟件組件的性能和基本網(wǎng)絡(luò)基礎(chǔ)設(shè)施的特征參數(shù)提取中,Web流量測量起著關(guān)鍵的作用。內(nèi)容創(chuàng)建者可以從用戶瀏覽模式測量那里收集有價值的數(shù)據(jù)。考慮銷售圖書的電子商務(wù)站點(diǎn),站點(diǎn)訪問者數(shù)量的統(tǒng)計數(shù)字將影響Web頁面里嵌廣告帶來的廣告收入。另外,分析用戶訪問模式可以指導(dǎo)Web站點(diǎn)重新設(shè)計的過程。設(shè)想有許多用戶訪問主頁,并點(diǎn)擊特定次序的超文本鏈接以查找到平裝書籍。這將激發(fā)改變主頁的想法,以提供給含有大量普通圖書列表的直接鏈接。知道用戶停留在網(wǎng)站有多長時間和下載了多少網(wǎng)頁將是很有用的。如果許多用戶在查看了一兩頁后就離開的話,那么網(wǎng)站就需要更好地組織或增加更令人感興趣的資料。在連續(xù)網(wǎng)頁間迅速切換的用戶可能不會發(fā)現(xiàn)他們想要的信息。于是內(nèi)容創(chuàng)建者可通過允許用戶根據(jù)主題搜索站點(diǎn)來解決這個問題。內(nèi)容的創(chuàng)建者也可能對知道用戶怎么到達(dá)Web站點(diǎn)感興趣。例如,設(shè)想對圖書網(wǎng)站的訪問請求的25%是用戶從某個新聞網(wǎng)站點(diǎn)擊超文本鏈接而來,那么圖書銷售商可能會在這個新聞網(wǎng)站繼續(xù)做廣告。測量也可以用來刻畫Web站點(diǎn)的性能特征。1.2網(wǎng)站流量統(tǒng)計指標(biāo)網(wǎng)站流量統(tǒng)計的基礎(chǔ)是獲取網(wǎng)站流量的基本數(shù)據(jù),網(wǎng)站流量統(tǒng)計指標(biāo)大致可以分為三類,每類包含若干數(shù)量的統(tǒng)計指標(biāo)。具體的網(wǎng)站流量統(tǒng)計是通過不同的IP登陸網(wǎng)站來計算的。也就是說,一天內(nèi)同一臺機(jī)器登陸網(wǎng)站的次數(shù)不論是多少,在流量統(tǒng)計中只記為一次有效登陸,這種計算方法可以較為科學(xué)的計算出有多少人登陸過該網(wǎng)站,有效的防止了有意的對網(wǎng)站進(jìn)行刷新從而增加自己網(wǎng)站的點(diǎn)擊率。網(wǎng)站流量指標(biāo):1、獨(dú)立的訪問者數(shù)量〔uniquevisitors;2、重復(fù)的訪問者數(shù)量〔repeatvisitors;3、頁面瀏覽數(shù)〔pageviews;4、每個訪問者的頁面瀏覽數(shù)〔pageviewsperuser;5、某些具體文件/頁面的統(tǒng)計指標(biāo),如頁面顯示次數(shù)、文件下載次數(shù)等。用戶行為指標(biāo):1、用戶在網(wǎng)站的停留時間;2、用戶來源網(wǎng)站〔也叫"引導(dǎo)網(wǎng)站";3、用戶所使用的搜索引擎及其關(guān)鍵詞;4、在不同時段的用戶訪問量情況等。用戶瀏覽網(wǎng)站的方式:1、用戶上網(wǎng)設(shè)備類型;2、用戶瀏覽器的名稱和版本;3、訪問者電腦分辨率顯示模式;4、用戶所使用的操作系統(tǒng)名稱和版本;5、用戶所在地理區(qū)域分布狀況等。1.3網(wǎng)站流量統(tǒng)計原理當(dāng)瀏覽者訪問網(wǎng)站時,會向網(wǎng)站所在服務(wù)器發(fā)送HTTP請求,由于網(wǎng)頁是富媒體聚合形式,當(dāng)引用第三方的圖片、音頻、視頻時,也會向媒體所在服務(wù)器發(fā)送請求。通過向所要統(tǒng)計網(wǎng)站頁面中插入一段HTML代碼來實行轉(zhuǎn)向訪問。HTTP請求標(biāo)頭〔Request-Header中包含了用戶代理〔User-Agent,引用地址〔Referer,以及通過WEB服務(wù)器獲得客戶端的IP地址。絕大多數(shù)HTTP通訊由用戶代理進(jìn)行初始化,并通過它來組裝請求以獲取存儲在一些原始服務(wù)器上的資源。在最簡單的情況下,通過用戶代理與原始服務(wù)器之間一個簡單的連接就可以完成。用戶代理用戶代理原始服務(wù)器請求鏈接用戶代理原始服務(wù)器簡單連接用戶代理原始服務(wù)器響應(yīng)鏈接圖1.1HTTP通訊過程HTTP/1.0的請求標(biāo)頭允許客戶端向服務(wù)器端傳遞該請求的附加信息及客戶端信息。該域做為請求的修飾部分,遵照編程語言程序調(diào)用參數(shù)的語法形式。[1][2]Request-Header=Authorization ;用戶代理的身份憑證|From ;用戶的電子郵件地址|If-Modified-Since ;同最后一次修改時間的比較|Referer ;引用頁面的URI|User-Agent ;用戶代理軟件的信息HTTP/1.1請求標(biāo)頭已經(jīng)增加到了19個,不過增加的部分并不包含所要收集的數(shù)據(jù),所以本文不進(jìn)行列舉。第2章Python語言及Django框架簡介2.1Python語言簡介Python是一門跨平臺的腳本語言,Python規(guī)定了一個Python語法規(guī)則,實現(xiàn)了Python語法的解釋程序就成為了Python的解釋器,我們用的比較多的是C版本的Python,也就是使用C語言實現(xiàn)的Python解釋器,除此之外還有使用Java實現(xiàn)的Jython和使用.NET實現(xiàn)的IronPython,這些實現(xiàn)可以使Python用戶充分利用己有的Java及.NET資源。同時,Python支持幾乎所有常用的操作系統(tǒng),包括:Windows/DOS、Macintosh、Linux及FreeBSD。及很多不常用的操作系統(tǒng),包括AIX、AS/400<OS/400>、BeOS、OS/2、OS/390與z/OS、PalmOS、PlayStation與PSP、Psion、QNX、RISCOS、Series60、SparcSolaris、VMS、VxWorks、WindowsCE或PocketPC、SharpZaurus、MorphOS等??蓴U(kuò)充性可說是Python作為一種編程語言的特色。新的內(nèi)置模塊〔module可以用C或C++寫成。而我們也可為現(xiàn)成的模塊加上Python的界面。Python可以使用戶避免過分的語法的羈絆而將精力主要集中到所要實現(xiàn)的程序任務(wù)上。因此Python具有非常龐大的程序庫,通過它們可以快速完成絕大部分常用的任務(wù),如:從某個URL中獲取信息、正則表達(dá)式、獲得某個文件或字符串的MD5特征字符串、多線程、XML及HTML的分析等。Python也被稱為是一門清晰的語言。因為它的作者在設(shè)計它的時候,總的指導(dǎo)思想是,對于一個特定的問題,只要有一種最好的方法來解決就好了2.2Django框架簡介Django是一個開放源代碼的Web應(yīng)用框架,由Python寫成。采用了MVC的設(shè)計模式,即模型M,模版T和視圖控制器V。它最初是被開發(fā)來用于管理勞倫斯出版集團(tuán)旗下的一些以新聞內(nèi)容為主的網(wǎng)站的。并于2005年7月在BSD許可證下發(fā)布。這套框架是以比利時的吉普賽爵士吉他手DjangoReinhardt來命名的。Django的主要目標(biāo)是使得開發(fā)復(fù)雜的、數(shù)據(jù)庫驅(qū)動的網(wǎng)站變得簡單。Django注重組件的重用性和"可插拔性",敏捷開發(fā)和DRY法則〔Don'tRepeatYourself。在Django中Python被普遍使用,甚至包括配置文件和數(shù)據(jù)模型。Django框架的核心包括:一個對象-關(guān)系的映射器,用作數(shù)據(jù)模型〔以Python類的形式定義和關(guān)系數(shù)據(jù)庫間的媒介;一個基于正則表達(dá)式的URL分發(fā)器;一個視圖系統(tǒng),用于處理請求;以及一個模板系統(tǒng)。核心框架中還包括:1、一個輕量級的、獨(dú)立的Web服務(wù)器,用于開發(fā)和測試。2、一個表單序列化及驗證系統(tǒng),用于HTML表單和適于數(shù)據(jù)庫存儲的數(shù)據(jù)之間的轉(zhuǎn)換。3、一個緩存框架,并有幾種緩存方式可供選擇。4、中間件支持,允許對請求處理的各個階段進(jìn)行干涉。5、內(nèi)置的分發(fā)系統(tǒng)允許應(yīng)用程序中的組件采用預(yù)定義的信號進(jìn)行相互間的通信。6、一個序列化系統(tǒng),能夠生成或讀取采用XML或JSON表示的Django模型實例。7、一個用于擴(kuò)展模板引擎的能力的系統(tǒng)。Django包含了很多應(yīng)用在它的"contrib"包中,這些包括:1、一個可擴(kuò)展的認(rèn)證系統(tǒng)2、動態(tài)站點(diǎn)管理頁面3、一組產(chǎn)生RSS和Atom的工具4、一個靈活的評論系統(tǒng)5、產(chǎn)生Google站點(diǎn)地圖<GoogleSitemaps>的工具6、防止跨站請求偽造〔cross-siterequestforgery的工具7、一套支持輕量級標(biāo)記語言〔Textile和Markdown的模板庫8、一套協(xié)助創(chuàng)建地理信息系統(tǒng)〔GIS的基礎(chǔ)框架2.3SQLite數(shù)據(jù)庫簡介SQLite是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域項目。不像常見的客戶-服務(wù)器范例,SQLite引擎不是個程序與之通信的獨(dú)立進(jìn)程,而是連接到程序中成為它的一個主要部分。所以主要的通信協(xié)議是在編程語言內(nèi)的直接API調(diào)用。這在消耗總量、延遲時間和整體簡單性上有積極的作用。整個數(shù)據(jù)庫〔定義、表、索引和數(shù)據(jù)本身都在宿主主機(jī)上存儲在一個單一的文件中。它的簡單的設(shè)計是通過在開始一個事務(wù)的時候鎖定整個數(shù)據(jù)文件而完成的。庫實現(xiàn)了多數(shù)的SQL-92標(biāo)準(zhǔn),包括事務(wù),就是代表原子性、一致性、隔離性和持久性的〔ACID,觸發(fā)器和多數(shù)的復(fù)雜查詢。不進(jìn)行類型檢查。你可以把字符串插入到整數(shù)列中。例如,某些用戶發(fā)現(xiàn)這是使數(shù)據(jù)庫更加有用的創(chuàng)新,特別是與無類型的腳本語言一起使用的時候。其他用戶認(rèn)為這是主要的缺點(diǎn)。多個進(jìn)程或線程可以訪問同一個數(shù)據(jù)而沒有問題??梢圆⑿械臐M足多個讀訪問。只有在其他訪問當(dāng)前不被服務(wù)的時候才能滿足寫訪問;否則寫訪問失敗并帶有一個錯誤代碼〔也可以在可配置的超時過期之后自動的重試。提供了叫做sqlite的一個獨(dú)立程序用來查詢和管理SQLite數(shù)據(jù)庫文件。它也充當(dāng)寫使用SQLite庫的應(yīng)用的一個例子第3章需求分析3.1系統(tǒng)描述網(wǎng)站流量統(tǒng)計系統(tǒng)包括三個基本部分,一個是記錄訪客部分,包括記錄訪客的IP地址,瀏覽器信息,操作系統(tǒng)信息,瀏覽時間,離開時間,瀏覽頁面,會話記錄。一個是系統(tǒng)管理部分,包括用戶管理,用戶組管理,權(quán)限管理,站點(diǎn)管理,訪客管理。還有一個是統(tǒng)計部分,包括在線人數(shù)統(tǒng)計,綜合數(shù)據(jù)統(tǒng)計,單日流量統(tǒng)計等。3.2統(tǒng)計網(wǎng)站識別本系統(tǒng)由于要對多個網(wǎng)站進(jìn)行統(tǒng)計,所以必須區(qū)分訪問不同站點(diǎn)的訪客。每個網(wǎng)站都由系統(tǒng)生成唯一的編號,通過讓不同的網(wǎng)站引用名為該網(wǎng)站編號的圖片,就能區(qū)分出是來自哪個網(wǎng)站的訪客。3.3頁面識別一個網(wǎng)站包含多個頁面。區(qū)分訪客對不同頁面的訪問對統(tǒng)計來說意義重大。在圖片請求Request中的Referer包含引用圖片的網(wǎng)頁的網(wǎng)址。通過它不僅能區(qū)分訪客訪問什么頁面,還能判斷是否是屬于某網(wǎng)站域名下的URL,以過濾第三方引用圖片造成的Request。3.4訪客識別區(qū)分不同的訪客是統(tǒng)計系統(tǒng)的關(guān)鍵所在,一般認(rèn)為一個IP代表一個訪客。但是當(dāng)多個內(nèi)網(wǎng)訪客共用一個外網(wǎng)IP時,就會造成只有一個訪客的假像。通過基于Cookie的會話〔session機(jī)制,就能區(qū)分以瀏覽器客戶端為單位的用戶。3.5停留時間Http是一個無狀態(tài)協(xié)議,同一個會話的連續(xù)兩個請求互相不了解,他們由最新實例化的環(huán)境進(jìn)行解析,除了應(yīng)用本身可能已經(jīng)存儲在全局對象中的所有信息外,該環(huán)境不保存有會話有關(guān)的任何信息。因此需要依賴Ajax技術(shù),由客戶端每隔數(shù)秒想服務(wù)器發(fā)送Request,以維持狀態(tài)的持續(xù)性。當(dāng)關(guān)閉頁面時,Request發(fā)送就會停止,由此可以確定訪客的停留時間.第4章系統(tǒng)設(shè)計4.1數(shù)據(jù)庫關(guān)系結(jié)構(gòu)圖單向箭頭表示多對一關(guān)系,雙向箭頭表示多多對多關(guān)系。用戶用戶訪客權(quán)限網(wǎng)站用戶組消息圖4.1數(shù)據(jù)庫結(jié)構(gòu)關(guān)系示意圖4.2數(shù)據(jù)庫表結(jié)構(gòu)4.2.1基本表1、訪客表描述表4.1訪客表描述字段名含義說明別名類型允許空是否主鍵是否外鍵id唯一標(biāo)識integer否是否addrIP地址IPchar<15>否否否browser瀏覽器名瀏覽器varchar<30>否否否version瀏覽器版本瀏覽器版本varchar<20>否否否os操作系統(tǒng)操作系統(tǒng)varchar<30>否否否os_version操作系統(tǒng)版本操作系統(tǒng)版本varchar<20>否否否session會話標(biāo)識varchar<32>否否否refere引用路徑路徑varchar<200>否否否start訪客訪問時間訪問時間datetime否否否end訪客離開時間離開時間datetime否否否agent用戶代理信息用戶代理varchar<300>否否否website_id網(wǎng)站標(biāo)識integer否否是2、網(wǎng)站表描述表4.2網(wǎng)站表描述字段名含義說明別名類型允許空是否主鍵是否外鍵id唯一標(biāo)識integer否是否name網(wǎng)站名網(wǎng)站名varchar<300>否否否url網(wǎng)站網(wǎng)址URLvarchar<200>否否否user_id用戶標(biāo)識integer否否是3、用戶表描述表4.3用戶表描述字段名含義說明別名類型允許空是否主鍵是否外鍵id唯一標(biāo)識integer否是否username用戶名用戶名varchar<30>否否否first_name名字名字varchar<30>否否否last_name姓氏姓氏varchar<30>否否否emailE-mail地址E-mail地址varchar<75>否否否password帳號密碼密碼varchar<128>否否否is_staff是否職員職員狀態(tài)bool否否否is_active是否可用有效bool否否否is_superuser是否超級用戶超級用戶狀態(tài)bool否否否last_login最后登陸時間上次登錄datetime否否否date_joined帳號注冊時間加入日期datetime否否否4、用戶組表描述表4.4用戶組表描述字段名含義說明別名類型允許空是否主鍵是否外鍵id唯一標(biāo)識integer否是否name組名組名varchar<30>否否否5、權(quán)限表描述表4.5用戶權(quán)限表描述字段名含義說明別名類型允許空是否主鍵是否外鍵id唯一標(biāo)識integer否是否name權(quán)限名權(quán)限名varchar<30>否否否6、消息表描述表4.6用戶消息表描述字段名含義說明別名類型允許空是否主鍵是否外鍵id唯一標(biāo)識integer否是否user_id權(quán)限名權(quán)限名varchar<30>否否是message權(quán)限名權(quán)限名text否否否4.2.11、用戶組和權(quán)限關(guān)系表表4.7用戶組和用戶權(quán)限關(guān)系表描述字段名含義說明別名類型允許空是否主鍵是否外鍵id唯一標(biāo)識integer否是否group_id用戶組標(biāo)識integer否否是permission_id權(quán)限標(biāo)識integer否否是2、用戶和用戶組關(guān)系表表4.8用戶和用戶組關(guān)系權(quán)限表描述字段名含義說明別名類型允許空是否主鍵是否外鍵id唯一標(biāo)識integer否是否user_id用戶組標(biāo)識integer否否是group_id權(quán)限標(biāo)識integer否否是3、用戶和權(quán)限關(guān)系表表4.9用戶和權(quán)限表描述字段名含義說明別名類型允許空是否主鍵是否外鍵id唯一標(biāo)識integer否是否user_id用戶標(biāo)識integer否否是group_id用戶組標(biāo)識integer否否是第5章系統(tǒng)實現(xiàn)5.1訪客記錄的實現(xiàn)主要從客戶端瀏覽器的請求中獲得訪客的IP地址,瀏覽器信息,操作系統(tǒng)信息,瀏覽時間,瀏覽頁面。訪客訪客通過瀏覽器瀏覽網(wǎng)站間接訪問引用圖片和JS腳本統(tǒng)計服務(wù)器瀏覽器圖片RequestJS每數(shù)秒發(fā)送Resquest圖5.1數(shù)據(jù)庫結(jié)構(gòu)關(guān)系示意圖統(tǒng)計服務(wù)器從瀏覽器客戶端的Request中獲取HTTP_USER_AGENT,REMOTE_ADDR,HTTP_REFERER。瀏覽器客戶端每數(shù)秒發(fā)送一個請求以維持長連接狀態(tài)。5.2管理界面的實現(xiàn)注冊頁面在該頁面注冊的用戶為普通用戶,具有USERS組權(quán)限,即添加網(wǎng)站,修改網(wǎng)站,刪除網(wǎng)站,查看統(tǒng)計。圖5.2注冊頁面登錄頁面 這是系統(tǒng)的唯一接口,所有用戶都要在這登錄才能進(jìn)行下一步操作,需要客戶端瀏覽器支持Cookie。圖5.3登錄頁面超級用戶頁面超級用戶能對所有用戶,用戶組,網(wǎng)站,訪客數(shù)據(jù)進(jìn)行所有權(quán)限管理。圖5.4超級用戶頁面網(wǎng)站管理在網(wǎng)站管理頁面中,可以進(jìn)行網(wǎng)站的添加刪除和修改。網(wǎng)站信息包括網(wǎng)站名,網(wǎng)站的URL。其中網(wǎng)站的URL必須保證其可訪問性。圖5.5網(wǎng)站管理頁面訪客信息訪客中包含訪客的IP,瀏覽器,操作系統(tǒng),訪問時間,離開時間。以及按訪問時間,瀏覽器,操作系統(tǒng)分組查看信息。只有超級用戶才能對訪客信息進(jìn)行添加刪除修改。圖5.6訪客管理頁面用戶管理用戶管理只有超級用戶用戶才能訪問,可以添加刪除用戶,及修改用戶的用戶名,密碼,名字,姓氏,E-mail地址,職員狀態(tài),有效性,權(quán)限,用戶組。圖5.7用戶管理頁面圖5.8用戶修改頁面用戶組管理用戶組管理只有超級用戶用戶才能訪問,可以添加刪除用戶組,及修改用戶組的對各個表的操作權(quán)限。圖5.9用戶組管理頁面圖5.10用戶組管理頁面5.3統(tǒng)計界面的實現(xiàn)在線人數(shù)統(tǒng)計在線人數(shù)為當(dāng)前15分鐘,10分鐘和5分鐘內(nèi)瀏覽某網(wǎng)站的訪客數(shù)。其中uv代表獨(dú)立用戶〔UniqueVisitor。圖5.11在線人數(shù)統(tǒng)計綜合統(tǒng)計報告綜合統(tǒng)計中包含pv,uv,ip以天為單位的數(shù)據(jù),其中PV代表頁面訪問量,UV代表獨(dú)立訪客,IP代表獨(dú)立IP。圖5.12綜合統(tǒng)計報告單日統(tǒng)計報告統(tǒng)計某日內(nèi)的以小時為單位的pv,uv,ip總數(shù)。圖5.13單日統(tǒng)計報告第6章系統(tǒng)測試6.1功能測試鏈接測試鏈接是web應(yīng)用系統(tǒng)的一個主要特征,它是在頁面之間切換和指導(dǎo)用戶去一些不知道地址的頁面的主要手段。鏈接測試可分為三個方面。首先,測試所有鏈接是否按指示的那樣確實鏈接到了該鏈接的頁面;其次,測試所鏈接的頁面是否存在;最后,保證web應(yīng)用系統(tǒng)上沒有孤立的頁面,所謂孤立頁面是指沒有鏈接指向該頁面,只有知道正確的url地址才能訪問。鏈接測試可以自動進(jìn)行,現(xiàn)在已經(jīng)有許多工具可以采用。鏈接測試必須在集成測試階段完成,也就是說,在整個web應(yīng)用系統(tǒng)的所有頁面開發(fā)完成之后進(jìn)行鏈接測試。表單測試當(dāng)用戶給web應(yīng)用系統(tǒng)管理員提交信息時,就需要使用表單操作,例如用戶注冊、登陸、信息提交等。在這種情況下,我們必須測試提交操作的完整性,以校驗提交給服務(wù)器的信息的正確性。例如:用戶填寫的出生日期與職業(yè)是否恰當(dāng),填寫的所屬省份與所在城市是否匹配等。如果使用了默認(rèn)值,還要檢驗?zāi)J(rèn)值的正確性。如果表單只能接受指定的某些值,則也要進(jìn)行測試。例如:只能接受某些字符,測試時可以跳過這些字符,看系統(tǒng)是否會報錯。6.1.3cookies測試cookies通常用來存儲用戶信息和用戶在某應(yīng)用系統(tǒng)的操作,當(dāng)一個用戶使用cookies訪問了某一個應(yīng)用系統(tǒng)時,web服務(wù)器將發(fā)送關(guān)于用戶的信息,把該信息以cookies的形式存儲在客戶端計算機(jī)上,這可用來創(chuàng)建動態(tài)和自定義頁面或者存儲登陸等信息。如果web應(yīng)用系統(tǒng)使用了cookies,就必須檢查cookies是否能正常工作。測試的內(nèi)容可包括cookies是否起作用,是否按預(yù)定的時間進(jìn)行保存,刷新對cookies有什么影響等。設(shè)計語言測試web設(shè)計語言版本的差異可以引起客戶端或服務(wù)器端嚴(yán)重的問題,例如使用哪種版本的html等。當(dāng)在分布式環(huán)境中開發(fā)時,開發(fā)人員都不在一起,這個問題就顯得尤為重要。除了html的版本問題外,不同的腳本語言,例如Java、JavaScript、activex、vbscript或perl等也要進(jìn)行驗證。數(shù)據(jù)庫測試在web應(yīng)用技術(shù)中,數(shù)據(jù)庫起著重要的作用,數(shù)據(jù)庫為web應(yīng)用系統(tǒng)的管理、運(yùn)行、查詢和實現(xiàn)用戶對數(shù)據(jù)存儲的請求等提供空間。在web應(yīng)用中,最常用的數(shù)據(jù)庫類型是關(guān)系型數(shù)據(jù)庫,可以使用sql對信息進(jìn)行處理。在使用了數(shù)據(jù)庫的web應(yīng)用系統(tǒng)中,一般情況下,可能發(fā)生兩種錯誤,分別是數(shù)據(jù)一致性錯誤和輸出錯誤。數(shù)據(jù)一致性錯誤主要是由于用戶提交的表單信息不正確而造成的,而輸出錯誤主要是由于網(wǎng)絡(luò)速度或程序設(shè)計問題等引起的,針對這兩種情況,可分別進(jìn)行測試。6.2性能測試6.2.1連接速度測試用戶連接到web應(yīng)用系統(tǒng)的速度根據(jù)上網(wǎng)方式的變化而變化,他們或許是電話撥號,或是寬帶上網(wǎng)。當(dāng)下載一個程序時,用戶可以等較長的時間,但如果僅僅訪問一個頁面就不會這樣。如果web系統(tǒng)響應(yīng)時間太長〔例如超過5秒鐘,用戶就會因沒有耐心等待而離開。另外,有些頁面有超時的限制,如果響應(yīng)速度太慢,用戶可能還沒來得及瀏覽內(nèi)容,就需要重新登陸了。而且,連接速度太慢,還可能引起數(shù)據(jù)丟失,使用戶得不到真實的頁面。6.2.2負(fù)載測試負(fù)載測試是為了測量web系統(tǒng)在某一負(fù)載級別上的性能,以保證web系統(tǒng)在需求范圍內(nèi)能正常工作。負(fù)載級別可以是某個時刻同時訪問web系統(tǒng)的用戶數(shù)量,也可以是在線數(shù)據(jù)處理的數(shù)量。例如:web應(yīng)用系統(tǒng)能允許多少個用戶同時在線?如果超過了這個數(shù)量,會出現(xiàn)什么現(xiàn)象?web應(yīng)用系統(tǒng)能否處理大量用戶對同一個頁面的請求?6.2.3壓力測試負(fù)載測試應(yīng)該安排在web系統(tǒng)發(fā)布以后,在實際的網(wǎng)絡(luò)環(huán)境中進(jìn)行測試。因為一個企業(yè)內(nèi)部員工,特別是項目組人員總是有限的,而一個web系統(tǒng)能同時處理的請求數(shù)量將遠(yuǎn)遠(yuǎn)超出這個限度,所以,只有放在internet上,接受負(fù)載測試,其結(jié)果才是正確可信的。進(jìn)行壓力測試是指實際破壞一個web應(yīng)用系統(tǒng),測試系統(tǒng)的反映。壓力測試是測試系統(tǒng)的限制和故障恢復(fù)能力,也就是測試web應(yīng)用系統(tǒng)會不會崩潰,在什么情況下會崩潰。黑客常常提供錯誤的數(shù)據(jù)負(fù)載,直到web應(yīng)用系統(tǒng)崩潰,接著當(dāng)系統(tǒng)重新啟動時獲得存取權(quán)。壓力測試的區(qū)域包括表單、登陸和其他信息傳輸頁面等。6.3可用性測試6.3.1導(dǎo)航測試導(dǎo)航描述了用戶在一個頁面內(nèi)操作的方式,在不同的用戶接口控制之間,例如按鈕、對話框、列表和窗口等;或在不同的連接頁面之間。通過考慮下列問題,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論