張飛 王亞雄 郭開衛


摘? 要:現有的Web測試系統一般分為需求分析、架構設計、編碼測試、上線運維等幾個階段,在這種情況下開發需求分析工作至關重要,因為系統一旦開發上線完畢,對系統的任何更改都是一件代價比較昂貴的事情。作為測試系統,其輸入的特殊性決定了其需求的多變性,測試接口的多變也使得很難在需求分析階段就能夠對測試接口進行確定。這些外部約束注定了該類系統的開發代價相對其他系統來說比較高昂。針對系統需求多變、接口多變難以確定設計的特點,本文提供一種能夠針對命令進行動態編輯、動態選擇、動態執行的Web測試系統和Web測試方法來試圖在一定程度上解決這些問題。
關鍵詞:動態擴展;Web測試系統;動態編輯;測試方法
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? 引? 言
在現有技術中,一般的Web測試系統在需求分析階段就已經確定了系統功能,上線實施后系統就已經固化,如果此時需要進行變更或者新增功能,代價相對比較高昂,極端情況下甚至和重新開發一套全新的測試系統代價相差無幾。
1? 技術背景
為了解決這種傳統的Web測試系統在上線后功能即已固化的問題,本文旨在提供一種能夠以較低成本進行在線變更或者新增功能的Web測試系統和Web測試方法。更進一步地,針對系統需求多變、接口多變難以確定設計的特點,本文旨在提供一種能夠針對命令進行動態編輯、動態選擇、動態執行的Web測試系統和Web測試方法。
2? 實現方式
2.1? Web測試系統的構造
本文中的可在線動態擴展的Web測試系統的構造框圖包括命令,如圖1所示,其特征在于,具備命令編輯裝置100、html轉換裝置200、命令交互裝置300、命令持久化檢索裝置400、命令持久化裝置500、命令執行裝置600。
其中,命令編輯裝置100可由用戶對測試命令進行編輯并且通過Web客戶端進行展示。用戶通過命令編輯裝置100進行測試命令的編輯工作(通過Web客戶端展示)。命令編輯裝置100是一個在持久化設備中的預置命令,該預置命令的特殊之處在于它由系統開發人員默認開發完成,用戶可以對其進行二次編輯。命令編輯裝置100啟動時是經過html轉換裝置200激活并在Web客戶端進行展示的,命令編輯裝置100默認提供命令查看、命令編輯、命令執行三個入口功能。另外,用戶后續可以通過默認編輯裝置對其進行修改和保存生成新的編輯裝置。
html轉換裝置200用于將從所述Web客戶端接收到的指令轉換生成html頁面并交由所述Web客戶端(例如Web瀏覽器)進行展示。具體地,html轉換裝置200通過Web客戶端接收到內部指令后,根據指令內容生成html頁面交由Web客戶端進行展示。html轉換裝置200部署在Web客戶端(例如 Web瀏覽器),當Web瀏覽器在打開運行時需要動態從服務器下載該html轉換裝置200到本地運行。在本文中,設置為html轉換裝置200在其初始化完畢后,立即請求運行命令編輯器裝置100。
這樣,命令編輯裝置100和html轉換裝置200都布置在Web客戶端,命令編輯裝置100的前置和html轉換裝置200的前置使得命令編輯裝置能夠在線更新,優化用戶的編輯體驗。而且,前置的html轉化裝置200最大程度地減輕了服務器的運行壓力,也兼顧了Web瀏覽器的兼容性。
命令交互裝置300用于將接收到的由所述命令編輯裝置編輯的命令進行第一交互處理后轉發給下述的命令持久化檢索裝置,并對反饋回來的命令執行結果進行第二交互處理,其后再反饋至所述Web客戶端。具體地,命令交互裝置300提供基本的HTTP協議服務,例如包裝分析HTTP包。具體地,命令交互裝置300在收到客戶端的任何請求后,首先進行HTTP解包處理(即第一交互處理),并把收到的命令包轉發給下述的命令持久化檢索裝置400進行處理,等候處理結果,并對處理結果進行HTTP打包處理(即第二交互處理),之后發送給Web客戶端,由Web客戶端交由HTML轉換裝置進行轉換顯示操作。
命令持久化檢索裝置400用于對接收到的命令進行分析,如果命令是編輯類型的,則將命令腳本存儲到下述的命令持久化裝置中并獲得反饋結果;如果命令是執行類型的,則從下述命令持久化設備中提取命令腳本轉交給下述的命令執行裝置。
命令持久化設備500用于執行持久化和檢索用戶編輯的命令。
命令執行裝置600用于執行所述命令持久化檢索裝置發送來的命令腳本,它作為整個系統的數據持久化設備存在。命令執行裝置600相對獨立,這樣,對其升級和改造不影響整個系統的運行狀況。
2.2? Web測試系統的使用方法
可在線動態擴展的Web測試方法利用上述的具備命令編輯裝置100、html轉換裝置200、命令交互裝置300、命令持久化裝置400、持久化裝置500以及命令執行裝置600的Web測試系統實現。本文中的可在線動態擴展的Web測試方法大致可以分成以下三大步驟:
系統啟動步驟:通過Web客戶端動態下載html轉換裝置并激活命令編輯裝置,檢索命令編輯裝置以在Web客戶端展現命令編輯裝置,獲取命令編輯裝置的命令列表以使得在Web客戶端展現命令列表;
測試命令編輯步驟:利用命令編輯裝置編輯命令后,依次通過命令交互裝置、命令持久化檢索裝置發送到命令持久化裝置進行處理,命令持久化裝置將處理結果依次通過命令持久化檢索裝置、命令交互裝置、html轉換裝置處理后在命令編輯裝置展示命令編輯結果;
測試命令執行步驟:命令編輯裝置將執行命令通過命令交互裝置發送到命令持久化檢索裝置,如果該命令是執行類型,則由命令執行裝置執行命令,并且將執行結果依次通過命令交互裝置、html轉換裝置處理后在命令編輯裝置展示該命令執行結果。
接著,對于系統啟動步驟、測試命令編輯步驟、測試命令執行步驟分別進行具體說明。
圖2是本文的可在線動態擴展的Web測試方法中系統啟動步驟的流程圖。所述系統啟動步驟包括下述子步驟:
步驟S100:利用Web客戶端(也就是圖中2中的Web瀏覽器)動態下載html轉換裝置到本地運行;
步驟S101:html轉換裝置200獲取命令編輯裝置100,即激活命令編輯裝置100;
步驟S102:命令交互裝置300檢索命令編輯裝置,并且將檢索結果進行HTTP解包處理后發送到命令持久化檢索裝置400;
步驟S103:命令持久化檢索裝置400根據檢索結果對命令腳本進行存儲,并且返回命令編輯腳本到命令交互裝置300;
步驟S104:命令交互裝置300對返回的命令編輯腳本進行HTTP大包處理后返回到html轉換裝置200;
步驟S105:html轉換裝置200將接收到的命令編輯腳本轉換成html頁面后由Web瀏覽器進行展示;
步驟S106:用戶根據展示的內容利用命令編輯裝置100獲取命令列表后發送到命令交互裝置300;
步驟S107:命令交互裝置300將接收到的列表進行HTTP解包處理后發送到命令持久化檢索裝置400;
步驟S108:命令持久化檢索裝置400存儲命令腳本并返回命令列表腳本到命令交互處理裝置300;
步驟S109:命令交互裝置300對命令列表腳本進行HTTP打包后發送到html轉換裝置200;
步驟S110:html轉換裝置200將接收到的命令列表腳本轉換成html頁面;
步驟S111:通過Web瀏覽器展示html頁面以展示命令列表。
圖3是本文的可在線動態擴展的Web測試方法中測試命令編輯步驟的流程圖。所述測試命令編輯流程包括下述子步驟:
步驟S200:命令編輯裝置100編輯測試命令并且發送給命令交互裝置300;
步驟S201:命令交互裝置300對接收到的編輯后的測試命令進行HTTP解包處理后發送到命令持久化檢索裝置400;
步驟S202:命令持久化檢索裝置400將收到的測試命令作為持久化命令發送到命令持久化裝置500;
步驟S203:命令持久化裝置500存儲所述持久化結果并反饋持久化結果至命令持久化檢索裝置400;
步驟S204:命令持久化檢索裝置400將持久化結果再轉發到命令交互裝置300;
步驟S205:命令交互裝置400對持久化結果進行HTTP打包處理后發送到html轉換裝置200;步驟S206:html轉換裝置200根據收到的持久化結果生成html頁面后發送回命令編輯裝置100并由Web客戶端進行展示。
圖4是本文的可在線動態擴展的Web測試方法中測試命令執行步驟的流程圖。所述測試命令執行步驟包括下述子步驟:
步驟S300:用戶利用命令編輯裝置100編輯執行命令,并且將執行命令發送到命令交互裝置300;
步驟S301:命令交互裝置300將接收到的命令進行HTTP解包處理后轉發給命令持久化檢索裝置400;
步驟S302~步驟S305:命令持久化檢索裝置400對接收到的命令進行分析,如果命令是編輯類型的,則將命令腳本存儲到命令持久化裝置500(步驟S302)并接收反饋結果(步驟S303),另一方面,如果命令是執行類型的,則從命令持久化裝置400中提取命令腳本轉交給命令執行裝置600(步驟S304),由命令執行裝置600執行命令后將命令執行結果反饋至命令交互裝置300(步驟S305);
步驟S306:命令交互裝置300對反饋回來的命令執行結果進行HTTP打包處理后再反饋至html轉換裝置200;
步驟S307:html轉換裝置200根據收到的指令生成html頁面后由發送至命令編輯裝置100由Web客戶端進行展示。
3? 結? 論
本文所介紹的可在線動態擴展的Web測試系統以及Web測試方法,只需部署一次,所有新增功能都能夠動態獲取,動態執行。而且,新增響應及時,功能靈活多變,任何命令均可即時在線編輯、在線執行,不需要二次發布。另一方面,前置的html轉換裝置能夠最大程度地減輕服務器的運行壓力,也能夠兼顧到Web瀏覽器的兼容性。同時,命令編輯裝置的前置以及html轉換裝置的前置使得命令編輯器能夠在線更新,優化用戶的編輯體驗。另外,命令執行裝置相對獨立,這樣,對其升級和改造就不會影響整個系統的運行。
參考文獻:
[1] 干曉鳴.軟件自動化測試的合理應用 [J].計算機應用與軟件,2010,27(8):172-174+214.
[2] 付曉,楊海根.自動化測試實現研究 [J].中國市場,2016(34):96-98+102.
[3] 易敏捷.軟件測試國內外發展現狀及趨勢研究 [J].電腦知識與技術,2013,9(26):6020-6022.
[4] 徐泊.一種自動化測試系統的輔助測試工具的分析與設計 [D].北京:北京郵電大學,2017.
[5] 田鴻運,劉青凱,成杰,等.一種面向高性能數值模擬軟件的自動化測試平臺 [J].計算機工程與科學,2017,39(11):1980-1985.
[6] 孫昌愛,金茂忠.基于程序插裝的動態測試技術實現 [J].小型微型計算機系統,2001(12):1475-1479.
作者簡介:張飛(1981.05-),男,漢族,陜西西安人,本科,中級工程師,研究方向:大數據開發;王亞雄(1985.01-),男,漢族,湖北天門人,本科,中級工程師,研究方向:大數據開發;郭開衛(1981.09-),男,漢族,江西吉安人,本科,高級工程師,研究方向:大數據開發。