系統(tǒng)的物理架構(gòu)為實(shí)現(xiàn)整個(gè)自動(dòng)化測(cè)試工具需要建立起平臺(tái)的客戶端到機(jī)后臺(tái)之間的通信。如圖系統(tǒng)架構(gòu)圖首先為了方便用戶操作本人需要設(shè)計(jì)出界面友好的頁面。在這里需要使用技術(shù)和框架由于在大多數(shù)情況下前臺(tái)頁面只起著監(jiān)控和狀態(tài)顯示的作用所以這里用到了局部刷新技術(shù)。其次為了讓業(yè)務(wù)層與表現(xiàn)層分開采用了技術(shù)。為充分利用分布式的優(yōu)點(diǎn)將它和容器分開部署即使容器出了問題當(dāng)重啟服務(wù)器后測(cè)試工作仍可繼續(xù)下去另外隨著業(yè)務(wù)的發(fā)展測(cè)試任務(wù)將會(huì)越來越復(fù)雜和繁重這里使用也方便該工具的擴(kuò)展。在中運(yùn)用了多線程的編程技術(shù)讓自動(dòng)化過程能夠繼續(xù)下去為了防止在測(cè)試過程中遇到不可控的問題如突然斷電、容器突然掛掉為了在服務(wù)恢復(fù)后測(cè)試工作能繼續(xù)進(jìn)行因此在自動(dòng)化過程中每成功一步便將相關(guān)狀態(tài)信息存入數(shù)據(jù)庫中以便可以進(jìn)行現(xiàn)場(chǎng)恢復(fù)在這里用到了框架。接下來是建立機(jī)上用的一種虛擬機(jī)之間的通信。在沒有自動(dòng)化測(cè)試工具之前測(cè)試人員一直通過操縱來和大型機(jī)交互。在這里通過腳本語言在一個(gè)上實(shí)現(xiàn)了一個(gè)服務(wù)器這樣用戶可以通過端將相關(guān)命令與操作動(dòng)作通過機(jī)制傳遞給根據(jù)接收】到的命令進(jìn)行相關(guān)操作在這里用到網(wǎng)絡(luò)編程技術(shù)。最后在不同編寫相應(yīng)的邏輯功能的代碼如接收參數(shù)的腳本監(jiān)聽消息的程序可理解為一種監(jiān)聽服務(wù)程序處理相關(guān)邏輯的可執(zhí)行腳本和腳本。
系統(tǒng)邏輯架構(gòu)整個(gè)系統(tǒng)可分為五個(gè)邏輯層次前兩個(gè)層次屬于平臺(tái)后三個(gè)層次屬于大型機(jī)平臺(tái)。第一層是表現(xiàn)層主要是給用戶提供一個(gè)統(tǒng)一、友好的頁面方便用戶操作。第二層是主要負(fù)責(zé)與層的交互和層的交互。由于很多的業(yè)務(wù)邏輯在上都是異步的所以在端要有專門的線程模塊去處理異步操作另外和上通信采用的是協(xié)議因此還要有專門處理請(qǐng)求的模塊。為了保證測(cè)試過程可以回滾因此要把每一次測(cè)試過程中的數(shù)據(jù)永久保存下來還要存入數(shù)據(jù)庫此時(shí)還需要有專門處理數(shù)據(jù)的增、刪、改、查的數(shù)據(jù)處理模塊。最大的優(yōu)勢(shì)就是方便分布式的處理因此還要有遠(yuǎn)程調(diào)用的接口模塊方便遠(yuǎn)程調(diào)用。第三層是一個(gè)的服務(wù)器專門用于處理請(qǐng)求和進(jìn)行消息轉(zhuǎn)發(fā)根據(jù)不同的消息請(qǐng)求將對(duì)應(yīng)的消息轉(zhuǎn)發(fā)到不同的上去。第四層是回歸測(cè)試的核心部分業(yè)務(wù)邏輯層所有環(huán)境搭建部分的業(yè)務(wù)邏輯都在這一層進(jìn)行。第五層是服務(wù)器專門用于運(yùn)行不同版本類庫。從發(fā)送過來的都會(huì)打進(jìn)相應(yīng)的以進(jìn)行測(cè)試。圖即為系統(tǒng)的邏輯架構(gòu)圖自動(dòng)化回歸測(cè)試工具環(huán)境搭建部分的詳細(xì)設(shè)計(jì)該部分是自動(dòng)化環(huán)境搭建部分的詳細(xì)設(shè)計(jì)具體有端的詳細(xì)設(shè)計(jì)端的詳細(xì)設(shè)計(jì)和端的業(yè)務(wù)流程設(shè)計(jì)。詳細(xì)設(shè)計(jì)概述如圖所示是整個(gè)自動(dòng)化測(cè)試過程的流程圖測(cè)試過程流程圖圈本人工作要實(shí)現(xiàn)上述自動(dòng)化測(cè)試的整個(gè)流程要從三方面著手設(shè)計(jì)首先是容器端的頁面設(shè)計(jì)以及其后臺(tái)與端交互設(shè)計(jì)其次是容器端的業(yè)務(wù)過程設(shè)計(jì)主要有線程模塊、通信模塊、數(shù)據(jù)存儲(chǔ)模塊等設(shè)計(jì)。
最后是后臺(tái)的各個(gè)測(cè)試過程的流程序設(shè)計(jì)從測(cè)試環(huán)境的搭建到測(cè)試用例的執(zhí)行再到最后的測(cè)試報(bào)告以及清理釋放資源的整個(gè)過程都是在端完成的這里涉及不同之間的消息轉(zhuǎn)發(fā)和與服務(wù)器之間的信息傳遞。詳細(xì)設(shè)計(jì)過程見下面兩部分論述。容器端與容器端類的設(shè)計(jì)對(duì)于容器這一塊的設(shè)計(jì)非常簡單就是利用的框架繼承其前端模塊。竄圓粵皇自一一一一對(duì)于容器部分類的設(shè)計(jì)主要側(cè)重于線程控制、通信、數(shù)據(jù)存儲(chǔ)等模塊的設(shè)計(jì)具體類圖設(shè)計(jì)如圖所示端業(yè)務(wù)流程設(shè)計(jì)本小節(jié)主要內(nèi)容是核心業(yè)務(wù)邏輯的詳細(xì)設(shè)計(jì)分別介紹了各個(gè)步驟的功能組成流程設(shè)計(jì)以及各自的交互過程。功能組成該步驟的主要功能是檢查出各補(bǔ)丁之間在同一個(gè)測(cè)試周期存在的三種問題一是不能修改同一代的代碼即問題二是兩個(gè)之間不存在依賴關(guān)系問題三是開發(fā)出的不能打進(jìn)。具體設(shè)計(jì)見下面的流程設(shè)計(jì)和消息交互設(shè)計(jì)。流程設(shè)計(jì)如圖所示顯示了整個(gè)的流程圖首先通過通信管理模塊向平臺(tái)上的服務(wù)器發(fā)送三個(gè)請(qǐng)求根據(jù)鏈接上的參數(shù)命令去調(diào)用相應(yīng)腳本程序然后在上創(chuàng)建一個(gè)以具體的版本和類庫命名并以為后綴的文件。這個(gè)文件里放的是這輪將要測(cè)試的及其相關(guān)信息。當(dāng)三個(gè)發(fā)送完畢后去判斷這個(gè)文件是否創(chuàng)建成功如果不成功繼續(xù)發(fā)送創(chuàng)建請(qǐng)求直至創(chuàng)建成功為止。
成功之后接著發(fā)一個(gè)去執(zhí)行一個(gè)腳本程序文件發(fā)向服務(wù)器服務(wù)器的主要工作就是根據(jù)文件中記錄的信息檢查之間的關(guān)系是否存在上述三種問題在檢查過程中端的線程不斷輪詢檢查是否結(jié)束并且在頁上實(shí)時(shí)顯示結(jié)果。當(dāng)檢查完成后如果這一輪的存在問題根據(jù)相關(guān)規(guī)則程序?qū)⒆詣?dòng)踢除有問題除非極個(gè)別的情況需要測(cè)試人員手動(dòng)處理處理完后再進(jìn)行上述的過程。當(dāng)不存在問題時(shí)就可以繼續(xù)進(jìn)行下一步的工作自動(dòng)化測(cè)試系統(tǒng)架構(gòu)圖。流程圖交互過程如圖所示是業(yè)務(wù)過程的消息交互圖。整個(gè)交互過程分為五層皆是從端發(fā)送的異步的請(qǐng)求這些異步請(qǐng)求通過的方式發(fā)送消息服務(wù)器在收到這些請(qǐng)求后解析這些取得消息后直接轉(zhuǎn)發(fā)到相應(yīng)的上運(yùn)行的程序會(huì)自動(dòng)偵聽到這些消息然后根據(jù)消息內(nèi)容去執(zhí)行相應(yīng)的腳本程序以完成相應(yīng)的功能。對(duì)于圖請(qǐng)求所做的工作就是生成文件。文件共有三部分組成一是該輪要測(cè)的三是標(biāo)記狀態(tài)的標(biāo)記值。這三個(gè)作用是向發(fā)送三個(gè)消息讓其執(zhí)行相應(yīng)的模塊去分別生成這個(gè)文件的內(nèi)容。對(duì)于是通知將創(chuàng)建好的文件發(fā)送到再根據(jù)服務(wù)器的相關(guān)要求根據(jù)文件的內(nèi)容再結(jié)合其它的信息組裝成發(fā)給服務(wù)器在收到這個(gè)后根據(jù)上面內(nèi)容進(jìn)行相關(guān)測(cè)試工作。而僅僅是通知強(qiáng)制更新的狀態(tài)文件。囤目目…。卜—————————————爿一一一一一一一一一一交互圖功能組成過程生成關(guān)于某個(gè)版本在具體上的狀態(tài)文件表示這個(gè)版本在第二個(gè)待測(cè)的所有狀態(tài)值并且這個(gè)狀態(tài)值會(huì)根據(jù)測(cè)試的進(jìn)程實(shí)時(shí)更新。
流程設(shè)計(jì)要實(shí)現(xiàn)這個(gè)流程需要向發(fā)送三個(gè)異步的請(qǐng)求。第一個(gè)傳送三個(gè)信息本輪測(cè)試是哪個(gè)版本上的以及測(cè)試的截止日期另外就是要執(zhí)行的腳本名稱。第二個(gè)用于從文件中刪除不符合要求的。最后一個(gè)用于更新新創(chuàng)建的狀態(tài)文件。當(dāng)三個(gè)發(fā)送完畢后端的線程模塊開始偵測(cè)其狀態(tài)如果創(chuàng)建不成功則返回繼續(xù)如果成功出這個(gè)狀態(tài)文件通過處理模塊將該文件解析出來然后再通過數(shù)據(jù)處理模塊將其狀態(tài)存入到設(shè)計(jì)好的數(shù)據(jù)庫中方便以后的錯(cuò)誤恢復(fù)。具體流程圖如圖所示流程圖交互過程過程是從端發(fā)送請(qǐng)求將命令傳送到然后根據(jù)相應(yīng)的命令去執(zhí)行相關(guān)操作即創(chuàng)建文件。相關(guān)命令參數(shù)通過請(qǐng)求傳到服務(wù)器服務(wù)器獲得參數(shù)后轉(zhuǎn)發(fā)給再將消息轉(zhuǎn)發(fā)到將從數(shù)據(jù)源中解析滿足條件的創(chuàng)建出文件然后將該文件傳回至。整個(gè)過程完成后服務(wù)器將返回并執(zhí)行刪除任務(wù)過程結(jié)束后再給端反饋一個(gè)成功的信號(hào)整個(gè)交互過程結(jié)束。具體交互圖如圖交互圖過程就是更新文件中各的狀態(tài)因?yàn)樵谡麄€(gè)過程中的狀態(tài)都是在實(shí)時(shí)更新的所以要盡量讓文件中的狀態(tài)與源數(shù)據(jù)保持同步具體交互如圖所示交互圖功能組成該步驟的主要功能是將的補(bǔ)丁包打入到相應(yīng)的中去自動(dòng)化測(cè)試系統(tǒng)架構(gòu)圖。具體做法基本和一樣區(qū)別在于不用進(jìn)行合法性檢查并且是真正的將補(bǔ)丁包打進(jìn)類庫中進(jìn)行測(cè)試。具體設(shè)計(jì)見下面流程設(shè)計(jì)和消息交互設(shè)計(jì)。流程設(shè)計(jì)首先通過通信管理模塊向平臺(tái)上的服務(wù)器發(fā)送三個(gè)