欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

網(wǎng)頁性能的測試方法及裝置與流程

文檔序號(hào):11918281閱讀:384來源:國知局
網(wǎng)頁性能的測試方法及裝置與流程

本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種網(wǎng)頁性能的測試方法及裝置。



背景技術(shù):

網(wǎng)頁分為前端和后端兩個(gè)部分,網(wǎng)頁是直接呈現(xiàn)給用戶的內(nèi)容,其性能對(duì)用戶體驗(yàn)至關(guān)重要。目前網(wǎng)頁性能測試主要關(guān)注網(wǎng)頁的加載時(shí)間:用戶通過瀏覽器向服務(wù)器發(fā)送網(wǎng)絡(luò)連接請(qǐng)求開始計(jì)時(shí),到瀏覽器加載完返回的所有網(wǎng)頁數(shù)據(jù)結(jié)束計(jì)時(shí),這之間即為網(wǎng)頁的加載時(shí)間。網(wǎng)頁加載時(shí)間測試方法一般有兩種:第一種是在網(wǎng)頁頂端注入JavaScript代碼,記錄加載開始和結(jié)束時(shí)間,二者之差即為網(wǎng)頁的加載時(shí)間;第二種是借助瀏覽器插件,查看網(wǎng)頁的加載時(shí)間。第一種方法需要改變網(wǎng)頁代碼,如果想查看某些網(wǎng)頁元素的加載時(shí)間,需要插入大量的代碼,工作量比較大;而第二種方法只需要簡單地安裝插件,就可以精準(zhǔn)獲得網(wǎng)頁各個(gè)元素以及完全加載的時(shí)間,操作簡單,是常用的測試手段。

目前使用瀏覽器插件測試網(wǎng)頁加載速度,主要采用手動(dòng)測試,如果多次測試網(wǎng)頁加載時(shí)間,人工耗時(shí)將非常大,而且容易導(dǎo)入人為誤差。在網(wǎng)頁加載過程中,瀏覽器的CPU、內(nèi)存資源消耗,也是重要的性能指標(biāo),同樣需要關(guān)注,而瀏覽器插件通常不能記錄這些數(shù)據(jù)。

針對(duì)現(xiàn)有技術(shù)中的網(wǎng)頁性能的測試方法主要采用手動(dòng)測試,測試時(shí)間長且準(zhǔn)確度低的問題,目前尚未提出有效的解決方案。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供了一種網(wǎng)頁性能的測試方法及裝置,以至少解決現(xiàn)有技術(shù)中的網(wǎng)頁性能的測試方法主要采用手動(dòng)測試,測試時(shí)間長且準(zhǔn)確度低的技術(shù)問題。

根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種網(wǎng)頁性能的測試方法,包括:獲取測試腳本,其中,測試腳本為對(duì)待測試的網(wǎng)頁進(jìn)行訪問操作而生成的腳本;在多次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的多個(gè)性能數(shù)據(jù);基于多個(gè)性能數(shù)據(jù),生成待測試的網(wǎng)頁的性能數(shù)據(jù)圖表。

根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種網(wǎng)頁性能的測試裝置,包括:第一獲取單元,用于獲取測試腳本,其中,測試腳本為對(duì)待測試的網(wǎng)頁進(jìn)行訪問操作而生成的腳本;第二獲取單元,用于在多次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的多個(gè)性能數(shù)據(jù);處理單元,用于基于多個(gè)性能數(shù)據(jù),生成待測試的網(wǎng)頁的性能數(shù)據(jù)圖表。

在本發(fā)明實(shí)施例中,獲取測試腳本,在多次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的多個(gè)性能數(shù)據(jù),基于多個(gè)性能數(shù)據(jù),生成待測試的網(wǎng)頁的性能數(shù)據(jù)圖表,從而實(shí)現(xiàn)對(duì)網(wǎng)頁前端進(jìn)行性能測試的目的。

容易注意到,由于可以自動(dòng)執(zhí)行測試腳本,在執(zhí)行測試腳本的過程中,自動(dòng)獲取待測試的網(wǎng)頁的性能數(shù)據(jù),從而可以在不改變網(wǎng)頁代碼的情況下,實(shí)現(xiàn)網(wǎng)頁前端性能的自動(dòng)化測試,降低人工成本,提高了測試效率。并且可以進(jìn)行多次測試,獲取多個(gè)性能數(shù)據(jù),進(jìn)一步對(duì)多個(gè)性能數(shù)據(jù)進(jìn)行處理,去掉誤差較大的無效數(shù)據(jù),并生成性能數(shù)據(jù)圖表,從而測試準(zhǔn)確度得到提高。在測試過程中,處理可以獲取到待測試的網(wǎng)頁的加載時(shí)間,還可以獲取到瀏覽器的CPU和內(nèi)存使用數(shù)據(jù),使得測試結(jié)果更符合用戶的關(guān)注點(diǎn)。因此,通過本發(fā)明實(shí)施例所提供的方案,可以達(dá)到降低人工成本,提高測試效率,提高測試準(zhǔn)確度的效果。

由此,本發(fā)明實(shí)施例的方案解決了現(xiàn)有技術(shù)中的網(wǎng)頁性能的測試方法主要采用手動(dòng)測試,測試時(shí)間長且準(zhǔn)確度低的技術(shù)問題。

附圖說明

此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:

圖1是根據(jù)本發(fā)明實(shí)施例的一種網(wǎng)頁性能的測試方法的流程圖;

圖2是根據(jù)本發(fā)明實(shí)施例的一種網(wǎng)頁性能的測試系統(tǒng)的架構(gòu)示意圖;

圖3是根據(jù)本發(fā)明實(shí)施例的一種可選的網(wǎng)頁性能的測試方法的流程圖;

圖4是根據(jù)本發(fā)明實(shí)施例的一種網(wǎng)頁性能的測試裝置的示意圖;

圖5是根據(jù)本發(fā)明實(shí)施例的一種可選的網(wǎng)頁性能的測試裝置的示意圖;

圖6是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖;

圖7是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖;

圖8是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖;

圖9是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖;

圖10是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖;

圖11是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖;

圖12是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖;以及

圖13是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖。

具體實(shí)施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。

需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。

實(shí)施例1

根據(jù)本發(fā)明實(shí)施例,提供了一種網(wǎng)頁性能的測試方法的實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

圖1是根據(jù)本發(fā)明實(shí)施例的一種網(wǎng)頁性能的測試方法的流程圖,如圖1所示,該方法包括如下步驟:

步驟S102,獲取測試腳本,其中,測試腳本為對(duì)待測試的網(wǎng)頁進(jìn)行訪問操作而生成的腳本。

具體的,上述的待測試的網(wǎng)頁可以是用于進(jìn)行性能測試的網(wǎng)頁,上述的測試腳本可以是測試人員在瀏覽器中打開需要測試的網(wǎng)頁,手動(dòng)模擬用戶操作得到的腳本。

步驟S104,在多次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的多個(gè)性能數(shù)據(jù)。

根據(jù)本發(fā)明上述實(shí)施例,上述的性能數(shù)據(jù)至少包括以下其中之一:待測試的網(wǎng)頁的加載時(shí)間、CPU(Central Processing Unit,中央處理器)的使用信息和內(nèi)存的使用信息。

具體的,為了能夠得到更為準(zhǔn)確的性能數(shù)據(jù),可以對(duì)測試腳本進(jìn)行多次回放,即多次執(zhí)行測試腳本,回放次數(shù)越多,測試結(jié)果越準(zhǔn)確,但是測試時(shí)間越長,測試成本越高,因此,需要在準(zhǔn)確性和成本間進(jìn)行權(quán)衡,可以根據(jù)實(shí)際需要,確定回放測試腳本的具體次數(shù);上述的CPU的使用信息和內(nèi)存的使用信息可以是瀏覽器的CPU和內(nèi)存的消耗信息,在移動(dòng)設(shè)備廣泛應(yīng)用而硬件資源有限的情況下,CPU和內(nèi)存的使用情況通常也是用戶所關(guān)注的。

此處需要說明的是,為了保證測試結(jié)果的準(zhǔn)確性,在回放測試腳本的過程中,應(yīng)當(dāng)盡量保證網(wǎng)絡(luò)中沒有其他進(jìn)程或服務(wù)的流量。

在一種可選的方案中,在對(duì)網(wǎng)頁前端進(jìn)行性能測試之前,可以首先通過人工模擬用戶操作的方式得到測試需要的測試腳本,然后根據(jù)測試需求,運(yùn)行測試腳本,回放次腳本N次,并在每一次運(yùn)行測試腳本的過程中,記錄待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況。

步驟S106,基于多個(gè)性能數(shù)據(jù),生成待測試的網(wǎng)頁的性能數(shù)據(jù)圖表。

在一種可選的方案中,由于網(wǎng)絡(luò)服務(wù)器、網(wǎng)絡(luò)、操作系統(tǒng)或者硬件等原因,N次腳本回放記錄的待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況有可能產(chǎn)生一些隨機(jī)誤差,為了避免隨機(jī)誤差對(duì)測試結(jié)果的影響,在得到多組待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況之后,需要對(duì)測試數(shù)據(jù)進(jìn)行處理,刪除不滿足測試需要的性能數(shù)據(jù),生成可讀性更強(qiáng)的性能數(shù)據(jù)圖表。

由上可知,本發(fā)明上述實(shí)施例公開的方案中,獲取測試腳本,在多次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的多個(gè)性能數(shù)據(jù),基于多個(gè)性能數(shù)據(jù),生成待測試的網(wǎng)頁的性能數(shù)據(jù)圖表,從而實(shí)現(xiàn)對(duì)網(wǎng)頁前端進(jìn)行性能測試的目的。

容易注意到,由于可以自動(dòng)執(zhí)行測試腳本,在執(zhí)行測試腳本的過程中,自動(dòng)獲取待測試的網(wǎng)頁的性能數(shù)據(jù),從而可以在不改變網(wǎng)頁代碼的情況下,實(shí)現(xiàn)網(wǎng)頁前端性能的自動(dòng)化測試,降低人工成本,提高了測試效率。并且可以進(jìn)行多次測試,獲取多個(gè)性能數(shù)據(jù),進(jìn)一步對(duì)多個(gè)性能數(shù)據(jù)進(jìn)行處理,去掉誤差較大的無效數(shù)據(jù),并生成性能數(shù)據(jù)圖表,從而測試準(zhǔn)確度得到提高。在測試過程中,處理可以獲取到待測試的網(wǎng)頁的加載時(shí)間,還可以獲取到瀏覽器的CPU和內(nèi)存使用數(shù)據(jù),使得測試結(jié)果更符合用戶的關(guān)注點(diǎn)。因此,通過本發(fā)明實(shí)施例所提供的方案,可以達(dá)到降低人工成本,提高測試效率,提高測試準(zhǔn)確度的效果。

由此,本發(fā)明提供的上述實(shí)施例的方案解決了現(xiàn)有技術(shù)中的網(wǎng)頁性能的測試方法主要采用手動(dòng)測試,測試時(shí)間長且準(zhǔn)確度低的技術(shù)問題。

根據(jù)本發(fā)明上述實(shí)施例,步驟S102,獲取測試腳本包括:

步驟S1022,獲取測試需求。

具體的,測試需求決定了模擬用戶進(jìn)行哪些操作。一般來說,真實(shí)用戶常用的功能、對(duì)網(wǎng)站服務(wù)器數(shù)據(jù)庫開銷較大的操作以及加載大量圖片的網(wǎng)頁是重點(diǎn)關(guān)注的測試項(xiàng)。

步驟S1024,根據(jù)測試需求,對(duì)待測試的網(wǎng)頁進(jìn)行訪問操作。

步驟S1026,在對(duì)待測試的網(wǎng)頁進(jìn)行訪問操作的過程中,記錄訪問操作,得到測試腳本。

在一種可選的方案中,測試人員在進(jìn)行網(wǎng)頁前端性能測試之前,可以在瀏覽器中打開需要測試的網(wǎng)頁,人工手動(dòng)模擬用戶操作,錄制得到自動(dòng)化腳本(即上述的測試腳本)。

根據(jù)本發(fā)明上述實(shí)施例,步驟S1022,獲取測試需求包括:

步驟S10222,從服務(wù)器的操作日志中,查詢得到測試需求;和/或

步驟S10224,對(duì)待測試的網(wǎng)頁的頁面功能重要性和復(fù)雜程度進(jìn)行分析,得到測試需求。

在一種可選的方案中,用戶的常用操作和數(shù)據(jù)庫慢查詢,可以通過服務(wù)器后臺(tái)日志來查詢得到,如果沒有服務(wù)器后臺(tái)查詢權(quán)限,可以對(duì)頁面功能重要性和復(fù)雜程度進(jìn)行分析,確定測試需求。

根據(jù)本發(fā)明上述實(shí)施例,在步驟S1026,記錄訪問操作,得到測試腳本之后,上述方法還包括:

步驟S10282,將測試腳本進(jìn)行分割,得到多個(gè)測試用例。

步驟S10284,為每個(gè)測試用例添加注釋,并增加異常捕捉,得到處理后的測試腳本。

步驟S10286,對(duì)處理后的測試腳本進(jìn)行驗(yàn)證。

步驟S10288,如果處理后的測試腳本驗(yàn)證成功,則多次執(zhí)行處理后的測試腳本。

在一種可選的方案中,由于錄制得到的腳本可能會(huì)包含一些冗余代碼,因此需要經(jīng)過優(yōu)化和驗(yàn)證,得到符合測試需求的可執(zhí)行腳本(即上述的處理后的測試腳本),對(duì)錄制得到的自動(dòng)化腳本進(jìn)行優(yōu)化的方法可以為:將腳本按照操作順序分割成多塊,形成多個(gè)測試用例;添加注釋,提高代碼可讀性;增加異常捕捉,提高代碼健壯性。優(yōu)化完成后,對(duì)腳本進(jìn)行回放驗(yàn)證。驗(yàn)證不通過的,需要找到原因、對(duì)代碼進(jìn)行再次優(yōu)化。

根據(jù)本發(fā)明上述實(shí)施例,步驟S104,在多次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的多個(gè)性能數(shù)據(jù)包括:

步驟S1042,獲取至少一個(gè)網(wǎng)絡(luò)速度。

此處需要說明的是,網(wǎng)頁加載時(shí)間非常依賴用戶的網(wǎng)絡(luò)速度,為了貼近真實(shí)用戶的網(wǎng)絡(luò)情況,需要考慮不同的網(wǎng)絡(luò)速度。

步驟S1044,在每個(gè)網(wǎng)絡(luò)速度下,至少一次執(zhí)行測試腳本。

步驟S1046,在每次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的性能數(shù)據(jù),得到每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的至少一個(gè)性能數(shù)據(jù)。

在一種可選的方案中,可以在相同的網(wǎng)絡(luò)速度的情況下,回放測試腳本N次,在運(yùn)行測試腳本的過程中,記錄待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況;然后在不同網(wǎng)絡(luò)速度的情況下,回放測試腳本多次,記錄不同網(wǎng)絡(luò)速度下,待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況。

此處需要說明的是,在不同網(wǎng)絡(luò)速度條件下進(jìn)行測試,除了網(wǎng)絡(luò)速度不同之外,其他的測試條件都不變。

通過上述步驟S1042至步驟S1046,獲取至少一個(gè)網(wǎng)絡(luò)速度,在每個(gè)網(wǎng)絡(luò)速度下,至少一次執(zhí)行測試腳本,在每次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的性能數(shù)據(jù),得到每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的至少一個(gè)性能數(shù)據(jù),從而獲取到的測試結(jié)果可以適配不同網(wǎng)絡(luò)速度的用戶,提高測試結(jié)果的說服力。

根據(jù)本發(fā)明上述實(shí)施例,測試需求至少包括:目標(biāo)對(duì)象的網(wǎng)絡(luò)速度和/或最大網(wǎng)絡(luò)速度,其中,步驟S1042,獲取至少一個(gè)網(wǎng)絡(luò)速度包括:

步驟S10422,按照目標(biāo)對(duì)象的網(wǎng)絡(luò)速度的分布情況,得到至少一個(gè)網(wǎng)絡(luò)速度。和/或

步驟S10424,對(duì)最大網(wǎng)絡(luò)速度進(jìn)行平均分配,得到至少一個(gè)網(wǎng)絡(luò)速度。

具體的,網(wǎng)絡(luò)速度的設(shè)置方案由測試環(huán)境和測試需求來決定,為了能獲得理想的測試數(shù)據(jù),測試環(huán)境的真實(shí)帶寬應(yīng)該大于網(wǎng)站90%用戶的帶寬;上述的目標(biāo)對(duì)象可以是測試對(duì)應(yīng)的目標(biāo)用戶。

在一種可選的方案中,網(wǎng)絡(luò)速度需要設(shè)置多少檔、每檔設(shè)置多大值,可以按照目標(biāo)用戶的網(wǎng)速分布來決定;如果不能獲得用戶的網(wǎng)速數(shù)據(jù),可以根據(jù)實(shí)際測試需要,按零到最大網(wǎng)速均分M檔。

根據(jù)本發(fā)明上述實(shí)施例,步驟S1046,獲取待測試的網(wǎng)頁的性能數(shù)據(jù)包括:

步驟S10462,通過預(yù)設(shè)插件記錄待測試的網(wǎng)頁的加載時(shí)間。和/或

具體的,上述的預(yù)設(shè)插件可以是瀏覽器插件監(jiān)控模塊,該模塊可以以插件的形式運(yùn)行于瀏覽器中,通過該模塊提供的API(Application Programming Interface,引用程序編程接口)接口,該模塊可以記錄待測試的網(wǎng)頁的加載時(shí)間,并將記錄到的數(shù)據(jù)保存在文件中。

步驟S10464,根據(jù)進(jìn)程標(biāo)識(shí)信息,記錄CPU的使用信息和/或內(nèi)存的使用信息。

具體的,上述的進(jìn)程標(biāo)識(shí)信息可以是瀏覽器的PID(Progress ID dentifier,進(jìn)程標(biāo)識(shí)符)。

在一種可選的方案中,可以根據(jù)瀏覽器的PID,對(duì)瀏覽器的CPU和內(nèi)存占用進(jìn)行監(jiān)控,記錄CPU和內(nèi)存的使用信息,并將記錄到的數(shù)據(jù)保存在文件中。

根據(jù)本發(fā)明上述實(shí)施例,在步驟S1046,每次執(zhí)行測試腳本之前,上述方法還包括:

步驟S1040,對(duì)上一次執(zhí)行測試腳本生成的緩存進(jìn)行清理。

在一種可選的方案中,在測試腳本每次回放之前,需要對(duì)瀏覽器緩存進(jìn)行清理,避免上次回放產(chǎn)生的緩存對(duì)本次性能數(shù)據(jù)造成影響。在清理完緩存之后,可以驅(qū)動(dòng)測試腳本回放。

根據(jù)本發(fā)明上述實(shí)施例,步驟S106,基于多個(gè)性能數(shù)據(jù),生成待測試的網(wǎng)頁的性能數(shù)據(jù)圖表包括:

步驟S1062,去除每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的至少一個(gè)性能數(shù)據(jù)中的無效數(shù)據(jù),得到每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的處理后的至少一個(gè)性能數(shù)據(jù)。

具體的,上述的無效數(shù)據(jù)可以是誤差較大的數(shù)據(jù),例如,可以是隨機(jī)誤差數(shù)據(jù)。

步驟S1064,計(jì)算每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的處理后的至少一個(gè)性能數(shù)據(jù)的平均值,得到每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的性能數(shù)據(jù)的平均值。

步驟S1066,根據(jù)每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的性能數(shù)據(jù)的平均值,生成待測試的網(wǎng)頁的性能數(shù)據(jù)圖表。

在一種可選的方案中,在得到不同網(wǎng)絡(luò)速度的情況下,多組待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況之后,可以去掉誤差較大的無效數(shù)據(jù),并求得各項(xiàng)性能數(shù)據(jù)的平均值,得到不同網(wǎng)絡(luò)速度下的性能數(shù)據(jù)的平均值,生成可讀性強(qiáng)的性能數(shù)據(jù)圖表。

根據(jù)本發(fā)明上述實(shí)施例,步驟S1062,去除每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的至少一個(gè)性能數(shù)據(jù)中的無效數(shù)據(jù),得到每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的處理后的至少一個(gè)性能數(shù)據(jù),包括:

步驟S10622,計(jì)算每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的至少一個(gè)性能數(shù)據(jù)的平均值和標(biāo)準(zhǔn)差,得到第一平均值和第一標(biāo)準(zhǔn)差。

步驟S10624,將每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的每個(gè)性能數(shù)據(jù)與第一平均值和第一標(biāo)準(zhǔn)差進(jìn)行比較。

步驟S10626,如果每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的任意一個(gè)性能數(shù)據(jù)與第一平均值的差值大于等于預(yù)設(shè)倍數(shù)的第一標(biāo)準(zhǔn)差,則去除每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的任意一個(gè)性能數(shù)據(jù)。

具體的,上述的預(yù)設(shè)倍數(shù)可以是3倍,也可以根據(jù)實(shí)際測試精度需要進(jìn)行確定。

在一種可選的方案中,判斷性能數(shù)據(jù)是否為無效數(shù)據(jù)的方法為:與平均值的偏差大于3倍標(biāo)準(zhǔn)差的數(shù)據(jù)為無效數(shù)據(jù),需要進(jìn)行去除。去掉誤差較大的數(shù)據(jù)后,求得各項(xiàng)性能數(shù)據(jù)的平均值,生成可讀性強(qiáng)的性能數(shù)據(jù)圖表。

圖2是根據(jù)本發(fā)明實(shí)施例的一種網(wǎng)頁性能的測試系統(tǒng)的架構(gòu)示意圖,圖3是根據(jù)本發(fā)明實(shí)施例的一種可選的網(wǎng)頁性能的測試方法的流程圖,結(jié)合圖2和圖3,對(duì)本發(fā)明一種優(yōu)選的實(shí)施例進(jìn)行詳細(xì)說明。

如圖2所示,該網(wǎng)頁性能的測試系統(tǒng)可以包括如下幾個(gè)模塊:

1、腳本錄制模塊(RecordServer),此模塊用于記錄用戶的瀏覽器操作,生成相應(yīng)的可執(zhí)行代碼。

在本發(fā)明上述實(shí)施例中,可以選用Selenium來實(shí)現(xiàn)該模塊的核心功能。Selenium是一款功能強(qiáng)大的WEB開源自動(dòng)化測試工具,分為IDE和WebDriver兩部分,其中IDE以插件的形式運(yùn)行在瀏覽器中,當(dāng)用戶在瀏覽器中進(jìn)行操作時(shí),IDE可以記錄下用戶操作,生成相應(yīng)的代碼,是RecordServer模塊的核心部件;WebDriver可以驅(qū)動(dòng)瀏覽器,執(zhí)行IDE生成的代碼,模擬用戶操作。

2、網(wǎng)絡(luò)速度設(shè)置模塊(SpeedSet),此模塊用于設(shè)置測試環(huán)境的網(wǎng)絡(luò)速度。

此處需要說明的是,模擬網(wǎng)絡(luò)速度一般有兩種方式:一種是硬件來實(shí)現(xiàn),例如,可以通過路由器設(shè)置網(wǎng)絡(luò)傳輸速度;另外一種是軟件來實(shí)現(xiàn),此種方式基于操作系統(tǒng),通過網(wǎng)卡控制網(wǎng)絡(luò)的上行速度和下行速度。

為了能自動(dòng)化實(shí)現(xiàn)網(wǎng)絡(luò)速度的設(shè)置,在本發(fā)明上述實(shí)施例中,可以采用軟件的方式來實(shí)現(xiàn),SpeedSet模塊設(shè)置的最大網(wǎng)速不能超過真實(shí)的網(wǎng)絡(luò)帶寬。

3、性能監(jiān)控模塊,此模塊包含了瀏覽器插件監(jiān)控PlugMonitor和CPU、內(nèi)存監(jiān)控ResourceMonitor兩個(gè)子模塊。

在本發(fā)明上述實(shí)施例中,選用瀏覽器插件HttpWatch實(shí)現(xiàn)PlugMonitor的核心功能。HttpWatch是一款功能強(qiáng)大的網(wǎng)頁數(shù)據(jù)分析插件,在瀏覽器訪問網(wǎng)頁過程中,能記錄每個(gè)http(超文本傳輸協(xié)議,Hyper Text Transfer Protocol的簡寫)請(qǐng)求和響應(yīng)時(shí)間、統(tǒng)計(jì)整個(gè)頁面的加載時(shí)間,并支持將這些加載時(shí)間數(shù)據(jù)保存到XML(可擴(kuò)展標(biāo)記語言,Extensible Markup Language的簡寫)、CSV(字符分隔值,Comma-Separated Values的簡寫)等文件中。PlugMonitor通過調(diào)用HttpWatch提供的API接口,記錄網(wǎng)頁加載時(shí)間、保存數(shù)據(jù)到CSV文件和停止記錄。ResourceMonitor是基于操作系統(tǒng)的進(jìn)程CPU、內(nèi)存監(jiān)控模塊,不同的操作系統(tǒng)獲取CPU、內(nèi)存兩個(gè)性能指標(biāo)的方式有所不同。本發(fā)明上述實(shí)施例中,ResourceMonitor基于Windows操作系統(tǒng),可以通過Windows性能計(jì)數(shù)器(Performance Counters)來監(jiān)控進(jìn)程對(duì)象的CPU、內(nèi)存信息,進(jìn)程對(duì)象有多個(gè)性能指標(biāo),每個(gè)性能指標(biāo)都有一個(gè)計(jì)數(shù)器來(Counter)來記錄數(shù)據(jù),本測試系統(tǒng)關(guān)注瀏覽器進(jìn)程的CPU、內(nèi)存兩個(gè)性能指標(biāo)。

4、數(shù)據(jù)處理模塊(DataProcessor),此模塊用于處理PlugMonitor和ResourceMonitor記錄的數(shù)據(jù)。DataProcessor會(huì)去掉性能數(shù)據(jù)中誤差大的部分,求取平均值,生成對(duì)應(yīng)的性能圖表。

5、測試控制模塊(CentralController)此模塊用于管理整個(gè)性能測試系統(tǒng),協(xié)調(diào)模塊間的消息通信,驅(qū)動(dòng)各個(gè)模塊完成相應(yīng)的功能,是整個(gè)系統(tǒng)的控制中心。通過CentralController的有效調(diào)度,實(shí)現(xiàn)了本系統(tǒng)的自動(dòng)化。

如圖3所示,基于上述系統(tǒng)的網(wǎng)頁性能的測試方法包括如下步驟:

步驟S31,創(chuàng)建各個(gè)功能模塊。

可選的,可以創(chuàng)建上述系統(tǒng)的主要模塊,包括用戶操作錄制RecordServer模塊、網(wǎng)絡(luò)速度設(shè)置SpeedSet模塊、腳本回放和系統(tǒng)控制CentralController模塊、瀏覽器插件監(jiān)控PlugMonitor模塊、瀏覽器CPU和內(nèi)存使用監(jiān)控ResourceMonitor模塊、數(shù)據(jù)處理DataProcessor模塊。其中,CentralController是整個(gè)性能測試系統(tǒng)的控制中心。在各個(gè)模塊創(chuàng)建完成后,CentralController會(huì)按如圖3的流程,驅(qū)動(dòng)各個(gè)模塊有序運(yùn)行,直到得出最終測試結(jié)果。

步驟S32,啟動(dòng)腳本錄制模塊,模擬用戶操作,錄制腳本。

可選的,可以啟動(dòng)RecordServer,在瀏覽器中打開需要測試的網(wǎng)頁,模擬用戶操作,錄制得到自動(dòng)化腳本。此腳本可能會(huì)包含一些冗余代碼,需要經(jīng)過優(yōu)化和驗(yàn)證,得到符合測試需求的可執(zhí)行腳本。

具體的,測試需求決定了模擬用戶進(jìn)行哪些操作。一般來說,真實(shí)用戶常用的功能、對(duì)網(wǎng)站服務(wù)器數(shù)據(jù)庫開銷較大的操作以及加載大量圖片的頁面是重點(diǎn)關(guān)注的測試項(xiàng)。用戶的常用操作和數(shù)據(jù)庫慢查詢,可以通過服務(wù)器后臺(tái)日志來查詢;如果沒有服務(wù)器后臺(tái)查詢權(quán)限,可以對(duì)頁面功能重要性和復(fù)雜程度進(jìn)行分析,確定測試需求。

其中,RecordServer通過Selenium IDE錄制完用戶操作,會(huì)生成相應(yīng)的測試腳本,此腳本需要進(jìn)行優(yōu)化:將腳本按照操作順序分割成多塊,形成多個(gè)測試用例;添加注釋,提高代碼可讀性;增加異常捕捉,提高代碼健壯性。優(yōu)化完成后,對(duì)腳本進(jìn)行回放驗(yàn)證。驗(yàn)證不通過的,需要找到原因、對(duì)代碼進(jìn)行再次優(yōu)化。

步驟S33,啟動(dòng)網(wǎng)絡(luò)速度設(shè)置模塊,初始化網(wǎng)絡(luò)速度,啟動(dòng)性能監(jiān)控模塊,監(jiān)控性能數(shù)據(jù)。

可選的,可以啟動(dòng)SpeedSet,根據(jù)測試要求,設(shè)置所需要的網(wǎng)絡(luò)速度;同時(shí)啟動(dòng)PlugMonitor和ResourceMonitor,實(shí)時(shí)監(jiān)控網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況。

具體的,網(wǎng)絡(luò)速度的設(shè)置方案由測試環(huán)境和測試需求來決定。SpeedSet能設(shè)置的最大網(wǎng)速為測試環(huán)境提供的真實(shí)帶寬,為了能獲得理想的測試數(shù)據(jù),測試環(huán)境的真實(shí)帶寬應(yīng)該大于網(wǎng)站90%用戶的帶寬。網(wǎng)絡(luò)速度需要設(shè)置多少檔、每檔設(shè)置多大值,可以按照目標(biāo)用戶的網(wǎng)速分布來決定;如果不能獲得用戶的網(wǎng)速數(shù)據(jù),可以按零到最大網(wǎng)速均分M檔(具體數(shù)值可根據(jù)實(shí)際情況確認(rèn))。

其中,PlugMonitor以插件形式運(yùn)行于瀏覽器中,CentralController可以通過PlugMonitor提供的API接口,控制PlugMonitor記錄網(wǎng)頁加載時(shí)間、保存數(shù)據(jù)文件。

其中,ResourceMonito啟動(dòng)后,根據(jù)瀏覽器的PID,對(duì)瀏覽器CPU、內(nèi)存占用進(jìn)行實(shí)時(shí)監(jiān)控,將數(shù)據(jù)到記錄到文件中。

步驟S34,重復(fù)N次腳本,記錄性能數(shù)據(jù)。

可選的,CentralController運(yùn)行自動(dòng)化腳本,在相同網(wǎng)速下,回放此腳本N次(回放次數(shù)可根據(jù)實(shí)際情況來設(shè)置)。在運(yùn)行自動(dòng)化腳本過程中,PlugMonitor和RecordMonitor會(huì)記錄下相關(guān)的性能數(shù)據(jù)。

具體的,腳本每次回放之前,CentralController都會(huì)對(duì)瀏覽器緩存進(jìn)行清理,以免上次回放產(chǎn)生的緩存對(duì)本次測試數(shù)據(jù)造成影響。清理完緩存后,CentralController會(huì)調(diào)用Selenium WebDriver,驅(qū)動(dòng)測試腳本回放。依據(jù)測試方案,每一檔網(wǎng)絡(luò)速度都要進(jìn)行N次腳本回放。一般來說,回放的次數(shù)越多,數(shù)據(jù)處理后得到測試結(jié)果越準(zhǔn)確,測試時(shí)間成本也越高,需要在準(zhǔn)確性和成本間進(jìn)行權(quán)衡。在回放時(shí),應(yīng)盡量保證網(wǎng)絡(luò)中沒有其他進(jìn)程或服務(wù)的流量。

步驟S35,判斷是否改變網(wǎng)絡(luò)速度。

可選的,SpeedSet可以設(shè)置不同的網(wǎng)絡(luò)速度,如果需要改變網(wǎng)絡(luò)速度,則重復(fù)步驟S34的過程,記錄不同網(wǎng)速下,網(wǎng)頁加載時(shí)間、瀏覽器CPU和內(nèi)存消耗數(shù)據(jù);如果不需要改變網(wǎng)絡(luò)速度,可以直接進(jìn)入步驟S36。

其中,除了網(wǎng)絡(luò)速度不同之外,其他的測試條件都不變。

步驟S36,啟動(dòng)數(shù)據(jù)處理模塊,處理性能數(shù)據(jù),生成性能數(shù)據(jù)圖表。

可選的,啟動(dòng)DataProcessor,DataProcessor會(huì)讀取PlugMonitor和ResourceMonitor記錄的數(shù)據(jù)文件,去掉誤差較大的無效數(shù)據(jù),得出不同網(wǎng)速下的性能數(shù)據(jù)平均值,并生成性能數(shù)據(jù)圖表。

具體的,網(wǎng)站服務(wù)器、網(wǎng)絡(luò)、操作系統(tǒng)或者硬件等原因,都可能使測試數(shù)據(jù)產(chǎn)生一些隨機(jī)誤差,需要將誤差較大的無效數(shù)據(jù)去掉,在本發(fā)明上述實(shí)施例中,判定為無效數(shù)據(jù)的標(biāo)準(zhǔn)是:與平均值的偏差大于3倍標(biāo)準(zhǔn)差。去掉誤差較大的數(shù)據(jù)后,DataProcessor會(huì)求得各項(xiàng)性能數(shù)據(jù)的平均值,生成可讀性強(qiáng)的性能數(shù)據(jù)圖表。

通過上述優(yōu)選實(shí)施例,可以通過CentralController回放用戶操作腳本,PlugMonitor和ResourceMonitor監(jiān)控和記錄性能數(shù)據(jù),DataProcessor處理數(shù)據(jù),在不改變網(wǎng)頁代碼的情況下,利用瀏覽器插件提供的API接口,實(shí)現(xiàn)了自動(dòng)、高效地獲得了網(wǎng)頁前端性能測試結(jié)果,節(jié)省了人力人本,提高了測試效率;通過設(shè)置SpeedSet,使得測試數(shù)據(jù)能適配不同網(wǎng)速的用戶,測試結(jié)果更加具有說服力;DataProcessor能夠去掉了誤差大的無效數(shù)據(jù),提高了測試結(jié)果的精準(zhǔn)度。

實(shí)施例2

根據(jù)本發(fā)明實(shí)施例,提供了一種網(wǎng)頁性能的測試裝置的實(shí)施例。

圖4是根據(jù)本發(fā)明實(shí)施例的一種網(wǎng)頁性能的測試裝置的示意圖,如圖4所示,該裝置包括:第一獲取單元41、第二獲取單元43和生成單元45。

其中,第一獲取單元41用于獲取測試腳本,其中,測試腳本為對(duì)待測試的網(wǎng)頁進(jìn)行訪問操作而生成的腳本;第二獲取單元43用于在多次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的多個(gè)性能數(shù)據(jù);生成單元45用于基于多個(gè)性能數(shù)據(jù),生成待測試的網(wǎng)頁的性能數(shù)據(jù)圖表。

根據(jù)本發(fā)明上述實(shí)施例,上述的性能數(shù)據(jù)至少包括以下其中之一:待測試的網(wǎng)頁的加載時(shí)間、CPU(Central Processing Unit,中央處理器)的使用信息和內(nèi)存的使用信息。

具體的,上述的待測試的網(wǎng)頁可以是用于進(jìn)行性能測試的網(wǎng)頁,上述的測試腳本可以是測試人員在瀏覽器中打開需要測試的網(wǎng)頁,手動(dòng)模擬用戶操作得到的腳本;為了能夠得到更為準(zhǔn)確的性能數(shù)據(jù),可以對(duì)測試腳本進(jìn)行多次回放,即多次執(zhí)行測試腳本,回放次數(shù)越多,測試結(jié)果越準(zhǔn)確,但是測試時(shí)間越長,測試成本越高,因此,需要在準(zhǔn)確性和成本間進(jìn)行權(quán)衡,可以根據(jù)實(shí)際需要,確定回放測試腳本的具體次數(shù);上述的CPU的使用信息和內(nèi)存的使用信息可以是瀏覽器的CPU和內(nèi)存的消耗信息,在移動(dòng)設(shè)備廣泛應(yīng)用而硬件資源有限的情況下,CPU和內(nèi)存的使用情況通常也是用戶所關(guān)注的。

此處需要說明的是,為了保證測試結(jié)果的準(zhǔn)確性,在回放測試腳本的過程中,應(yīng)當(dāng)盡量保證網(wǎng)絡(luò)中沒有其他進(jìn)程或服務(wù)的流量。

在一種可選的方案中,在對(duì)網(wǎng)頁前端進(jìn)行性能測試之前,可以首先通過人工模擬用戶操作的方式得到測試需要的測試腳本,然后根據(jù)測試需求,運(yùn)行測試腳本,回放次腳本N次,并在每一次運(yùn)行測試腳本的過程中,記錄待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況。由于網(wǎng)絡(luò)服務(wù)器、網(wǎng)絡(luò)、操作系統(tǒng)或者硬件等原因,N次腳本回放記錄的待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況有可能產(chǎn)生一些隨機(jī)誤差,為了避免隨機(jī)誤差對(duì)測試結(jié)果的影響,在得到多組待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況之后,需要對(duì)測試數(shù)據(jù)進(jìn)行處理,刪除不滿足測試需要的性能數(shù)據(jù),生成可讀性更強(qiáng)的性能數(shù)據(jù)圖表。

此處還需要說明的是,上述的第一獲取單元41、第二獲取單元43和生成單元45對(duì)應(yīng)于實(shí)施例1中的步驟S102至步驟S106,三個(gè)單元與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。

由上可知,本發(fā)明上述實(shí)施例公開的方案中,獲取測試腳本,在多次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的多個(gè)性能數(shù)據(jù),基于多個(gè)性能數(shù)據(jù),生成待測試的網(wǎng)頁的性能數(shù)據(jù)圖表,從而實(shí)現(xiàn)對(duì)網(wǎng)頁前端進(jìn)行性能測試的目的。

容易注意到,由于可以自動(dòng)執(zhí)行測試腳本,在執(zhí)行測試腳本的過程中,自動(dòng)獲取待測試的網(wǎng)頁的性能數(shù)據(jù),從而可以在不改變網(wǎng)頁代碼的情況下,實(shí)現(xiàn)網(wǎng)頁前端性能的自動(dòng)化測試,降低人工成本,提高了測試效率。并且可以進(jìn)行多次測試,獲取多個(gè)性能數(shù)據(jù),進(jìn)一步對(duì)多個(gè)性能數(shù)據(jù)進(jìn)行處理,去掉誤差較大的無效數(shù)據(jù),并生成性能數(shù)據(jù)圖表,從而測試準(zhǔn)確度得到提高。在測試過程中,處理可以獲取到待測試的網(wǎng)頁的加載時(shí)間,還可以獲取到瀏覽器的CPU和內(nèi)存使用數(shù)據(jù),使得測試結(jié)果更符合用戶的關(guān)注點(diǎn)。因此,通過本發(fā)明實(shí)施例所提供的方案,可以達(dá)到降低人工成本,提高測試效率,提高測試準(zhǔn)確度的效果。

由此,本發(fā)明提供的上述實(shí)施例的方案解決了現(xiàn)有技術(shù)中的網(wǎng)頁性能的測試方法主要采用手動(dòng)測試,測試時(shí)間長且準(zhǔn)確度低的技術(shù)問題。

圖5是根據(jù)本發(fā)明實(shí)施例的一種可選的網(wǎng)頁性能的測試裝置的示意圖,根據(jù)本發(fā)明上述實(shí)施例,如圖5所示,第一獲取單元41包括:第一獲取模塊51、訪問模塊53和記錄模塊55。

其中,第一獲取模塊51用于獲取測試需求;訪問模塊53用于根據(jù)測試需求,對(duì)待測試的網(wǎng)頁進(jìn)行訪問操作;記錄模塊55用于在對(duì)待測試的網(wǎng)頁進(jìn)行訪問操作的過程中,記錄訪問操作,得到測試腳本。

具體的,測試需求決定了模擬用戶進(jìn)行哪些操作。一般來說,真實(shí)用戶常用的功能、對(duì)網(wǎng)站服務(wù)器數(shù)據(jù)庫開銷較大的操作以及加載大量圖片的網(wǎng)頁是重點(diǎn)關(guān)注的測試項(xiàng)。

在一種可選的方案中,測試人員在進(jìn)行網(wǎng)頁前端性能測試之前,可以在瀏覽器中打開需要測試的網(wǎng)頁,人工手動(dòng)模擬用戶操作,錄制得到自動(dòng)化腳本(即上述的測試腳本)。

此處需要說明的是,上述的第一獲取模塊51、訪問模塊53和記錄模塊55對(duì)應(yīng)于實(shí)施例1中的步驟S1022至步驟S1026,三個(gè)模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。

圖6是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖,根據(jù)本發(fā)明上述實(shí)施例,如圖6所示,第一獲取模塊51包括:查詢子模塊61和/或分析子模塊63。

其中,查詢子模塊61用于從服務(wù)器的操作日志中,查詢得到測試需求;分析子模塊63用于對(duì)待測試的網(wǎng)頁的頁面功能重要性和復(fù)雜程度進(jìn)行分析,得到測試需求。

在一種可選的方案中,用戶的常用操作和數(shù)據(jù)庫慢查詢,可以通過服務(wù)器后臺(tái)日志來查詢得到,如果沒有服務(wù)器后臺(tái)查詢權(quán)限,可以對(duì)頁面功能重要性和復(fù)雜程度進(jìn)行分析,確定測試需求。

此處需要說明的是,上述的查詢子模塊61和/或分析子模塊63對(duì)應(yīng)于實(shí)施例1中的步驟S10222和/或步驟S10224,兩個(gè)子模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。

圖7是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖,根據(jù)本發(fā)明上述實(shí)施例,如圖7所示,第一獲取單元41還包括:分割模塊71、添加模塊73、驗(yàn)證模塊75和執(zhí)行模塊77。

其中,分割模塊71用于將測試腳本進(jìn)行分割,得到多個(gè)測試用例;添加模塊73用于為每個(gè)測試用例添加注釋,并增加異常捕捉,得到處理后的測試腳本;驗(yàn)證模塊75用于對(duì)處理后的測試腳本進(jìn)行驗(yàn)證;執(zhí)行模塊77用于如果處理后的測試腳本驗(yàn)證成功,則多次執(zhí)行處理后的測試腳本。

在一種可選的方案中,由于錄制得到的腳本可能會(huì)包含一些冗余代碼,因此需要經(jīng)過優(yōu)化和驗(yàn)證,得到符合測試需求的可執(zhí)行腳本(即上述的處理后的測試腳本),對(duì)錄制得到的自動(dòng)化腳本進(jìn)行優(yōu)化的方法可以為:將腳本按照操作順序分割成多塊,形成多個(gè)測試用例;添加注釋,提高代碼可讀性;增加異常捕捉,提高代碼健壯性。優(yōu)化完成后,對(duì)腳本進(jìn)行回放驗(yàn)證。驗(yàn)證不通過的,需要找到原因、對(duì)代碼進(jìn)行再次優(yōu)化。

此處需要說明的是,上述的分割模塊71、添加模塊73、驗(yàn)證模塊75和執(zhí)行模塊77對(duì)應(yīng)于實(shí)施例1中的步驟S10282至步驟S10288,四個(gè)模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。

圖8是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖,根據(jù)本發(fā)明上述實(shí)施例,如圖8所示,第二獲取單元43包括:第二獲取模塊81、執(zhí)行模塊83和第三獲取模塊85。

其中,第二獲取模塊81用于獲取至少一個(gè)網(wǎng)絡(luò)速度;執(zhí)行模塊83用于在每個(gè)網(wǎng)絡(luò)速度下,至少一次執(zhí)行測試腳本;第三獲取模塊85用于在每次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的性能數(shù)據(jù),得到每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的至少一個(gè)性能數(shù)據(jù)。

此處需要說明的是,網(wǎng)頁加載時(shí)間非常依賴用戶的網(wǎng)絡(luò)速度,為了貼近真實(shí)用戶的網(wǎng)絡(luò)情況,需要考慮不同的網(wǎng)絡(luò)速度。

在一種可選的方案中,可以在相同的網(wǎng)絡(luò)速度的情況下,回放測試腳本N次,在運(yùn)行測試腳本的過程中,記錄待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況;然后在不同網(wǎng)絡(luò)速度的情況下,回放測試腳本多次,記錄不同網(wǎng)絡(luò)速度下,待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況。

此處需要說明的是,在不同網(wǎng)絡(luò)速度條件下進(jìn)行測試,除了網(wǎng)絡(luò)速度不同之外,其他的測試條件都不變。

此處還需要說明的是,上述的第二獲取模塊81、執(zhí)行模塊83和第三獲取模塊85對(duì)應(yīng)于實(shí)施例1中的步驟S1042至步驟S1046,三個(gè)模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。

通過上述方案,獲取至少一個(gè)網(wǎng)絡(luò)速度,在每個(gè)網(wǎng)絡(luò)速度下,至少一次執(zhí)行測試腳本,在每次執(zhí)行測試腳本的過程中,獲取待測試的網(wǎng)頁的性能數(shù)據(jù),得到每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的至少一個(gè)性能數(shù)據(jù),從而獲取到的測試結(jié)果可以適配不同網(wǎng)絡(luò)速度的用戶,提高測試結(jié)果的說服力。

圖9是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖,根據(jù)本發(fā)明上述實(shí)施例,如圖9所示,測試需求至少包括:目標(biāo)對(duì)象的網(wǎng)絡(luò)速度和/或最大網(wǎng)絡(luò)速度,其中,第二獲取模塊81包括:第一處理子模塊91和/或第二處理子模塊93。

其中,第一處理子模塊91用于按照目標(biāo)對(duì)象的網(wǎng)絡(luò)速度的分布情況,得到至少一個(gè)網(wǎng)絡(luò)速度;第二處理子模塊93用于對(duì)最大網(wǎng)絡(luò)速度進(jìn)行平均分配,得到至少一個(gè)網(wǎng)絡(luò)速度。

具體的,網(wǎng)絡(luò)速度的設(shè)置方案由測試環(huán)境和測試需求來決定,為了能獲得理想的測試數(shù)據(jù),測試環(huán)境的真實(shí)帶寬應(yīng)該大于網(wǎng)站90%用戶的帶寬;上述的目標(biāo)對(duì)象可以是測試對(duì)應(yīng)的目標(biāo)用戶。

在一種可選的方案中,網(wǎng)絡(luò)速度需要設(shè)置多少檔、每檔設(shè)置多大值,可以按照目標(biāo)用戶的網(wǎng)速分布來決定;如果不能獲得用戶的網(wǎng)速數(shù)據(jù),可以根據(jù)實(shí)際測試需要,按零到最大網(wǎng)速均分M檔。

此處需要說明的是,上述的第一處理子模塊91和/或第二處理子模塊93對(duì)應(yīng)于實(shí)施例1中的步驟S10422和/或步驟S10424,兩個(gè)子模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。

圖10是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖,根據(jù)本發(fā)明上述實(shí)施例,如圖10所示,第三獲取模塊85包括:第一記錄子模塊101和/或第二記錄子模塊103。

其中,第一記錄子模塊101用于通過預(yù)設(shè)插件記錄待測試的網(wǎng)頁的加載時(shí)間;第二記錄子模塊103用于根據(jù)進(jìn)程標(biāo)識(shí)信息,記錄CPU的使用信息和/或內(nèi)存的使用信息。

具體的,上述的預(yù)設(shè)插件可以是瀏覽器插件監(jiān)控模塊,該模塊可以以插件的形式運(yùn)行于瀏覽器中,通過該模塊提供的API(Application Programming Interface,引用程序編程接口)接口,該模塊可以記錄待測試的網(wǎng)頁的加載時(shí)間,并將記錄到的數(shù)據(jù)保存在文件中;上述的進(jìn)程標(biāo)識(shí)信息可以是瀏覽器的PID(Progress ID dentifier,進(jìn)程標(biāo)識(shí)符)。

在一種可選的方案中,可以根據(jù)瀏覽器的PID,對(duì)瀏覽器的CPU和內(nèi)存占用進(jìn)行監(jiān)控,記錄CPU和內(nèi)存的使用信息,并將記錄到的數(shù)據(jù)保存在文件中。

此處需要說明的是,上述的第一記錄子模塊101和/或第二記錄子模塊103對(duì)應(yīng)于實(shí)施例1中的步驟S10462和/或步驟S10464,兩個(gè)子模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。

圖11是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖,根據(jù)本發(fā)明上述實(shí)施例,如圖11所示,第二獲取單元43還包括:清理模塊111。

其中,清理模塊111用于對(duì)上一次執(zhí)行測試腳本生成的緩存進(jìn)行清理。

在一種可選的方案中,在測試腳本每次回放之前,需要對(duì)瀏覽器緩存進(jìn)行清理,避免上次回放產(chǎn)生的緩存對(duì)本次性能數(shù)據(jù)造成影響。在清理完緩存之后,可以驅(qū)動(dòng)測試腳本回放。

此處需要說明的是,上述的清理模塊111對(duì)應(yīng)于實(shí)施例1中的步驟S1040,該模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。

圖12是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖,根據(jù)本發(fā)明上述實(shí)施例,如圖12所示,生成單元45包括:去除模塊121、計(jì)算模塊123和生成模塊125。

其中,去除模塊121用于去除每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的至少一個(gè)性能數(shù)據(jù)中的無效數(shù)據(jù),得到每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的處理后的至少一個(gè)性能數(shù)據(jù);計(jì)算模塊123用于計(jì)算每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的處理后的至少一個(gè)性能數(shù)據(jù)的平均值,得到每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的性能數(shù)據(jù)的平均值;生成模塊125用于根據(jù)每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的性能數(shù)據(jù)的平均值,生成待測試的網(wǎng)頁的性能數(shù)據(jù)圖表。

具體的,上述的無效數(shù)據(jù)可以是誤差較大的數(shù)據(jù),例如,可以是隨機(jī)誤差數(shù)據(jù)。

在一種可選的方案中,在得到不同網(wǎng)絡(luò)速度的情況下,多組待測試的網(wǎng)頁的加載時(shí)間、瀏覽器的CPU和內(nèi)存使用情況之后,可以去掉誤差較大的無效數(shù)據(jù),并求得各項(xiàng)性能數(shù)據(jù)的平均值,得到不同網(wǎng)絡(luò)速度下的性能數(shù)據(jù)的平均值,生成可讀性強(qiáng)的性能數(shù)據(jù)圖表。

此處需要說明的是,上述的去除模塊121、計(jì)算模塊123和生成模塊125對(duì)應(yīng)于實(shí)施例1中的步驟S1062至步驟S1066,三個(gè)模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。

圖13是根據(jù)本發(fā)明實(shí)施例的另一種可選的網(wǎng)頁性能的測試裝置的示意圖,根據(jù)本發(fā)明上述實(shí)施例,如圖13所示,去除模塊121包括:計(jì)算子模塊131、比較子模塊133和去除子模塊135。

其中,計(jì)算子模塊131用于計(jì)算每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的至少一個(gè)性能數(shù)據(jù)的平均值和標(biāo)準(zhǔn)差,得到第一平均值和第一標(biāo)準(zhǔn)差;比較子模塊133用于將每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的每個(gè)性能數(shù)據(jù)與第一平均值和第一標(biāo)準(zhǔn)差進(jìn)行比較;去除子模塊135用于如果每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的任意一個(gè)性能數(shù)據(jù)與第一平均值的差值大于等于預(yù)設(shè)倍數(shù)的第一標(biāo)準(zhǔn)差,則去除每個(gè)網(wǎng)絡(luò)速度對(duì)應(yīng)的任意一個(gè)性能數(shù)據(jù)。

具體的,上述的預(yù)設(shè)倍數(shù)可以是3倍,也可以根據(jù)實(shí)際測試精度需要進(jìn)行確定。

在一種可選的方案中,判斷性能數(shù)據(jù)是否為無效數(shù)據(jù)的方法為:與平均值的偏差大于3倍標(biāo)準(zhǔn)差的數(shù)據(jù)為無效數(shù)據(jù),需要進(jìn)行去除。去掉誤差較大的數(shù)據(jù)后,求得各項(xiàng)性能數(shù)據(jù)的平均值,生成可讀性強(qiáng)的性能數(shù)據(jù)圖表。

此處需要說明的是,上述的計(jì)算子模塊131、比較子模塊133和去除子模塊135對(duì)應(yīng)于實(shí)施例1中的步驟S10622至步驟S10626,三個(gè)子模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的實(shí)例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。

上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。

在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
嵩明县| 江门市| 奇台县| 军事| 郸城县| 蕉岭县| 集贤县| 尼玛县| 西丰县| 诸暨市| 南江县| 凭祥市| 茂名市| 图们市| 明溪县| 海口市| 滨州市| 富阳市| 静宁县| 柳河县| 怀远县| 澎湖县| 鄂尔多斯市| 武威市| 陇西县| 南昌市| 绥德县| 嘉义市| 山阴县| 漳州市| 巍山| 南川市| 广东省| 集安市| 衡阳市| 遵义县| 澎湖县| 望城县| 磐石市| 亚东县| SHOW|