設(shè)計(jì)一個(gè)完整的靜態(tài)網(wǎng)站漣源網(wǎng)站seo
項(xiàng)目鏈接:飛鴿論壇
目錄
一. 項(xiàng)目背景
二. 項(xiàng)目功能
三. 功能測(cè)試
注冊(cè):
登錄:
更改用戶信息:
發(fā)布帖子:
更新帖子信息:
點(diǎn)贊:
評(píng)論:
發(fā)送私信:
測(cè)試報(bào)告
四. 性能測(cè)試
Virtual User Generator
Controller
Analysis
測(cè)試報(bào)告:
一. 項(xiàng)目背景
該論壇系統(tǒng)采用前后端分離的開(kāi)發(fā)方式,?使用 SpringBoot, Mybatis?等開(kāi)發(fā)框架進(jìn)行開(kāi)發(fā), 集成了注冊(cè)、登錄、發(fā)送,刪除帖子、點(diǎn)贊、私信等功能.
使用了 MySQL 去存儲(chǔ)用戶信息, 文章信息等所需要實(shí)現(xiàn)的數(shù)據(jù)?
二. 項(xiàng)目功能
注冊(cè)用戶: 將用戶名,密碼和昵稱(chēng)傳入到后端, 校驗(yàn)有沒(méi)有沖突用戶名, 密碼和重復(fù)密碼是否相同, 通過(guò)校驗(yàn)后將用戶名和密碼等數(shù)據(jù)記錄到 MySQL 中
登錄: 查看是否存在等于的用戶, 如果存在再校驗(yàn)密碼是否正確, 校驗(yàn)通過(guò)跳轉(zhuǎn)到 index.html 頁(yè)面中
退出登錄: 退出當(dāng)前用戶的登錄狀態(tài)
發(fā)布帖子: 可以選擇區(qū)域、標(biāo)題和內(nèi)容去進(jìn)行帖子的發(fā)布, 同時(shí)在帖子成功發(fā)布后跳轉(zhuǎn)到 index.html 頁(yè)面
點(diǎn)贊和評(píng)論刪除: 在帖子中可以進(jìn)行點(diǎn)贊和評(píng)論, 可以對(duì)自己的帖子進(jìn)行刪除
私信:? 可以通過(guò)帖子和評(píng)論找到別的用戶進(jìn)行私信的發(fā)生
更改信息: 可以對(duì)自己的用戶信息可以進(jìn)行用戶名、昵稱(chēng)、密碼進(jìn)行更改, 也可以對(duì)自己發(fā)布的帖子的區(qū)域、標(biāo)題和內(nèi)容進(jìn)行更改
三. 功能測(cè)試
白盒測(cè)試在我的開(kāi)發(fā)階段已經(jīng)進(jìn)行過(guò)了, 所以這里主要進(jìn)行的是黑盒測(cè)試
我將以此按照注冊(cè)->登錄->更改用戶信息->發(fā)送帖子->更改帖子信息->刪除帖子->點(diǎn)贊->評(píng)論->發(fā)送私信->退出登錄這個(gè)流程去進(jìn)行功能測(cè)試
注冊(cè):
1. 輸入存在用戶名
王五是之前已經(jīng)注冊(cè)過(guò)的, 每次測(cè)試都要保證單一變量
2. 兩次密碼輸入不一致
3. 正確輸入:
這里的正確輸入后, 不會(huì)有提示, 直接跳轉(zhuǎn)到登錄頁(yè)
登錄:
由于登錄是個(gè)頻繁單一的測(cè)試操作, 所以我決定使用 selenium 進(jìn)行自動(dòng)化測(cè)試
輸入不存在用戶名:
@Test@Order(1)public void login1() throws InterruptedException {// 打開(kāi)驅(qū)動(dòng)ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");WebDriver webDriver = new ChromeDriver(options);// 打開(kāi)網(wǎng)頁(yè)webDriver.get("http://47.120.39.164:58080/sign-in.html");// 輸入不存在用戶名webDriver.findElement(By.cssSelector("#username")).sendKeys("小毛");// 輸入密碼webDriver.findElement(By.cssSelector("#password")).sendKeys("123456");webDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);}
輸入錯(cuò)誤密碼:
@Test@Order(2)public void login2() throws InterruptedException {// 打開(kāi)驅(qū)動(dòng)ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");WebDriver webDriver = new ChromeDriver(options);// 打開(kāi)網(wǎng)頁(yè)webDriver.get("http://47.120.39.164:58080/sign-in.html");// 輸入用戶名webDriver.findElement(By.cssSelector("#username")).sendKeys("李四");// 輸入錯(cuò)誤密碼webDriver.findElement(By.cssSelector("#password")).sendKeys("12345");webDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);}
正確輸入:
@Test@Order(3)public void login3() throws InterruptedException {// 打開(kāi)驅(qū)動(dòng)ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");WebDriver webDriver = new ChromeDriver(options);// 打開(kāi)網(wǎng)頁(yè)webDriver.get("http://47.120.39.164:58080/sign-in.html");// 輸入用戶名webDriver.findElement(By.cssSelector("#username")).sendKeys("李四");// 輸入正確密碼webDriver.findElement(By.cssSelector("#password")).sendKeys("123456");webDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);}
正確輸入后跳轉(zhuǎn)到帖子列表頁(yè)
更改用戶信息:
?郵箱和電話號(hào)碼修改完成
在原密碼錯(cuò)誤的情況下修改密碼:
出現(xiàn)參數(shù)校驗(yàn)失敗的錯(cuò)誤
原密碼正確的情況下兩次密碼輸入不一樣:
出現(xiàn)錯(cuò)誤提示
參數(shù)都正確的情況下就會(huì)跳轉(zhuǎn)到登錄頁(yè), 并成功修改密碼
發(fā)布帖子:
?在我們的首頁(yè)和經(jīng)驗(yàn)分享區(qū)都更新了帖子, 并且帖子數(shù)成功加一
更新帖子信息:
點(diǎn)擊帖子后, 如果是自己發(fā)的帖子, 下放會(huì)出現(xiàn)一個(gè)編輯選項(xiàng)?
?進(jìn)行更改:
?更改后可以看到帖子已經(jīng)更改
點(diǎn)贊:
點(diǎn)擊一個(gè)貼子進(jìn)入
?進(jìn)行一次點(diǎn)贊操作后, 可以發(fā)現(xiàn)點(diǎn)贊成功, 并且點(diǎn)贊數(shù)成功加一
評(píng)論:
點(diǎn)進(jìn)一個(gè)帖子內(nèi)進(jìn)行評(píng)論
?
?可以看到評(píng)論成功并且評(píng)論數(shù)加一
發(fā)送私信:
可以向帖子的博主或者評(píng)論區(qū)里的人發(fā)生私信
?
點(diǎn)擊發(fā)送后, 然后我們登錄進(jìn)這個(gè)賬戶進(jìn)行查看:
?點(diǎn)擊右上角的小鈴鐺, 就能看到對(duì)方發(fā)送的私信:
?同時(shí)可以進(jìn)行回復(fù)
測(cè)試報(bào)告
四. 性能測(cè)試
性能測(cè)試使用 loadrunner 來(lái)進(jìn)行
這里只對(duì)登錄頁(yè)面進(jìn)行測(cè)試
Virtual User Generator
使用?Virtual User Generator 將我們的登錄操作錄制下來(lái)
?點(diǎn)擊錄制后會(huì)跳轉(zhuǎn)到瀏覽器中, 右上角會(huì)出現(xiàn)一個(gè)小框
?輸入用戶名和密碼后點(diǎn)擊結(jié)束錄制, 這樣登錄操作就錄制好了
?錄制完后, 將一些瀏覽器自帶的請(qǐng)求刪除掉, 就只剩這些請(qǐng)求
可以看到我們的用戶名和密碼
接下來(lái)點(diǎn)擊 create Controller, 跳轉(zhuǎn)到 controller 上
Controller
接下來(lái)進(jìn)行一些設(shè)置:
?
?
?
設(shè)置完點(diǎn)擊下面的 run 去運(yùn)行
運(yùn)行結(jié)束:?
?點(diǎn)擊 Result 中的 Analyze Result, 進(jìn)入 Analysis
Analysis
接下來(lái)就能看到我們的運(yùn)行數(shù)據(jù)
?點(diǎn)擊右邊的就能看到圖表:
?Running Vuser:
?這里和我們之前設(shè)置的一樣
Hits per Second 和 Througput
?平均點(diǎn)擊數(shù)和吞吐量也是符合規(guī)律