張飛 王亞雄 郭開衛(wèi)
摘? 要:現(xiàn)有的Web測試系統(tǒng)一般分為需求分析、架構(gòu)設(shè)計、編碼測試、上線運(yùn)維等幾個階段,在這種情況下開發(fā)需求分析工作至關(guān)重要,因?yàn)橄到y(tǒng)一旦開發(fā)上線完畢,對系統(tǒng)的任何更改都是一件代價比較昂貴的事情。作為測試系統(tǒng),其輸入的特殊性決定了其需求的多變性,測試接口的多變也使得很難在需求分析階段就能夠?qū)y試接口進(jìn)行確定。這些外部約束注定了該類系統(tǒng)的開發(fā)代價相對其他系統(tǒng)來說比較高昂。針對系統(tǒng)需求多變、接口多變難以確定設(shè)計的特點(diǎn),本文提供一種能夠針對命令進(jìn)行動態(tài)編輯、動態(tài)選擇、動態(tài)執(zhí)行的Web測試系統(tǒng)和Web測試方法來試圖在一定程度上解決這些問題。
關(guān)鍵詞:動態(tài)擴(kuò)展;Web測試系統(tǒng);動態(tài)編輯;測試方法
Abstract:The existing Web test system is generally divided into several stages,such as requirements analysis,architecture design,coding test,and online operation and maintenance. In this case,it is important to develop the requirements analysis work,because once the system is developed,the system is completed. Any change is a costly thing. As a test system,the input specificity has been determined to be variability of its requirements,and the variety of test interfaces also makes it difficult to determine the test interface during the requirements analysis phase. These external constraints are bound to make the development cost of this type of system relatively high compared to other systems. In view of the changing system requirements and the difficulty of determining the design characteristics of the interface,this document provides a Web test system and Web test method that can dynamically edit,dynamically select,and dynamically execute commands to try to solve these problems to a certain extent.
Keywords:dynamic expansion;Web test system;dynamic editing;test method
0? 引? 言
在現(xiàn)有技術(shù)中,一般的Web測試系統(tǒng)在需求分析階段就已經(jīng)確定了系統(tǒng)功能,上線實(shí)施后系統(tǒng)就已經(jīng)固化,如果此時需要進(jìn)行變更或者新增功能,代價相對比較高昂,極端情況下甚至和重新開發(fā)一套全新的測試系統(tǒng)代價相差無幾。
1? 技術(shù)背景
為了解決這種傳統(tǒng)的Web測試系統(tǒng)在上線后功能即已固化的問題,本文旨在提供一種能夠以較低成本進(jìn)行在線變更或者新增功能的Web測試系統(tǒng)和Web測試方法。更進(jìn)一步地,針對系統(tǒng)需求多變、接口多變難以確定設(shè)計的特點(diǎn),本文旨在提供一種能夠針對命令進(jìn)行動態(tài)編輯、動態(tài)選擇、動態(tài)執(zhí)行的Web測試系統(tǒng)和Web測試方法。
2? 實(shí)現(xiàn)方式
2.1? Web測試系統(tǒng)的構(gòu)造
本文中的可在線動態(tài)擴(kuò)展的Web測試系統(tǒng)的構(gòu)造框圖包括命令,如圖1所示,其特征在于,具備命令編輯裝置100、html轉(zhuǎn)換裝置200、命令交互裝置300、命令持久化檢索裝置400、命令持久化裝置500、命令執(zhí)行裝置600。
其中,命令編輯裝置100可由用戶對測試命令進(jìn)行編輯并且通過Web客戶端進(jìn)行展示。用戶通過命令編輯裝置100進(jìn)行測試命令的編輯工作(通過Web客戶端展示)。命令編輯裝置100是一個在持久化設(shè)備中的預(yù)置命令,該預(yù)置命令的特殊之處在于它由系統(tǒng)開發(fā)人員默認(rèn)開發(fā)完成,用戶可以對其進(jìn)行二次編輯。命令編輯裝置100啟動時是經(jīng)過html轉(zhuǎn)換裝置200激活并在Web客戶端進(jìn)行展示的,命令編輯裝置100默認(rèn)提供命令查看、命令編輯、命令執(zhí)行三個入口功能。另外,用戶后續(xù)可以通過默認(rèn)編輯裝置對其進(jìn)行修改和保存生成新的編輯裝置。
html轉(zhuǎn)換裝置200用于將從所述Web客戶端接收到的指令轉(zhuǎn)換生成html頁面并交由所述Web客戶端(例如Web瀏覽器)進(jìn)行展示。具體地,html轉(zhuǎn)換裝置200通過Web客戶端接收到內(nèi)部指令后,根據(jù)指令內(nèi)容生成html頁面交由Web客戶端進(jìn)行展示。html轉(zhuǎn)換裝置200部署在Web客戶端(例如 Web瀏覽器),當(dāng)Web瀏覽器在打開運(yùn)行時需要動態(tài)從服務(wù)器下載該html轉(zhuǎn)換裝置200到本地運(yùn)行。在本文中,設(shè)置為html轉(zhuǎn)換裝置200在其初始化完畢后,立即請求運(yùn)行命令編輯器裝置100。
這樣,命令編輯裝置100和html轉(zhuǎn)換裝置200都布置在Web客戶端,命令編輯裝置100的前置和html轉(zhuǎn)換裝置200的前置使得命令編輯裝置能夠在線更新,優(yōu)化用戶的編輯體驗(yàn)。而且,前置的html轉(zhuǎn)化裝置200最大程度地減輕了服務(wù)器的運(yùn)行壓力,也兼顧了Web瀏覽器的兼容性。
命令交互裝置300用于將接收到的由所述命令編輯裝置編輯的命令進(jìn)行第一交互處理后轉(zhuǎn)發(fā)給下述的命令持久化檢索裝置,并對反饋回來的命令執(zhí)行結(jié)果進(jìn)行第二交互處理,其后再反饋至所述Web客戶端。具體地,命令交互裝置300提供基本的HTTP協(xié)議服務(wù),例如包裝分析HTTP包。具體地,命令交互裝置300在收到客戶端的任何請求后,首先進(jìn)行HTTP解包處理(即第一交互處理),并把收到的命令包轉(zhuǎn)發(fā)給下述的命令持久化檢索裝置400進(jìn)行處理,等候處理結(jié)果,并對處理結(jié)果進(jìn)行HTTP打包處理(即第二交互處理),之后發(fā)送給Web客戶端,由Web客戶端交由HTML轉(zhuǎn)換裝置進(jìn)行轉(zhuǎn)換顯示操作。
命令持久化檢索裝置400用于對接收到的命令進(jìn)行分析,如果命令是編輯類型的,則將命令腳本存儲到下述的命令持久化裝置中并獲得反饋結(jié)果;如果命令是執(zhí)行類型的,則從下述命令持久化設(shè)備中提取命令腳本轉(zhuǎn)交給下述的命令執(zhí)行裝置。
命令持久化設(shè)備500用于執(zhí)行持久化和檢索用戶編輯的命令。
命令執(zhí)行裝置600用于執(zhí)行所述命令持久化檢索裝置發(fā)送來的命令腳本,它作為整個系統(tǒng)的數(shù)據(jù)持久化設(shè)備存在。命令執(zhí)行裝置600相對獨(dú)立,這樣,對其升級和改造不影響整個系統(tǒng)的運(yùn)行狀況。
2.2? Web測試系統(tǒng)的使用方法
可在線動態(tài)擴(kuò)展的Web測試方法利用上述的具備命令編輯裝置100、html轉(zhuǎn)換裝置200、命令交互裝置300、命令持久化裝置400、持久化裝置500以及命令執(zhí)行裝置600的Web測試系統(tǒng)實(shí)現(xiàn)。本文中的可在線動態(tài)擴(kuò)展的Web測試方法大致可以分成以下三大步驟:
系統(tǒng)啟動步驟:通過Web客戶端動態(tài)下載html轉(zhuǎn)換裝置并激活命令編輯裝置,檢索命令編輯裝置以在Web客戶端展現(xiàn)命令編輯裝置,獲取命令編輯裝置的命令列表以使得在Web客戶端展現(xiàn)命令列表;
測試命令編輯步驟:利用命令編輯裝置編輯命令后,依次通過命令交互裝置、命令持久化檢索裝置發(fā)送到命令持久化裝置進(jìn)行處理,命令持久化裝置將處理結(jié)果依次通過命令持久化檢索裝置、命令交互裝置、html轉(zhuǎn)換裝置處理后在命令編輯裝置展示命令編輯結(jié)果;
測試命令執(zhí)行步驟:命令編輯裝置將執(zhí)行命令通過命令交互裝置發(fā)送到命令持久化檢索裝置,如果該命令是執(zhí)行類型,則由命令執(zhí)行裝置執(zhí)行命令,并且將執(zhí)行結(jié)果依次通過命令交互裝置、html轉(zhuǎn)換裝置處理后在命令編輯裝置展示該命令執(zhí)行結(jié)果。
接著,對于系統(tǒng)啟動步驟、測試命令編輯步驟、測試命令執(zhí)行步驟分別進(jìn)行具體說明。
圖2是本文的可在線動態(tài)擴(kuò)展的Web測試方法中系統(tǒng)啟動步驟的流程圖。所述系統(tǒng)啟動步驟包括下述子步驟:
步驟S100:利用Web客戶端(也就是圖中2中的Web瀏覽器)動態(tài)下載html轉(zhuǎn)換裝置到本地運(yùn)行;
步驟S101:html轉(zhuǎn)換裝置200獲取命令編輯裝置100,即激活命令編輯裝置100;
步驟S102:命令交互裝置300檢索命令編輯裝置,并且將檢索結(jié)果進(jìn)行HTTP解包處理后發(fā)送到命令持久化檢索裝置400;
步驟S103:命令持久化檢索裝置400根據(jù)檢索結(jié)果對命令腳本進(jìn)行存儲,并且返回命令編輯腳本到命令交互裝置300;
步驟S104:命令交互裝置300對返回的命令編輯腳本進(jìn)行HTTP大包處理后返回到html轉(zhuǎn)換裝置200;
步驟S105:html轉(zhuǎn)換裝置200將接收到的命令編輯腳本轉(zhuǎn)換成html頁面后由Web瀏覽器進(jìn)行展示;
步驟S106:用戶根據(jù)展示的內(nèi)容利用命令編輯裝置100獲取命令列表后發(fā)送到命令交互裝置300;
步驟S107:命令交互裝置300將接收到的列表進(jìn)行HTTP解包處理后發(fā)送到命令持久化檢索裝置400;
步驟S108:命令持久化檢索裝置400存儲命令腳本并返回命令列表腳本到命令交互處理裝置300;
步驟S109:命令交互裝置300對命令列表腳本進(jìn)行HTTP打包后發(fā)送到html轉(zhuǎn)換裝置200;
步驟S110:html轉(zhuǎn)換裝置200將接收到的命令列表腳本轉(zhuǎn)換成html頁面;
步驟S111:通過Web瀏覽器展示html頁面以展示命令列表。
圖3是本文的可在線動態(tài)擴(kuò)展的Web測試方法中測試命令編輯步驟的流程圖。所述測試命令編輯流程包括下述子步驟:
步驟S200:命令編輯裝置100編輯測試命令并且發(fā)送給命令交互裝置300;
步驟S201:命令交互裝置300對接收到的編輯后的測試命令進(jìn)行HTTP解包處理后發(fā)送到命令持久化檢索裝置400;
步驟S202:命令持久化檢索裝置400將收到的測試命令作為持久化命令發(fā)送到命令持久化裝置500;
步驟S203:命令持久化裝置500存儲所述持久化結(jié)果并反饋持久化結(jié)果至命令持久化檢索裝置400;
步驟S204:命令持久化檢索裝置400將持久化結(jié)果再轉(zhuǎn)發(fā)到命令交互裝置300;
步驟S205:命令交互裝置400對持久化結(jié)果進(jìn)行HTTP打包處理后發(fā)送到html轉(zhuǎn)換裝置200;步驟S206:html轉(zhuǎn)換裝置200根據(jù)收到的持久化結(jié)果生成html頁面后發(fā)送回命令編輯裝置100并由Web客戶端進(jìn)行展示。
圖4是本文的可在線動態(tài)擴(kuò)展的Web測試方法中測試命令執(zhí)行步驟的流程圖。所述測試命令執(zhí)行步驟包括下述子步驟:
步驟S300:用戶利用命令編輯裝置100編輯執(zhí)行命令,并且將執(zhí)行命令發(fā)送到命令交互裝置300;
步驟S301:命令交互裝置300將接收到的命令進(jìn)行HTTP解包處理后轉(zhuǎn)發(fā)給命令持久化檢索裝置400;
步驟S302~步驟S305:命令持久化檢索裝置400對接收到的命令進(jìn)行分析,如果命令是編輯類型的,則將命令腳本存儲到命令持久化裝置500(步驟S302)并接收反饋結(jié)果(步驟S303),另一方面,如果命令是執(zhí)行類型的,則從命令持久化裝置400中提取命令腳本轉(zhuǎn)交給命令執(zhí)行裝置600(步驟S304),由命令執(zhí)行裝置600執(zhí)行命令后將命令執(zhí)行結(jié)果反饋至命令交互裝置300(步驟S305);
步驟S306:命令交互裝置300對反饋回來的命令執(zhí)行結(jié)果進(jìn)行HTTP打包處理后再反饋至html轉(zhuǎn)換裝置200;
步驟S307:html轉(zhuǎn)換裝置200根據(jù)收到的指令生成html頁面后由發(fā)送至命令編輯裝置100由Web客戶端進(jìn)行展示。
3? 結(jié)? 論
本文所介紹的可在線動態(tài)擴(kuò)展的Web測試系統(tǒng)以及Web測試方法,只需部署一次,所有新增功能都能夠動態(tài)獲取,動態(tài)執(zhí)行。而且,新增響應(yīng)及時,功能靈活多變,任何命令均可即時在線編輯、在線執(zhí)行,不需要二次發(fā)布。另一方面,前置的html轉(zhuǎn)換裝置能夠最大程度地減輕服務(wù)器的運(yùn)行壓力,也能夠兼顧到Web瀏覽器的兼容性。同時,命令編輯裝置的前置以及html轉(zhuǎn)換裝置的前置使得命令編輯器能夠在線更新,優(yōu)化用戶的編輯體驗(yàn)。另外,命令執(zhí)行裝置相對獨(dú)立,這樣,對其升級和改造就不會影響整個系統(tǒng)的運(yùn)行。
參考文獻(xiàn):
[1] 干曉鳴.軟件自動化測試的合理應(yīng)用 [J].計算機(jī)應(yīng)用與軟件,2010,27(8):172-174+214.
[2] 付曉,楊海根.自動化測試實(shí)現(xiàn)研究 [J].中國市場,2016(34):96-98+102.
[3] 易敏捷.軟件測試國內(nèi)外發(fā)展現(xiàn)狀及趨勢研究 [J].電腦知識與技術(shù),2013,9(26):6020-6022.
[4] 徐泊.一種自動化測試系統(tǒng)的輔助測試工具的分析與設(shè)計 [D].北京:北京郵電大學(xué),2017.
[5] 田鴻運(yùn),劉青凱,成杰,等.一種面向高性能數(shù)值模擬軟件的自動化測試平臺 [J].計算機(jī)工程與科學(xué),2017,39(11):1980-1985.
[6] 孫昌愛,金茂忠.基于程序插裝的動態(tài)測試技術(shù)實(shí)現(xiàn) [J].小型微型計算機(jī)系統(tǒng),2001(12):1475-1479.
作者簡介:張飛(1981.05-),男,漢族,陜西西安人,本科,中級工程師,研究方向:大數(shù)據(jù)開發(fā);王亞雄(1985.01-),男,漢族,湖北天門人,本科,中級工程師,研究方向:大數(shù)據(jù)開發(fā);郭開衛(wèi)(1981.09-),男,漢族,江西吉安人,本科,高級工程師,研究方向:大數(shù)據(jù)開發(fā)。