基于Django的購物網(wǎng)站_第1頁
基于Django的購物網(wǎng)站_第2頁
基于Django的購物網(wǎng)站_第3頁
基于Django的購物網(wǎng)站_第4頁
基于Django的購物網(wǎng)站_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

問題定義1.1系統(tǒng)名稱基于Django的購物網(wǎng)站1.2問題的提出隨著市場經(jīng)濟和科學(xué)技術(shù)的飛躍式發(fā)展,現(xiàn)在經(jīng)濟市場環(huán)境中出現(xiàn)了多樣化銷售和消費模式,即網(wǎng)上購物和網(wǎng)絡(luò)銷售。這就意味著市場競爭中虛擬客戶資源競爭成為了主導(dǎo)型競爭。購物需求也跟著這種環(huán)境的變化而發(fā)生很大的變化。為了讓消費和銷售渠道能夠適應(yīng)這樣的經(jīng)濟環(huán)境,開發(fā)出這樣一套電商網(wǎng)站是滿足電商和消費者需求的必要工作。本網(wǎng)站基于B2C商業(yè)模式,實現(xiàn)一套易復(fù)制,易上手的簡單購物網(wǎng)站。1.3系統(tǒng)開發(fā)目標及范圍本網(wǎng)站基于B2C商業(yè)模式,按照用戶需求和商家經(jīng)營模式出發(fā),實現(xiàn)用戶的注冊與登錄、用戶信息管理、商品更新、商品信息展示、訂單與訂單管理等功能。項目總體目標是搭建購物網(wǎng)站平臺,不僅滿足目前的商家經(jīng)營模式,還要滿足用戶消費行為,而且要具備良好的可擴展性。系統(tǒng)主要分為以下功能:用戶模塊:主要包括用戶信息保存與管理,用戶權(quán)限的管理,用戶瀏覽記錄顯示等。商品相關(guān):主要包括商品數(shù)據(jù)保存與管理,商品展示等。購物車相關(guān):主要實現(xiàn)用戶添加購物車的商品管理、下單付款等等。訂單相關(guān):主要實現(xiàn)訂購單保存與管理。后臺商品更新相關(guān):實現(xiàn)商品,促銷活動等添加。關(guān)鍵字搜索:實現(xiàn)基于商品的搜索,顯示商品詳細信息。1.4研究意義電子商務(wù)是目前比較熱門的行業(yè),電商軟件系統(tǒng)不管是技術(shù)關(guān)注度還是資本投資是非常有優(yōu)越性的,也是現(xiàn)在經(jīng)濟市場環(huán)境的迫切需要。雖然網(wǎng)絡(luò)銷售并不能完全取代傳統(tǒng)的銷售模式,但是因為線上銷售天然的靈活性優(yōu)勢,能夠快速調(diào)整運營策略進行調(diào)整,讓其能夠滿足特定用戶的特定需求。這樣我們可以輕而易舉地明白本課題的研究意義:我們的工作就是從用戶消費習(xí)慣和商家關(guān)注問題出發(fā),從目前的銷售策略中總結(jié)幾套電商運營模式,通過互聯(lián)網(wǎng)技術(shù)開發(fā)出能夠滿足用戶需求的網(wǎng)購系統(tǒng),同時進一步完善這種運營模式,得到商家的青睞,從而促進電商行業(yè)發(fā)展。2可行性分析2.1現(xiàn)行系統(tǒng)調(diào)研2.1.1現(xiàn)行系統(tǒng)目標基于B2C商業(yè)模式,按照用戶需求和商家經(jīng)營模式出發(fā),實現(xiàn)用戶注冊與登錄進入網(wǎng)站的功能、用戶各類信息的管理、商品合理的展示、商品更新、訂單與訂單管理等功能。項目總體目標是搭建購物網(wǎng)站平臺,不僅滿足目前的商家經(jīng)營模式,還要滿足用戶消費行為,而且要具備良好的可擴展性與安全性。比如,只有商家和商家審核通過的管理員通過用戶名密碼進入網(wǎng)站后臺進行商品信息添加、更新、刪除等操作,而普通用戶不能進入網(wǎng)站后臺。2.2可行性分析2.2.1技術(shù)可行性(1)本網(wǎng)站采用pycharm2018.01作為開發(fā)工具,它具有強大的數(shù)據(jù)庫開發(fā)功能以及豐富的編程環(huán)境,其設(shè)計、開發(fā)、調(diào)試和部署非常方便。(2)python作為一種面向?qū)ο蟮膭討B(tài)類型計算機程序設(shè)計的專業(yè)語言,具有以下優(yōu)點:第一,Python門檻低,通過深入的學(xué)習(xí),可以編寫復(fù)雜的應(yīng)用程序,比如本文中的購物網(wǎng)站。第二,Python帶有強大的第三方庫,官方庫里有相應(yīng)的模塊,基本上可以實現(xiàn)我們所需要的任何功能??梢韵螺d對應(yīng)的python庫,在次基礎(chǔ)上進行二次開發(fā),大大降低程序開發(fā)時間,避免重復(fù)地造輪子,降低效率。第三,python是高級編程語言,封裝了底層操作,通過python寫代碼的時候不需要關(guān)心內(nèi)存地址等底層信息。第四,python是免費開源的,已經(jīng)被廣大技術(shù)愛好者移植在許多系統(tǒng)平臺上。如果我們的程序不依賴于系統(tǒng)的某些特性,那么不用進行任何修改就幾乎能夠可以在市場上所有的系統(tǒng)平臺上運行。第五,python具有強大的擴展性。涉及到機密的代碼不希望被公開或者需要更快的運行速度,可以把這些部分程序用C或C++編寫,然后在Python程序中進行。(2)本網(wǎng)站采用Djangoweb框架。作為免費,開源的框架,社區(qū)上有大量的問題教程,可以求教。它可以解決Web開發(fā)的大部分挑戰(zhàn)問題,程序設(shè)計者指需要考慮應(yīng)用程序的代碼,無需考慮其它問題造成發(fā)明輪子。本框架使用了mvt的設(shè)計模式,其中,M是Model的縮寫,與MVC中的M具有相同的功能,負責(zé)和數(shù)據(jù)庫進行交互,完成處理數(shù)據(jù)工作。V是View的縮寫,與MVC中的C具有相同的功能,它專門負責(zé)接相應(yīng)的請求,進行響應(yīng)業(yè)務(wù)處理,然后進行返回應(yīng)答。T是Template的縮寫,與MVC中的V具有相同的功能,專門負責(zé)封裝并構(gòu)造將要要返回的html頁面。下圖為django框架結(jié)構(gòu)圖:圖django框架結(jié)構(gòu)圖FigDjangoFrameStructuralDiagram數(shù)據(jù)庫采用mysql。與傳統(tǒng)的nosql數(shù)據(jù)庫不同,mysql是完全酸性的(原子性,一致性,隔離性和耐久性)符合。NoSQL數(shù)據(jù)庫通常缺乏耐用性。這意味著數(shù)據(jù)可能在崩潰后丟失。也不能保證一致性。作為MySQL文檔存儲依賴于InnoDB存儲引擎,文檔存儲受益于InnoDB的強大和強大。默認情況下,開箱即用,InnoDB是完全耐用的。一旦確認數(shù)據(jù)已提交,它將不會丟失。MySQL作為一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應(yīng)用方面,是非常好的選擇。關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,這樣不僅可以增加數(shù)據(jù)獲取速度速度,同時也能提高數(shù)據(jù)獲取的靈活性。由于其體積小、速度快、成本低,尤其是開放源碼,收到了程序開發(fā)者和小型網(wǎng)站的的青睞和喜愛,都選擇MySQL作為網(wǎng)站的數(shù)據(jù)庫。(4)使用Redis數(shù)據(jù)庫。作為一個購物電商網(wǎng)站,它具有非常靈活的動態(tài)性。如果說,每次用戶請求頁面,然后服務(wù)器又重新進行計算,從這個角度來說,這樣開銷太大了,這個絕對比讀取現(xiàn)成的標準網(wǎng)站的代價要昂貴得多。如果我們使用緩存技術(shù),把用戶請求的基本相同的數(shù)據(jù)先進行緩存,等用戶再次進行請求時,直接從緩存文件里讀取,可以有效地避免網(wǎng)站性能上的開銷。Redis數(shù)據(jù)庫是一種key-value類型的Nosql數(shù)據(jù)庫,也是一個內(nèi)存性數(shù)據(jù)庫,會把數(shù)據(jù)加載到內(nèi)存中進行操作,同時一步的方式將數(shù)據(jù)備份到硬盤里。由于內(nèi)存的讀取速率比硬盤的高,所以Redis的讀取速率非常高。鑒于以上的技術(shù)可行性分析,本網(wǎng)站在技術(shù)上是可行的。2.2.2經(jīng)濟可行性本站的開發(fā)需要投資費用以及網(wǎng)站運行過程中的維護等費用,一般投資費用包括設(shè)備費用、人員費用等費用。所謂的經(jīng)濟可行性分析指的是指對項目的投資和項目所產(chǎn)生的的經(jīng)濟效益進行分析。通俗的來講,就是能不能產(chǎn)生超過甚至更長遠的經(jīng)濟利潤。具體包含消費支出,經(jīng)濟收益等。根據(jù)目前系統(tǒng)情況和實際,實現(xiàn)此系統(tǒng)主要包括以下幾個方面費用:(1)域名費用:在相應(yīng)的域名申請機構(gòu)申請網(wǎng)絡(luò)域名之后,每年需要交一定的費用用來維護域名的使用權(quán)。除了注冊域名、還要租用主機空間。費用大概是,域名60-100元/年,主機空間價格比較貴,一般地150元/年/100M左右。(2)服務(wù)器等硬件設(shè)備:通過分析網(wǎng)站的規(guī)模和用戶數(shù)量,發(fā)現(xiàn)由于系統(tǒng)服務(wù)器要求配置較高,所以本網(wǎng)站還可以選擇高檔PC機充當(dāng)服務(wù)器,費用在5000元左右。(3)網(wǎng)站軟件費用:包括操作系統(tǒng)軟件費用、服務(wù)器軟件費用以及數(shù)據(jù)庫軟件費用,這些費用大概需要10000元。系統(tǒng)的經(jīng)濟效益集中在商家通過該平臺進行的銷售額中的提成和合理的插入廣告等產(chǎn)生的效益。 鑒于以上的技術(shù)可行性分析,本網(wǎng)站在經(jīng)濟上是可行的。2.2.3操作可行性從模塊使用難易程度上來看,本模塊使用起來并不復(fù)雜,并且可移植性高,界面設(shè)計親切,容易使用,通過了解商家,消費群體以及消費者購買心里和行為,發(fā)現(xiàn)互聯(lián)網(wǎng)活躍用戶集中在年輕人當(dāng)中,他們具有良好的接受新事物的能力。2.2.4法律可行性第一點,本網(wǎng)站的服務(wù)主體是電商商家,他們是嚴格通過國家法律有關(guān)要求進行線上銷售活動的。第二點,本網(wǎng)站是有益無害的,同時開發(fā)過程中自主開發(fā),不存在侵權(quán)問題,符合國家相關(guān)法律法規(guī)的。所以網(wǎng)站在法律上具有可行性。2.2.5可行性研究結(jié)論經(jīng)過上述結(jié)論,本人所設(shè)計的購物網(wǎng)站能夠自主地和獨立地運行。所以本網(wǎng)站在技術(shù)、經(jīng)濟等各個方面都能夠滿足開發(fā)要求和標準,具有非常高的可行性。3需求分析3.1網(wǎng)站功能需求描述通過與用戶溝通,進行科學(xué)的需求分析,本網(wǎng)站主要分為以下幾個功能模塊:(1)用戶模塊:用于管理用戶注冊信息、權(quán)限信息、收貨地址信息以及郵箱驗證。A.商家用戶能夠進入網(wǎng)站后臺完成管理產(chǎn)品信息、促銷廣告介入、產(chǎn)品發(fā)布等工作。B.商家用戶能夠使用網(wǎng)站所有功能。C.普通用戶激活郵箱之前只能夠瀏覽首頁商品信息。D.普通用戶激活郵箱之后能夠進行下單、查看購物車、查看用戶信息等操作。E.普通用戶沒有權(quán)限進入網(wǎng)站后臺。(2)商品相關(guān)模塊:主要包括首頁中動態(tài)指定商品輪播商品信息、活動信息,動態(tài)指定首頁顯示的每個種類的商品(圖片商品和文字商品),顯示商品詳細信息,商品列表頁中顯示并支持按照人氣、價格和默認進行排序和通過頁面搜索商品等等。(3)購物車相關(guān)模塊:主要包括列表頁和詳情頁將商品添加到購物車,用戶登錄后在首頁、詳情頁、列表頁顯示登陸用戶購物車中商品的數(shù)目,在購物車頁面中對用戶購物車里的商品進行操作,如選擇某件商品,增加或減少購物車中的商品數(shù)目等等。(4)訂單相關(guān)模塊:包括在提交訂單頁面顯示用戶準備購買的商品信息,點擊提交按鈕完成訂單的創(chuàng)建,用戶中心訂單頁顯示用戶的訂單信息,點擊支付完成相關(guān)支付。(5)全局搜索模塊:基于網(wǎng)站里含有的商品信息,包括商品名稱、商品介紹等信息實現(xiàn)商品搜索功能。3.2網(wǎng)站性能需求描述對于購物網(wǎng)站來說web安全是最大的問題和挑戰(zhàn)所在。Django它提供了工具和文檔來防止導(dǎo)致安全問題的常見錯誤,具有以下優(yōu)點:1.跨站腳本(XSS)防護;2.跨站請求偽造(CSRF)防護;3.SQL注入保護;4.點擊劫持保護;5.SSL/HTTPS;6.設(shè)置重定向,那樣通過HTTP的請求會重定向到HTTPS。7.設(shè)置重定向,那樣通過HTTP的請求會重定向到HTTPS。8.使用“安全的”cookie。雖然框架是比較安全的,但是由于經(jīng)費等問題,沒有辦法提供強大的服務(wù)器,只采用了虛擬服務(wù)器,帶寬無法滿足足夠大的流量。用戶體驗和支付安全、支付選擇上上存在比較大的問題。需要在響應(yīng)速度、信息量速率等方面進行必要的處理,以滿足需求。3.3網(wǎng)站功能模型3.3.1結(jié)構(gòu)化分析方法準則目前有許多用于需求分析和設(shè)計的結(jié)構(gòu)化分析方法,這些方法都遵守以下準則:必須理解并且描述問題的信息域,根據(jù)這條準側(cè)應(yīng)該進行數(shù)據(jù)模型必須定義應(yīng)該完成的功能,這條準則要求建立功能模型。必須描述作為外部事件結(jié)果的軟件行為,這條標準要求建立行為模型。必須對描述信息、功能和行為的模型進行分解,用層次的方式展示細節(jié)。本將采用系統(tǒng)采用結(jié)構(gòu)化分析的分析方法,進行需求分析。將采用數(shù)據(jù)流圖和數(shù)據(jù)字典進行功能建模。畫數(shù)據(jù)流圖的基本步驟概括地說就是,是自外向內(nèi),自頂向下,逐步細化,完善求精。下面為數(shù)據(jù)流程圖的符號說明表:表3-1數(shù)據(jù)流程圖的符號說明Table3-1ThemarkandexplanationofDataFlowDiagram圖形符號名稱符號說明實體數(shù)據(jù)的原點或起點處理變換處理的數(shù)據(jù)數(shù)據(jù)存儲記述與處理有關(guān)的數(shù)據(jù)存儲,需要記述存儲的標號,儲數(shù)據(jù)的名稱。數(shù)據(jù)流特定數(shù)據(jù)的流動方向3.3.2網(wǎng)站數(shù)據(jù)流圖(DFD)圖3-1網(wǎng)站頂層數(shù)據(jù)流圖Fig3-1Topdataflowdiagramofthesite圖3-2網(wǎng)站二級層數(shù)據(jù)流圖Fig3-2Seconddataflowdiagramofthesite

圖3-2網(wǎng)站三級層數(shù)據(jù)流圖Fig3-2Thirddataflowdiagramofthesite3.3.3網(wǎng)站數(shù)據(jù)字典(DD)數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息集合,也就是數(shù)據(jù)流圖中包含的所有元素的定義集合。數(shù)據(jù)字典的作用是軟件分析和軟件設(shè)計過程中給人提供關(guān)于數(shù)據(jù)的描述信息。以下給出部分數(shù)據(jù)字典:數(shù)據(jù)存儲卡名稱:用戶信息表編號:D1相關(guān)處理:P10寫入,P11讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍用戶IDidINT11否數(shù)字用戶名usernameVARCHAR150否英文字母,英文符號,數(shù)字密碼passwordVARCHAR128否英文字母,英文符號,數(shù)字郵箱emailVARCHAR254否郵箱格式激活標識is_activeTINYINT1否數(shù)字權(quán)限標識is_staffTINYINT1否數(shù)字數(shù)據(jù)結(jié)構(gòu):說明:數(shù)據(jù)存儲卡名稱:商品SKU表編號:D2相關(guān)處理:P10寫入,P11讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍商品IDidINT11否數(shù)字商品名稱nameVARCHAR20否漢字商品描述passwordVARCHAR254是漢字商品價格priceDECIMAL(10,2)否數(shù)字單位uniteVARCHAR20否漢字,數(shù)字,英文字母商品圖片imageVARCHAR100否url地址庫存inventoryINT11否數(shù)字銷量salesINT11否數(shù)字商品狀態(tài)statusSMALLINT6否數(shù)字所屬分類typeINT11否漢字商品spuproductsINT11否漢字數(shù)據(jù)結(jié)構(gòu):說明:無數(shù)據(jù)存儲卡名稱:商品SPU表編號:D3相關(guān)處理:P10寫入,P11讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍商品IDidINT11否數(shù)字SPU名稱nameVARCHAR20否漢字商品詳情detailLONGTEXT是漢字數(shù)據(jù)結(jié)構(gòu):說明:無數(shù)據(jù)存儲卡名稱:商品圖片表編號:D4相關(guān)處理:P10寫入,P11讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍IDidINT11否數(shù)字商品圖片路徑imageVARCHAR100否Url地址商品詳情detailINT11是數(shù)字數(shù)據(jù)結(jié)構(gòu):說明:無數(shù)據(jù)存儲卡名稱:商品種類表編號:D5相關(guān)處理:P10寫入,P11讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍商品IDidINT11否數(shù)字分類名稱category_nameVARCHAR20否漢字標識logoVARCHAR20否英文商品類型圖片imageVARCHAR20否Url地址數(shù)據(jù)結(jié)構(gòu):說明:無數(shù)據(jù)存儲卡名稱:首頁分類商品展示表編號:D6相關(guān)處理:P10寫入,P11讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍主鍵IDidINT11否數(shù)字展示類型display_typeSMALLINT6否數(shù)字展示順序indexSMALLINT6否數(shù)字字商品SKUproduct_idINT11否數(shù)字商品種類product_type_idINT11否數(shù)字數(shù)據(jù)結(jié)構(gòu):說明:無數(shù)據(jù)存儲卡名稱:首頁輪播商品表編號:D7相關(guān)處理:P10寫入,P11讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍IDidINT11否數(shù)字輪播圖片imageVARCHAR100否Url地址輪播索引indexSMALLINT6否數(shù)字商品product_idINT11否數(shù)字數(shù)據(jù)結(jié)構(gòu):說明:無數(shù)據(jù)存儲卡名稱:首頁促銷活動表編號:D8相關(guān)處理:P10寫入,P11讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍IDidINT11否數(shù)字活動名稱nameVARCHAR50否漢字活動圖片imageVARCHAR100否Url地址互動鏈接urlVARCHAR100否數(shù)字展示順序indexSMALLINT數(shù)據(jù)結(jié)構(gòu):說明:無數(shù)據(jù)存儲卡名稱:地址表編號:D9相關(guān)處理:P17寫入,P19讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍IDidINT11否數(shù)字收件人recipientVARCHAR150否漢字聯(lián)系電話contact_numVARCHAR150否數(shù)字收貨地址addressVARCHAR150否漢字,數(shù)字,英文郵政編碼zip_codeINT150否數(shù)字是否默認is_defaultTINYINT1否數(shù)字用戶User_idINT11否數(shù)字數(shù)據(jù)結(jié)構(gòu):說明:無數(shù)據(jù)存儲卡名稱:訂單商品表編號:D10相關(guān)處理:P18寫入,P25讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍IDidINT11否數(shù)字訂單編號order_idVARCHAR100否數(shù)字支付方式pay_methodSMALLINT6否數(shù)字訂單狀態(tài)order_statusVSMALLINT6否數(shù)字產(chǎn)品數(shù)量product_countINT(11)20否數(shù)字總價格product_priceDECIMAL(10,2)否數(shù)字運費transit_priceDECIMAL(10,2)否數(shù)字支付編號trance_numVARCHAR100否數(shù)字,英文外鍵,用戶user_idINT11否數(shù)字外鍵,地址addr_idINT11否數(shù)字數(shù)據(jù)結(jié)構(gòu):說明:無數(shù)據(jù)存儲卡名稱:訂單信息表編號:D11相關(guān)處理:P20寫入,P21讀取數(shù)據(jù)項名稱標識符類型位數(shù)是否為空取值范圍IDidINT11否數(shù)字商品數(shù)目countINT20否數(shù)字商品價格priceDECIMAL(10,2)否數(shù)字評論commentVARCHAR128否漢字訂單信息order_info_idINT11否數(shù)字商品SKUproduct_idINT11否數(shù)字數(shù)據(jù)結(jié)構(gòu):說明:無4總體設(shè)計總體設(shè)計的目的是,就是解決“系統(tǒng)該如何實現(xiàn)”的問題。通過該階段我們可以劃分出本系統(tǒng)所組成的物理元素。另一個有一個重要的任務(wù)是確定軟件系統(tǒng)中的的模塊結(jié)構(gòu)結(jié)構(gòu),以及各個模塊之間的關(guān)系。這些工作的目的是為了提高軟件開發(fā)過程中的可視性,管理和控制軟件開發(fā)過程。4.1體系結(jié)構(gòu)設(shè)計4.1.1網(wǎng)站的功能模塊圖為了最終實現(xiàn)系統(tǒng)的目標,需要設(shè)計出開發(fā)所需要的的程序和文件,這些程序和文件通常分為兩個階段:結(jié)構(gòu)設(shè)計階段和過程設(shè)計階段。結(jié)構(gòu)設(shè)計階段包括了這些模塊之間的關(guān)系,設(shè)計思想是采用自上而下的逐層分解方法,給出總的模塊的一般功能,然后進行逐層分解,從而將模塊劃分為若干個模塊,使模塊的大小、功能清晰、將其有一定的獨立性和易用性。從而將復(fù)雜的系統(tǒng)設(shè)計分解成的多個簡單模塊。該系統(tǒng)的功能圖如4-1所示:圖4-1網(wǎng)站總功能模塊圖Fig4-1GeneralFunctionModuleDiagramofWebsite圖4-2用戶模塊功能模塊圖Fig4-2FunctionModuleDiagramofUserModule圖4-3訂單模塊功能模塊圖Fig4-3FunctionModuleDiagramofOrderModule圖4-4購物車模塊功能模塊圖Fig4-4ShoppingCartmodulefunctionmodulediagram圖4-5商品模塊功能模塊圖Fig4-5FunctionModuleDiagramofProductModule4.1.2系統(tǒng)模塊描述(1)用戶模塊:用于管理用戶注冊信息、權(quán)限信息、收貨地址信息以及郵箱驗證。A.商家用戶能夠進入網(wǎng)站后臺完成管理產(chǎn)品信息、促銷廣告介入、產(chǎn)品發(fā)布等工作。B.商家用戶能夠使用網(wǎng)站所有功能。C.普通用戶激活郵箱之前只能夠瀏覽首頁商品信息。D.普通用戶激活郵箱之后能夠進行下單、查看購物車、查看用戶信息等操作。E.普通用戶沒有權(quán)限進入網(wǎng)站后臺。(2)商品相關(guān)模塊:主要包括首頁中動態(tài)指定商品輪播商品信息、活動信息,動態(tài)指定首頁顯示的每個種類的商品(圖片商品和文字商品),顯示商品詳細信息,商品列表頁中顯示并支持按照人氣、價格和默認進行排序和通過頁面搜索商品等等。(3)購物車相關(guān)模塊:主要包括列表頁和詳情頁將商品添加到購物車,用戶登錄后在首頁、詳情頁、列表頁顯示登陸用戶購物車中商品的數(shù)目,在購物車頁面中對用戶購物車里的商品進行操作,如選擇某件商品,增加或減少購物車中的商品數(shù)目等等。(4)訂單相關(guān)模塊:包括在提交訂單頁面顯示用戶準備購買的商品信息,點擊提交按鈕完成訂單的創(chuàng)建,用戶中心訂單頁顯示用戶的訂單信息,點擊支付完成相關(guān)支付。(5)全局搜索模塊:基于網(wǎng)站里含有的商品信息,包括商品名稱、商品介紹等信息實現(xiàn)商品搜索功能。4.2系統(tǒng)及環(huán)境設(shè)計4.2.1體系結(jié)構(gòu)風(fēng)格選擇1)晨曦雜貨網(wǎng)站選用B/S模式架構(gòu):瀏覽器/服務(wù)器模式,同時被稱為B/S結(jié)構(gòu)。本模型統(tǒng)一了客戶端,將系統(tǒng)功能的核心部分集中在服務(wù)器上,并且簡化了系統(tǒng)的開發(fā)、維護以及使用。只需將一個瀏覽器需要安裝在客戶機上,剩下的數(shù)據(jù)庫安裝在服務(wù)器上。客戶端通過瀏覽器通過web服務(wù)與數(shù)據(jù)庫數(shù)據(jù)的交互。下圖為B/S架構(gòu)工作原理:圖4-6B/S架構(gòu)工作原理Fig4-6WorkingPrincipleofB/SArchitecture采用django框架:本網(wǎng)站采用Djangoweb框架。作為免費,開源的框架,社區(qū)上有大量的問題教程,可以求教。它可以解決Web開發(fā)的大部分挑戰(zhàn)問題,程序設(shè)計者指需要考慮應(yīng)用程序的代碼,無需考慮其它問題造成發(fā)明輪子。表現(xiàn)渲染層采用HTML和CSS實現(xiàn),業(yè)務(wù)邏輯由JS和python實現(xiàn),數(shù)據(jù)庫采用mysql。4.2.2開發(fā)與運行環(huán)境表4-1軟件開發(fā)運行環(huán)境說明表Tab4-1SoftwareDevelopmentOperatingEnvironmentStatement組件名稱說明用途Pycharm2018.1(專業(yè)版)開發(fā)工具本網(wǎng)站開編程工具Django1.11.1開發(fā)框架基于python的WEB框架Python3.5開發(fā)語言編程語言jQuery1.11.0JavaScript庫簡化JavaScript編程4.2.3硬件環(huán)境本網(wǎng)站采用ubuntu18.04當(dāng)服務(wù)器,將mysql數(shù)據(jù)庫,fastdfs分布式文件系統(tǒng),Redis數(shù)據(jù)庫部署在ubuntu180.4服務(wù)器。配置信息如下:表4-2配置說明表Tab4-2HardwareEnvironmentConfigurationStatement服務(wù)器ip:port用途Mysql服務(wù)器26:3306文字數(shù)據(jù)存儲Redis服務(wù)器26:6379/9Django緩存存儲fastdfs分布式文件系統(tǒng)26:80圖片文件存儲4.3數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫不僅包含用戶的源數(shù)據(jù),還包含其自身結(jié)構(gòu)的描述。數(shù)據(jù)庫的自描述功能提高了程序/數(shù)據(jù)的獨立性,使數(shù)據(jù)庫本身的檢查成為可能,從而確定數(shù)據(jù)庫的結(jié)構(gòu)和內(nèi)容。數(shù)據(jù)庫包含用戶資料檔案和其他內(nèi)容,數(shù)據(jù)庫在中繼數(shù)據(jù)中包含對自身的描述。此外,數(shù)據(jù)庫還包含表示數(shù)據(jù)之間關(guān)系和提高數(shù)據(jù)庫應(yīng)用程序性能的索引。最后,該數(shù)據(jù)庫還包含有關(guān)使用該數(shù)據(jù)庫的應(yīng)用程序的數(shù)據(jù)。數(shù)據(jù)庫并不獨立存在,它總是與特定的應(yīng)用程序相關(guān),并為特定的應(yīng)用程序建立。數(shù)據(jù)庫的設(shè)計過程一般包括以下的幾個關(guān)鍵步驟:=1\*GB2⑴明確設(shè)計該數(shù)據(jù)庫的目的,收集相關(guān)的數(shù)據(jù)⑵建立概念模型⑶建立數(shù)據(jù)模型數(shù)據(jù)庫的設(shè)計在數(shù)據(jù)庫系統(tǒng)的開發(fā)中起著重要的作用。只有設(shè)計一個合理的數(shù)據(jù)庫,我們才能對基于數(shù)據(jù)庫的應(yīng)用程序提供方便。但是,數(shù)據(jù)庫的設(shè)計過程永遠不會真正結(jié)束,因為數(shù)據(jù)庫的結(jié)構(gòu)可能會隨著用戶需求和特定用途的變化和擴大而不斷地改變。4.3.1關(guān)系型數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計為了能夠把用戶的數(shù)據(jù)需求清楚、準確的描述出來,需要建立概念性的數(shù)據(jù)模型。數(shù)據(jù)模型中通常包含3中相互關(guān)聯(lián)的信息:數(shù)據(jù)對象、數(shù)據(jù)對象的屬性以及數(shù)據(jù)對象彼此間相互連接的關(guān)系。通常,使用實體-聯(lián)系圖來建立數(shù)據(jù)模型。數(shù)據(jù)庫的系統(tǒng)E-R圖是對整個數(shù)據(jù)庫系統(tǒng)的實體-屬性,實體之間關(guān)系的描述。根據(jù)對本網(wǎng)站系統(tǒng)的分析實體E-R圖如下:圖4-7用戶實體E-R圖Fig4-7E-Rdiagramoftheuserinfoentity圖4-8地址實體E-R圖Fig4-8E-Rdiagramoftheaddressentity圖4-9商品sku實體E-R圖Fig4-9E-Rdiagramoftheproduct_skuentity圖4-10商品實體E-R圖Fig4-10E-Rdiagramoftheproductsentity圖4-11商品分類實體E-R圖Fig4-11E-Rdiagramoftheproduct_product_categoryentity圖4-12商品圖片實體E-R圖Fig4-12E-Rdiagramoftheproduct_imageentity圖4-10輪播商品商品E-R圖Fig4-10E-Rdiagramoftheproduct_bannerentity圖4-10首頁分類商品展示E-R圖Fig4-10E-Rdiagramoftheproduct_showentity圖4-10促銷活動E-R圖Fig4-10E-Rdiagramofthepromotionentity圖4-10商品訂單E-R圖Fig4-10E-Rdiagramoftheproduct_orderentity圖4-10訂單信息E-R圖Fig4-10E-Rdiagramoftheproduct_infoentity圖4-11實體之間聯(lián)系總E-R圖Fig4-11GeneralE-RDiagramofLinkagesbetweenEntities4.3.2數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計表4-3用戶表Table4-3TableofUserInfo名稱類型可為空默認注釋IDInt(11)N主鍵IDUSERNAMEVARCHAR(150)N用戶名PASSWORDVARCHAR(128)N密碼EMAILVARCHAR(124)N郵箱IS_ACTIVETINYINT(1)N激活標識IS_STAFDTINYINT(1)N權(quán)限標識表4-4地址表Table4-4TableofAddress名稱類型可為空默認注釋IDINT(11)N主鍵IDRECIPIENTVARCHAR(150)N收件人CONTACT_NUMVARCHAR(150)N聯(lián)系電話ADDRESSVARCHAR(150)N收貨地址ZIP_CODEINT(11)NNULL郵政編碼IS_DEFAULTTINYINT(1)Y是否默認USER_IDINT(11)N外鍵,用戶表主鍵表4-5商品sku表Table4-5Tableofproduct_sku名稱類型可為空默認注釋idINT(11)N主鍵IDNAMEVARCHAR(20)N商品名稱DECSVARCHAR(256)N商品簡介PRICEDECIMAL(10,2)N商品價格UNITEVARCHAR(20)N單位IMAGEVARCHAR(100)N商品圖片INVENTORYVARCHAR(150)N庫存SALESINT(11)N銷量STATUSINT(11)N商品狀態(tài)PRODUCT_IDINT(11)N外鍵,所屬分類TYPE_IDINT(11)N外鍵,商品SPU表4-6商品SPU表Table4-6Tableofproducts名稱類型可為空默認注釋IDINT(11)N主鍵IDNAMEVARCHAR(20)N商品SPU名稱DETAILLONGTEXTN商品詳情表4-7商品分類表Table4-7Tableofproduct_category名稱類型可為空默認注釋IDINT(11)N主鍵IDCATEGORY_NAMEVARCHAR(20)N分類名稱lOGOVARCHAR(20)N標識IMAGEVARCHAR(100)N商品類型圖片表4-8商品圖片表Table4-8Tableofproduct_image名稱類型可為空默認注釋IDINT(11)N主鍵IDSUP_IDVARCHAR(100)N商品圖片路徑PRODUCT_IDINT(11)N外鍵,商品表4-9首頁輪播商品展示表Table4-9Tableofproduct_banner名稱類型可為空默認注釋IDINT(11)N主鍵IDIMAGEVARCHAR(100)N輪播圖片INDEXSMALLINT(6)N輪播索引PRODUCT_IDINT(11)N外鍵,商品表4-10首頁商品展示表Table4-8Tableofproduct_show名稱類型可為空默認注釋IDINT(11)N主鍵IDDISPLAY_TYPESMALLINT(6)N展示類型INDEXSMALLINT(6)N展示順序PRODUCT_IDINT(11)N外鍵,商品SKUPRODUCT_TYPE_IDINT(11)N外鍵,商品種類表4-11首頁促銷活動表Table4-11Tableofpromotion名稱類型可為空默認注釋IDINT(11)N主鍵IDNAMEVARCHAR(50)N活動名稱IMAGEVARCHAR(100)N活動圖片URLVARCHAR(200)N互動鏈接INDEXSMALLINT(6)N展示順序表4-12訂單信息表Table4-12Tableoforder_info名稱類型可為空默認注釋IDINT(11)N主鍵IDORDER_IDVARCHAR(100)N訂單編號PAY_METHODSMALLINT(6)N支付方式ORDER_STATUSVSMALLINT(6)N訂單狀態(tài)PRODUCT_COUNTINT(11)N產(chǎn)品數(shù)量PRODUCT_PRICEDECIMAL(10,2)N總價格TRANSIT_PRICEDECIMAL(10,2)N運費TRANCE_NUMVARCHAR(100)N支付編號USER_IDINT(11)N外鍵,用戶ADDR_IDINT(11)N外鍵,地址表4-13商品訂單表Table4-13Tableofproduct_order名稱類型可為空默認注釋IDINT(11)N主鍵IDCOUNTNUMBERN商品數(shù)目PRICEDECIMAL(10,2)N商品價格COMMENTVARCHAR(128)Y評論ORDER_INFO_IDVINT(11)N訂單信息PRODUCT_IDINT(11)N商品SKU4.3.3Redis數(shù)據(jù)庫通過分析,我們可以將用戶用戶瀏覽信息采用列表(list)數(shù)據(jù)類型,即:history_用戶id:[sku_id1,sku_id2,sku_id3],用戶購物車信息采用哈希(hash)數(shù)據(jù)類型類型,即:cart_用戶id:{sku_id1:count,sku_id2:count,sku_id3:count},商品緩存信息采用string(字符串)數(shù)據(jù)類型,index_page_cache:context={'types':types,'banners':banners,'promotion':promotion,‘cart_count’:‘cart_count}。4.4系統(tǒng)安全性設(shè)計4.4.1登陸注冊安全性1)用戶注冊網(wǎng)站時,通過郵箱驗證確定用戶的存在性,防止爬蟲等程序。2)用戶注冊碼通過hash加密算法進行加密。3)每個合法用戶都只有一個密碼,密碼進行該密碼由用戶個人維護。4.4.2購物車緩存為了防止對于數(shù)據(jù)庫直接操作,用redis數(shù)據(jù)庫進行購物車信息緩存,瀏覽記錄緩存等,減少因為惡意攻擊遭受。4.4.2操作的安全性本系統(tǒng)對用戶的操作有嚴格的要求,如果沒有登錄系統(tǒng),是不能進入到首頁部分商品展示以外的其他頁面。4.4.3數(shù)據(jù)安全性通過將用戶登錄信息,瀏覽信息,購物車信息等session緩存在Redis內(nèi)存性服務(wù)器中中,減少與數(shù)據(jù)庫進行的直接操作。4.4.4威脅網(wǎng)站安全的主要因素=1\*GB2⑴網(wǎng)站攻擊。=2\*GB2⑵網(wǎng)站安全漏洞。=3\*GB2⑶信息安全保密隱患。=4\*GB2⑷網(wǎng)站內(nèi)部安全隱患。=5\*GB2⑸網(wǎng)絡(luò)病毒。=6\*GB2⑹網(wǎng)絡(luò)數(shù)據(jù)的災(zāi)難恢復(fù)問題。4.4.5網(wǎng)站安全解決方案根據(jù)以上威脅網(wǎng)絡(luò)安全的主要因素,網(wǎng)站主要使用了進行安全配置、安裝防火墻、數(shù)據(jù)庫防護方法從以下方面對網(wǎng)站安全進行保護:=1\*GB2⑴硬件安全:打開防火墻,定期進行病毒更新,防御網(wǎng)絡(luò)病毒,防止網(wǎng)絡(luò)病毒。=2\*GB2⑵操作系統(tǒng)安全:定期進行數(shù)據(jù)備份,關(guān)閉非必需的服務(wù)進程,同時對系統(tǒng)中出現(xiàn)的漏洞及時編寫補丁程序。=3\*GB2⑶應(yīng)用軟件安全:對用戶密碼等關(guān)數(shù)據(jù)庫進行了加密,,并定期對數(shù)據(jù)庫進行備份。=5\*GB2⑸系統(tǒng)安全:對進入網(wǎng)站管理平臺的管理員進行更為嚴格的身份驗證,保證系統(tǒng)的安全性。5詳細設(shè)計5.1網(wǎng)站前端流程圖圖5-4網(wǎng)站購物流程圖Fig5-4Websiteshoppingflowchart5.2網(wǎng)站注冊界面設(shè)計5.2.1注冊窗口功能描述注冊窗口用于用戶進入網(wǎng)站進行購物等行為之前進行的身份確認,用于用戶信息的管理和購物信息記錄的管理。非會員填寫注冊信息,進行郵箱激活后方可進入網(wǎng)站進行相關(guān)的瀏覽購物等行為。注冊窗口模塊功能表如表5-1所示:表5-1注冊窗口模塊功能表Table5-1RegisterWindowModuleFunctionTable功能編號1.1功能名稱用戶注冊功能描述將用戶提供的注冊信息進行數(shù)據(jù)校驗,保證數(shù)據(jù)格式符合系統(tǒng)要求,進行郵箱激活驗證。輸入項用戶名,密碼,郵箱處理描述在View視圖中進行數(shù)據(jù)獲取,郵箱驗證,數(shù)據(jù)保存。輸出項成功:返回成功標識失?。悍祷厥≡蛱崾?.2.2注冊窗口界面圖5-2注冊窗口界面Fig5-2Registerwindowinterface圖5-3用戶郵箱驗證頁面圖Fig5-3UserMailboxValidationPageDiagram5.3網(wǎng)站登錄界面設(shè)計5.3.1登錄模塊功能描述登錄窗口用于進入網(wǎng)站進行購物之前進行的身份確認信息。會員,在正確輸入用戶名和密碼后,可以成功進入網(wǎng)站進行除了瀏覽部分商品除外更多的其他操作。登錄窗口模塊功能表如表5-2所示:表5-2登錄窗口模塊功能表Table5-2LoginWindowModuleFunctionTable功能編號1.2功能名稱用戶登錄功能描述將用戶輸入的登錄信息進行數(shù)據(jù)校驗,確認用戶的合法性輸入項用戶名,密碼處理描述在View視圖中進行數(shù)據(jù)獲取,數(shù)據(jù)校驗。輸出項成功:返回成功后應(yīng)返回應(yīng)答到網(wǎng)站首頁失敗:返回失敗原因提示5.3.2登錄窗口界面圖5-4登錄窗口界面Fig5-4Loginwindowinterface5.4網(wǎng)站用戶中心界面設(shè)計5.4.1用戶中心模塊功能描述用戶中心窗口中包含用戶基本信息,用戶訂單信息以及收獲地址管理,用來進行用戶信息展示,訂單信息展示和地址管理等。網(wǎng)站用戶中心界面模塊功能表如表5-3所示:表5-3用戶中心窗口模塊功能表Table5-1UserCenterWindowModuleFunctionTable功能編號1.3功能名稱用戶中心信息展示功能描述將返回所有用戶信息,用戶基本信息,最近瀏覽信息,收貨地址信息和訂單信息。輸入項用戶id處理描述在View視圖中進行數(shù)據(jù)獲取。輸出項成功:返回相應(yīng)的數(shù)據(jù)失敗:無5.4.2用戶中心窗口界面圖5-5用戶基本信息界面Fig5-5UserBasicInfowindowinterface圖5-6訂單信息頁界面Fig5-6OrderInfowindowinterface圖5-7收貨地址界面Fig5-7ReceptionAddresswindowinterface5.5網(wǎng)站首頁界面設(shè)計5.5.1首頁模塊功能描述網(wǎng)站首頁為本系統(tǒng)核心界面,該頁面中包括商品分類信息,輪播商品信息,部分商品展示信息(包括文字和圖片),促銷活動信息等等。網(wǎng)站首頁模塊功能表如表5-4所示:表5-4用戶中心窗口模塊功能表Table5-4UserCenterWindowModuleFunctionTable功能編號1.4功能名稱網(wǎng)站首頁信息展示功能描述將返回所有商品分類信息,部分商品展示信息(包括文字和圖片),輪播商品信息,促銷活動信息等等輸入項無處理描述在View視圖中進行數(shù)據(jù)獲取。輸出項成功:返回相應(yīng)的數(shù)據(jù)失?。簾o(未進行相應(yīng)處理)5.5.2首頁窗口界面圖5-8網(wǎng)站首頁展示界面Fig5-8HomePageDisplayInterface5.6商品詳情頁界面設(shè)計5.6.1商品詳情信息功能描述商品詳情頁面包括特定商品的全部信息展示和加入購物車和立即購買功能,還包括新品商品推薦信息展示。商品詳情頁模塊功能表如表5-5所示:表5-5商品詳情窗口模塊功能表Table5-5ProductDetialCenterWindowModuleFunctionTable功能編號1.6功能名稱商品詳情信息展示功能描述通過商品id,將返回該商品所有信息以及新品推薦信息輸入項商品id處理描述在View視圖中進行數(shù)據(jù)獲取,將添加到購物車的商品id和count信息進行redis緩存。輸出項成功:返回該商品相應(yīng)的數(shù)據(jù)和新品推薦數(shù)據(jù)。失?。簾o(未進行相應(yīng)處理)5.6.2商品詳情頁窗口界面圖5-9商品詳情頁展示界面Fig5-9ProductDetialDisplayInterface5.7商品列表頁界面設(shè)計5.7.1商品列表頁功能描述商品列表頁面包括對應(yīng)于商品分類某一項分類的所有商品信息,而且能夠根據(jù)商品的人氣,價格,默認等方式進行排序。商品列表頁模塊功能表如表5-6所示:表5-6商品列表頁窗口模塊功能表Table5-6ProductListWindowModuleFunctionTable功能編號1.7功能名稱商品列表展示功能描述通過商品id,將返回該商品所有信息以及新品推薦信息輸入項商品分類id處理描述在View視圖中進行數(shù)據(jù)獲取。輸出項成功:返回該商品相應(yīng)的數(shù)據(jù)和新品推薦數(shù)據(jù)。失?。簾o(未進行相應(yīng)處理)5.7.2商品列表頁窗口界面圖5-10商品列表頁展示界面Fig5-10ProductListDisplayInterface5.8購物車界面設(shè)計5.8.1購物車界面功能描述購物車頁面是進行商品詳情頁進行添加購物車的商品信息的展示,同時能夠進行購物車商品數(shù)量修改,購物車商品刪除,購買商品種類等操作。通過結(jié)算按鈕進行訂單生成。購物車模塊功能表如表5-7所示:表5-7購物車窗口模塊功能表Table5-7CartWindowModuleFunctionTable功能編號1.8功能名稱購物車功能描述獲取redis保存的商品信息,返回相應(yīng)的商品信息輸入項無處理描述在View視圖中進行redis數(shù)據(jù)的獲取并且進行相應(yīng)的計算。輸出項成功:返回用戶添加購物車里的所有數(shù)據(jù)。失?。簾o(未進行相應(yīng)處理)5.8.2購物車頁窗口界面圖5-11購物車頁展示界面Fig5-11CartDisplayInterface5.9訂單頁面設(shè)計5.9.1訂單功能描述訂單頁面展示訂單的商品列表信息,用戶添加的所有收貨地址信息以及支付手段的確認。通過提交訂單按鈕創(chuàng)建訂單的生成,并且返回到用戶訂單頁面訂單模塊功能表如表5-8所示:表5-8訂單頁面窗口模塊功能表Table5-8OrderPageWindowModuleFunctionTable功能編號1.9功能名稱下訂單功能描述通過商品獲取信息,包括訂單信息,訂單商品信息,收貨地址等輸入項商品id處理描述在View視圖中進行數(shù)據(jù)的獲取并且進行相應(yīng)的計算。輸出項成功:返回用戶訂單頁面數(shù)據(jù)。失?。簾o(未進行相應(yīng)處理)5.9.2訂單頁面界面圖5-12訂單確認頁展示界面Fig5-10OrderConfirmInterface5.10用戶訂單支付頁面設(shè)計5.10.1用戶訂單支付頁面功能描述用戶訂單支付頁面展示用戶訂單的展示,以及訂單狀態(tài),通過支付按鈕進行支付。用戶訂單支付模塊功能表如表5-9所示:表5-9用戶訂單支付模塊功能表Table5-9UserOrderpayModuleFunctionTable功能編號1.10功能名稱訂單支付功能描述根據(jù)訂單id,進行訂單支付(目前只支持支付寶支付)輸入項訂單id處理描述通過第三方支付手段進行支付輸出項成功:返回訂單支付成功信息,更新頁面訂單狀態(tài)失敗:支付失敗5.10.2訂單支付頁界面圖5-13訂單頁展示界面Fig5-13OrderDisplayInterface圖5-14訂單支付頁展示界面Fig5-14OrderpayDisplayInterface6編碼6.1編碼規(guī)范(1)Python部分:文件采用使用UTF-8編碼。(2)HTML部分:所有的命名都小寫,同時將class等屬性的值一用雙引號("")括起來,如class="login"。給表格和表單加唯一的、結(jié)構(gòu)標記id。6.2命名規(guī)范(1)類名和接口名:使用駝峰(CamelCase)命名風(fēng)格。比如,用戶收獲地址信息模型:UserAddress(BaseModel)。函數(shù)名:函數(shù)名一律小寫進行,如過出現(xiàn)多個單詞,用下劃線“_”隔開命名。比如,用戶郵箱激活函數(shù):active_acount(request,token)。(3)變量名:變量名使用小寫。比如,默認地址:default_addr。(4)如果是常變量使用“大駝峰”命名風(fēng)格,如果有多個字母用“_”進行隔開。。比如,商品展示類型的選擇,DISPLAY_TYPE_CHOICES=((0,'文字'),(1,'圖片'))。6.3系統(tǒng)編碼(附錄C部分源代碼)7測試設(shè)計7.1軟件測試方案7.1.1測試方案概述目前的軟件開發(fā)測試方案有:黑盒測試白盒測試灰盒測試下圖為黑盒測試白盒測試形象區(qū)別圖:圖7-1黑盒和白盒測試的區(qū)別圖Fig7-1TheDifferenceDiagrambetweenBlack-boxandWhite-boxTests7.1.2本系統(tǒng)測試方法選擇基于以上介紹,本網(wǎng)站的測試方案確定為黑盒測試。黑盒測試具有以下優(yōu)點:

1、在效率方面,效率比白盒測試高。

2、測試人員不需要包括特定的編程語言在內(nèi)實現(xiàn)的細節(jié)。

3、測試人員和編程人員彼此獨立。

4、從用戶的角度進行測試,很容易理解和接受。

5、可以容易的暴露出規(guī)格的歧義問題。

6、測試用例可以在規(guī)格完成后馬上進行。本系統(tǒng)中用戶角度出發(fā),避免規(guī)格有歧義是非常關(guān)鍵的,直接影響軟件以后的用戶流量,以及電商的依賴性。所以通過黑盒測試的方法能夠理解和感受,而且可以將暴露出規(guī)格的歧義問題。

7.2軟件測試過程7.2.1注冊用例測試表7-1注冊系統(tǒng)模塊測試Tab7-1RegisterUseCaseTesting測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果結(jié)論不輸入任何信息不輸入任何信息,直接按注冊按鈕注冊失敗,提示為空信息同預(yù)期結(jié)果測試成功用戶名為空用戶名為空注冊失敗,提示用戶名為空同預(yù)期結(jié)果測試成功郵箱格式不正確測試用例:Mr_注冊失敗,郵箱格式不正確同預(yù)期結(jié)果測試成功密碼為空密碼為空注冊失敗,提示密碼為空同預(yù)期結(jié)果測試成功兩次密碼不一致確認密碼跟密碼不一樣注冊失敗,提示兩次密碼輸入不一致同預(yù)期結(jié)果測試成功輸入符合格式的用戶名,密碼和郵箱測試用例:用戶名Paxagul密碼:02285204ever郵箱:mrab_ucas@126.com注冊成功,給郵箱發(fā)送激活鏈接同預(yù)期結(jié)果測試成功7.2.2登錄系統(tǒng)用例測試表7-2登錄系統(tǒng)模塊測試Tab7-2LoginUseCaseTesting測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果結(jié)論不輸入任何信息不輸入任何信息,直接按注冊按鈕登錄失敗,提示為空信息同預(yù)期結(jié)果測試成功用戶名為空用戶名為空登錄失敗,提示用戶名為空同預(yù)期結(jié)果測試成功輸入符合格式的用戶名,密碼和郵箱測試用例:用戶名:Samat密碼:02285204ever進入網(wǎng)站主頁面,并顯示登錄信息同預(yù)期結(jié)果測試成功7.2.3商品展示系統(tǒng)用例測試表7-3首頁商品展示模塊測試Tab7-3HomePageProductDisplayUseCaseTesting測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果結(jié)論不輸入任何信息無context={'types':types,'banners':banners,'promotion':promotion,‘cart_count’:cart_count}同預(yù)期結(jié)果測試成功7.2.4商品詳細信息用例測試表7-4商品詳細信息展示模塊測試Tab7-4ProductDetailUseCaseTesting測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果結(jié)論不輸入任何信息無錯誤同預(yù)期結(jié)果測試成功輸入商品idSku_id:10返回商品id為10的商品手所有信息同預(yù)期結(jié)果測試成功7.2.5商品列表用例測試表7-5商品列表展示模塊測試Tab7-5ProductListUseCaseTesting測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果結(jié)論不輸入任何信息無錯誤同預(yù)期結(jié)果測試成功輸入商品類型id,排序類型sorttype_id:1,sort=’price’返回商品id為1的商品手所有信息,并且按照價格進行排序同預(yù)期結(jié)果測試成功輸入商品類型id,排序類型sorttype_id:1,sort=’-sles’返回商品id為1的商品手所有信息,并且按照x銷量進行排序同預(yù)期結(jié)果測試成功7.2.6購物車添加用例測試表7-6購物車添加模塊測試Tab7-6AddCartUseCaseTesting測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果結(jié)論輸入商品id,count為空sku_id:1,count=None{'status':1,'msg':'數(shù)據(jù)不完整'}同預(yù)期結(jié)果測試成功輸入不存在商品id,count<庫存sku_id:1,count=10{'status':3,'msg':'商品不存在'}同預(yù)期結(jié)果測試成功輸入商品id,count不是正整數(shù)sku_id:1,count=10.1{'status':2,'msg':'商品數(shù)目出錯'}同預(yù)期結(jié)果測試成功輸入商品id,count>庫存sku_id:1,count=100001{'status':4,'msg':'商品庫存不足'}同預(yù)期結(jié)果測試成功輸入商品id,count<庫存sku_id:1,count=100{'status':5,'msg':'添加成功'}同預(yù)期結(jié)果測試成功7.2.7購物車更新用例測試表7-7購物車更新模塊測試Tab7-7UpdateCartUseCaseTesting測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果結(jié)論輸入商品id,count為空sku_id:1,count=None{'status':1,'msg':'數(shù)據(jù)不完整'}同預(yù)期結(jié)果測試成功輸入不存在商品id,count<庫存sku_id:1,count=10{'status':3,'msg':'商品不存在'}同預(yù)期結(jié)果測試成功輸入商品id,count不是正整數(shù)sku_id:1,count=10.1{'status':2,'msg':'商品數(shù)目出錯'}同預(yù)期結(jié)果測試成功輸入商品id,count>庫存sku_id:1,count=100001{'status':6,'msg':'商品庫存不足'}同預(yù)期結(jié)果測試成功輸入商品id,count<庫存sku_id:1,count=100{'status':5,'msg':'更新成功'}同預(yù)期結(jié)果測試成功7.2.8購物車刪除用例測試表7-8購物車刪除模塊測試Tab7-8DeleteCartUseCaseTesting測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果結(jié)論商品id為空sku_id:None{'status':1,'msg':'商品為空'}同預(yù)期結(jié)果測試成功輸入不存在的商品id,sku_id:1000{'status':2,'msg':'商品不存在'}同預(yù)期結(jié)果測試成功輸入商品idsku_id:1{'status':3,'msg':'刪除成功'}同預(yù)期結(jié)果測試成功7.2.9顯示訂單用例測試表7-10訂單模塊測試Tab7-10OrderDisplayUseCaseTesting測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果結(jié)論商品id為空的列表sku_id:[None,None,None,...]{'res':0,'msg':'未選擇商品'}同預(yù)期結(jié)果測試成功商品id不為空的列表sku_id:[1,3]{'total_product':total_product,'total_price':total_price,'total_count':total_count,'transition':transition,'total_pricewithtran':total_pricewithtran,'addrs':addrs,'skus':skus,'sku_ids':sku_ids}同預(yù)期結(jié)果測試成功7.2.10生成訂單用例測試表7-11生成訂單模塊測試Tab7-11CreateOrderUseCaseTesting測試用例描述操

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論