本發(fā)明涉及云測試技術(shù)領(lǐng)域,尤其涉及調(diào)用第三方測試工具的測試系統(tǒng)及方法。
背景技術(shù):
隨著測試技術(shù)的發(fā)展,各種測試工具層出不窮,在軟件研發(fā)過程中,通常會(huì)使用各種類型的第三方測試工具進(jìn)行測試,如功能測試類工具、安全類測試工具、性能類測試工具等,或者是使用不同的第三方測試工具進(jìn)行某一類型的測試,如使用pagespeed、yslow進(jìn)行網(wǎng)站性能測試。然而這些工具的運(yùn)行模式多樣,使用方法也不盡相同,當(dāng)測試人員需要對(duì)一個(gè)軟件進(jìn)行測試時(shí)往往需要掌握多種測試工具的安裝部署方式和軟件測試工具使用方法,增加了測試任務(wù)完成的時(shí)間和復(fù)雜度,同時(shí)多名測試人員在各自設(shè)備上進(jìn)行測試工具的安裝部署,也導(dǎo)致了設(shè)備資源的浪費(fèi)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提供一種調(diào)用第三方測試工具的測試系統(tǒng)及方法,旨在實(shí)現(xiàn)提供一種便捷、高效的測試系統(tǒng)的目的。
為實(shí)現(xiàn)上述目的,本發(fā)明提供一種調(diào)用第三方測試工具的測試系統(tǒng),所述系統(tǒng)包括:
任務(wù)信息獲取模塊,用于獲取用戶提交的測試任務(wù)信息,將所述測試任務(wù)信息保存在預(yù)置的數(shù)據(jù)庫中;
任務(wù)管理模塊,用于獲取所述數(shù)據(jù)庫保存的所述測試任務(wù)信息,將所述測試任務(wù)信息發(fā)送給客戶端代理模塊;
所述客戶端代理模塊,用于在接收到所述測試任務(wù)信息后,根據(jù)所述測試任務(wù)信息包含的第三方測試工具的信息向?qū)?yīng)的調(diào)用模塊發(fā)送所述測試任務(wù)信息包含的測試參數(shù);
所述調(diào)用模塊,用于在接收到所述測試參數(shù)后,調(diào)用所述第三方測試工具基于所述測試參數(shù)執(zhí)行測試任務(wù)。
優(yōu)選地,所述任務(wù)管理模塊包括:
獲取單元,用于訪問所述數(shù)據(jù)庫,獲取所述數(shù)據(jù)庫包含的所述測試任務(wù)信息;
查詢單元,用于在獲取到所述測試任務(wù)信息后,查詢所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài);
查詢分配單元,用于當(dāng)所述測試執(zhí)行狀態(tài)為待執(zhí)行狀態(tài)時(shí),查詢系統(tǒng)進(jìn)程中狀態(tài)為空閑的客戶端代理模塊,向所述客戶端代理模塊發(fā)送所述測試任務(wù)信息。
優(yōu)選地,所述調(diào)用模塊,還用于獲取所述第三方測試工具執(zhí)行完所述測試任務(wù)后反饋的測試報(bào)告,將所述測試報(bào)告處理為預(yù)置的文本格式保存為已處理測試報(bào)告,向所述客戶端代理模塊反饋所述測試任務(wù)完成的通知消息。
優(yōu)選地,所述客戶端代理模塊,還用于當(dāng)接收到所述通知消息時(shí),向所述調(diào)用模塊獲取并保存所述已處理測試報(bào)告。
優(yōu)選地,所述任務(wù)管理模塊,還用于訪問所述客戶端代理模塊,當(dāng)獲取到所述通知消息時(shí),將所述數(shù)據(jù)庫中所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)標(biāo)記為已完成狀態(tài),將所述已處理測試報(bào)告下載并保存在所述數(shù)據(jù)庫中。
優(yōu)選地,所述任務(wù)信息獲取模塊,還用于訪問所述數(shù)據(jù)庫,當(dāng)獲取到所述數(shù)據(jù)庫中所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)為已完成狀態(tài)時(shí),從所述數(shù)據(jù)庫獲取所述已處理測試報(bào)告,顯示在用戶顯示界面。
本發(fā)明進(jìn)一步提供一種調(diào)用第三方測試工具的測試方法,所述方法包括步驟:
任務(wù)信息獲取模塊獲取用戶提交的測試任務(wù)信息,將所述測試任務(wù)信息保存在預(yù)置的數(shù)據(jù)庫中;
任務(wù)管理模塊獲取所述數(shù)據(jù)庫保存的所述測試任務(wù)信息,將所述測試任務(wù)信息發(fā)送給客戶端代理模塊;
所述客戶端代理模塊在接收到所述測試任務(wù)信息后,根據(jù)所述測試任務(wù)信息包含的第三方測試工具的信息向?qū)?yīng)的調(diào)用模塊發(fā)送所述測試任務(wù)信息 包含的測試參數(shù);
所述調(diào)用模塊在接收到所述測試參數(shù)后,調(diào)用所述第三方測試工具基于所述測試參數(shù)執(zhí)行測試任務(wù)。
優(yōu)選地,所述任務(wù)管理模塊獲取所述數(shù)據(jù)庫保存的所述測試任務(wù)信息,將所述測試任務(wù)信息發(fā)送給客戶端代理模塊包括:
訪問所述數(shù)據(jù)庫,獲取所述數(shù)據(jù)庫包含的所述測試任務(wù)信息;
在獲取到所述測試任務(wù)信息后,查詢所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài);
當(dāng)所述測試執(zhí)行狀態(tài)為待執(zhí)行狀態(tài)時(shí),查詢系統(tǒng)進(jìn)程中狀態(tài)為空閑的客戶端代理模塊,向所述客戶端代理模塊發(fā)送所述測試任務(wù)信息。
優(yōu)選地,所述調(diào)用模塊在接收到所述測試參數(shù)后,調(diào)用所述第三方測試工具基于所述測試參數(shù)執(zhí)行測試任務(wù)之后包括:
所述調(diào)用模塊獲取所述第三方測試工具執(zhí)行完所述測試任務(wù)后反饋的測試報(bào)告,將所述測試報(bào)告處理為預(yù)置的文本格式保存為已處理測試報(bào)告,向所述客戶端代理模塊反饋所述測試任務(wù)完成的通知消息;
當(dāng)所述客戶端代理模塊接收到所述通知消息時(shí),結(jié)合所述任務(wù)管理模塊和所述任務(wù)信息獲取模塊將所述已處理測試報(bào)告顯示在用戶顯示界面。
優(yōu)選地,所述當(dāng)所述客戶端代理模塊接收到所述通知消息時(shí),結(jié)合所述任務(wù)管理模塊和所述任務(wù)信息獲取模塊將所述已處理測試報(bào)告顯示在用戶顯示界面包括:
當(dāng)所述客戶端代理模塊獲取到所述通知消息時(shí),向所述調(diào)用模塊獲取并保存所述已處理測試報(bào)告;
任務(wù)管理模塊訪問所述客戶端代理模塊,當(dāng)獲取到所述通知消息時(shí),將所述數(shù)據(jù)庫中所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)標(biāo)記為已完成狀態(tài),將所述已處理測試報(bào)告下載并保存在所述數(shù)據(jù)庫中。
所述任務(wù)信息獲取模塊訪問所述數(shù)據(jù)庫,當(dāng)獲取到所述數(shù)據(jù)庫中所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)為已完成狀態(tài)時(shí),從所述數(shù)據(jù)庫獲取所述已處理測試報(bào)告,顯示在所述用戶顯示界面。
本發(fā)明提出的調(diào)用第三方測試工具的測試系統(tǒng)和方法通過任務(wù)信息獲取 模塊獲取用戶提交的測試任務(wù)信息,將所述測試任務(wù)信息保存在預(yù)置的數(shù)據(jù)庫中;任務(wù)管理模塊獲取所述數(shù)據(jù)庫保存的所述測試任務(wù)信息,將所述測試任務(wù)信息發(fā)送給客戶端代理模塊;所述客戶端代理模塊在接收到所述測試任務(wù)信息后,根據(jù)所述測試任務(wù)信息包含的第三方測試工具的信息向?qū)?yīng)的調(diào)用模塊發(fā)送所述測試任務(wù)信息包含的測試參數(shù);所述調(diào)用模塊在接收到所述測試參數(shù)后,調(diào)用所述第三方測試工具基于所述測試參數(shù)執(zhí)行測試任務(wù)。通過任務(wù)信息獲取模塊獲取并保存測試任務(wù)信息,任務(wù)管理模塊發(fā)送測試任務(wù)信息給客戶端代理模塊,客戶端代理模塊調(diào)用對(duì)應(yīng)的調(diào)用模塊,調(diào)用模塊再調(diào)用對(duì)應(yīng)的第三方測試工具執(zhí)行完成測試任務(wù),使用戶不需要安裝各種工具,也不需要詳細(xì)了解每一種工具的使用方法,只要通過平臺(tái)就可以調(diào)用各種第三方工具執(zhí)行測試,實(shí)現(xiàn)便捷、高效的測試方式。
附圖說明
圖1為本發(fā)明調(diào)用第三方測試工具的測試系統(tǒng)第一實(shí)施例的功能模塊結(jié)構(gòu)示意圖;
圖2為本發(fā)明調(diào)用第三方測試工具的測試系統(tǒng)的系統(tǒng)架構(gòu)示例圖;
圖3為本發(fā)明調(diào)用第三方測試工具的測試系統(tǒng)通過程序?qū)崿F(xiàn)第三方工具調(diào)用的方法示例圖;
圖4為本發(fā)明圖1所示實(shí)施例中任務(wù)管理模塊20的細(xì)化功能模塊示意圖;
圖5為本發(fā)明調(diào)用第三方測試工具的測試方法第一實(shí)施例的流程示意圖;
圖6為本發(fā)明圖5所示實(shí)施例中步驟s20的細(xì)化流程示意圖;
圖7為本發(fā)明圖5所示實(shí)施例中步驟s40之后追加的步驟的流程示意圖;
圖8為本發(fā)明圖7所示實(shí)施例中步驟s60的細(xì)化流程示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供一種調(diào)用第三方測試工具的測試系統(tǒng),參照?qǐng)D1,在第一實(shí)施例中,該系統(tǒng)包括:
任務(wù)信息獲取模塊10,用于獲取用戶提交的測試任務(wù)信息,將所述測試任務(wù)信息保存在預(yù)置的數(shù)據(jù)庫中;
任務(wù)管理模塊20,用于獲取所述數(shù)據(jù)庫保存的所述測試任務(wù)信息,將所述測試任務(wù)信息發(fā)送給客戶端代理模塊;
所述客戶端代理模塊30,用于在接收到所述測試任務(wù)信息后,根據(jù)所述測試任務(wù)信息包含的第三方測試工具的信息向?qū)?yīng)的調(diào)用模塊發(fā)送所述測試任務(wù)信息包含的測試參數(shù);
所述調(diào)用模塊40,用于在接收到所述測試參數(shù)后,調(diào)用所述第三方測試工具基于所述測試參數(shù)執(zhí)行測試任務(wù)。
本發(fā)明實(shí)施例中提供的調(diào)用第三方測試工具的測試系統(tǒng)包括任務(wù)信息獲取模塊10、任務(wù)管理模塊20、客戶端代理模塊30、調(diào)用模塊40,其中調(diào)用模塊20包含至少兩個(gè),每個(gè)調(diào)用模塊20能調(diào)用不同的第三方測試工具執(zhí)行測試,其中任務(wù)信息獲取模塊10和任務(wù)管理模塊20通過預(yù)置的數(shù)據(jù)庫聯(lián)系,調(diào)用第三方測試工具的測試系統(tǒng)的系統(tǒng)架構(gòu)圖如圖2所示,第三方測試工具是已經(jīng)部署好的,只在需要時(shí)被調(diào)用執(zhí)行。當(dāng)用戶在任務(wù)信息獲取模塊10輸入測試任務(wù)后,能夠通過調(diào)用第三方測試工具完成測試任務(wù)的執(zhí)行。
本實(shí)施例中上述任務(wù)信息獲取模塊10用于獲取并保存測試任務(wù)信息,當(dāng)任務(wù)信息獲取模塊10獲取到用戶提交的測試任務(wù)信息后,將測試任務(wù)信息保存在預(yù)置的數(shù)據(jù)庫中。任務(wù)信息獲取模塊10可以是網(wǎng)站形式,也可以是windows客戶端程序,也可以是安卓系統(tǒng)中的apk程序。上述測試任務(wù)信息包含需要使用第三方測試工具時(shí)需要的測試參數(shù),例如包括第三方測試工具名稱,表明需要使用何種第三方測試工具來進(jìn)行測試,還可以包括待測試網(wǎng)址,表明需要測試的是哪個(gè)網(wǎng)站,也可以包括測試策略等。在任務(wù)信息獲取模塊10中,可以顯示能被調(diào)用的各種第三方測試工具的信息,例如第三方測試工具的名稱,以及當(dāng)測試開始以后的測試狀態(tài)等信息,因此用戶可以根據(jù)需要進(jìn)行選擇輸入。
上述任務(wù)管理模塊20可以查詢預(yù)置的數(shù)據(jù)庫中保存的測試任務(wù)信息,任務(wù)信息獲取模塊10與任務(wù)管理模塊20可以部署在同一臺(tái)服務(wù)器上。當(dāng)任務(wù) 管理模塊20接收到測試任務(wù)信息后,可以將測試任務(wù)信息分配給客戶端代理模塊30。
當(dāng)客戶端代理模塊30收到測試任務(wù)信息后,調(diào)用對(duì)應(yīng)的調(diào)用模塊40,調(diào)用的同時(shí)也將測試任務(wù)信息包含的測試參數(shù)傳遞給調(diào)用模塊40。由于系統(tǒng)中存在多個(gè)調(diào)用模塊40,具體的調(diào)用哪一個(gè)調(diào)用模塊,可以根據(jù)測試任務(wù)中包含的第三方測試工具的信息來決定,例如可以通過第三方工具測試的名稱來調(diào)用相同名稱的調(diào)用模塊。在程序?qū)崿F(xiàn)時(shí),在客戶端代理模塊30中,規(guī)定第三方測試工具的初始化、參數(shù)、結(jié)果等抽象基類,客戶端代理模塊30可以以插件的形式管理調(diào)用模塊40,即客戶端代理模塊30調(diào)用多個(gè)調(diào)用模塊40。
上述調(diào)用模塊40調(diào)用對(duì)應(yīng)的第三方測試工具,使對(duì)應(yīng)的第三方測試工具根據(jù)測試任務(wù)信息中包含的測試參數(shù)執(zhí)行測試任務(wù),并且根據(jù)對(duì)應(yīng)的第三方測試工具的特征調(diào)用方式來進(jìn)行調(diào)用。在程序?qū)崿F(xiàn)時(shí)調(diào)用模塊可以繼承初始化、參數(shù)、結(jié)果等抽象基類,在程序中編寫函數(shù)定義每一種第三方測試工具的調(diào)用方法。例如,能夠用命令行調(diào)用的測試工具,使用進(jìn)程調(diào)用該測試工具;只能界面操作的測試工具,使用圖形用戶界面(graphicaluserinterface,gui)進(jìn)行調(diào)用,如利用selenium調(diào)用;具備消息接口的測試工具,通過接口通信調(diào)用。
具體程序?qū)崿F(xiàn)時(shí),也可以編寫特征動(dòng)態(tài)鏈接庫,特征動(dòng)態(tài)鏈接庫中規(guī)定第三方測試工具的初始化、參數(shù)、結(jié)果等抽象基類,客戶端代理模塊20引用特征動(dòng)態(tài)鏈接庫,也即引用特征動(dòng)態(tài)鏈接庫中規(guī)定的第三方測試工具的初始化、參數(shù)、結(jié)果等抽象基類,每一個(gè)用于調(diào)用第三方測試工具的調(diào)用模塊40繼承特征動(dòng)態(tài)鏈接庫中的類,實(shí)例化特征動(dòng)態(tài)鏈接庫中的類。因此客戶端代理模塊20可以動(dòng)態(tài)加載調(diào)用模塊40,使得調(diào)用模塊在被加載后執(zhí)行其中的調(diào)用函數(shù),調(diào)用第三方測試工具執(zhí)行測試。上述通過程序?qū)崿F(xiàn)第三方測試工具的調(diào)用方法如圖3所示。
例如,當(dāng)用戶需要使用webinspect和nsfocus兩種測試工具進(jìn)行網(wǎng)站安全性掃描時(shí)。這兩個(gè)工具需要的主要交互參數(shù)為要掃描的目標(biāo)網(wǎng)址和掃描策略,在任務(wù)信息獲取模塊10中輸入目標(biāo)網(wǎng)址,并分別按提示選擇兩個(gè)工具的掃描策略,提交測試任務(wù)信息并保存到數(shù)據(jù)庫。此時(shí)任務(wù)管理模塊20掃描數(shù)據(jù)庫獲取測試任務(wù)后將測試任務(wù)信息傳遞給客戶端代理模塊30,客戶端代理 模塊30獲取測試任務(wù)包含的測試工具名稱webinspect和nsfocus,以及webinspect和nsfoucus分別對(duì)應(yīng)的測試參數(shù),再調(diào)用webinspect和nsfocus對(duì)應(yīng)的調(diào)用模塊40,通過該調(diào)用模塊40調(diào)用webinspect和nsfocus測試工具完成執(zhí)行具體的測試任務(wù)。
本實(shí)施例通過任務(wù)信息獲取模塊10獲取用戶提交的測試任務(wù)信息,將所述測試任務(wù)信息保存在預(yù)置的數(shù)據(jù)庫中;任務(wù)管理模塊20獲取所述數(shù)據(jù)庫保存的所述測試任務(wù)信息,將所述測試任務(wù)信息發(fā)送給客戶端代理模塊30;所述客戶端代理模塊30在接收到所述測試任務(wù)信息后,根據(jù)所述測試任務(wù)信息包含的第三方測試工具的信息向?qū)?yīng)的調(diào)用模塊40發(fā)送所述測試任務(wù)信息包含的測試參數(shù);所述調(diào)用模塊40在接收到所述測試參數(shù)后,調(diào)用所述第三方測試工具基于所述測試參數(shù)執(zhí)行測試任務(wù)。通過任務(wù)信息獲取模塊10獲取并保存測試任務(wù)信息,任務(wù)管理模塊20發(fā)送測試任務(wù)信息給客戶端代理模塊30,客戶端代理模塊30調(diào)用對(duì)應(yīng)的調(diào)用模塊40,調(diào)用模塊40再調(diào)用對(duì)應(yīng)的第三方測試工具執(zhí)行完成測試任務(wù),使用戶不需要安裝各種工具,也不需要詳細(xì)了解每一種工具的使用方法,只要通過平臺(tái)就可以調(diào)用各種第三方工具執(zhí)行測試,實(shí)現(xiàn)便捷、高效的測試方式。
優(yōu)選地,參照?qǐng)D4,為本發(fā)明調(diào)用第三方測試工具的測試系統(tǒng)第一實(shí)施例中任務(wù)管理模塊20的細(xì)化功能模塊示意圖,上述任務(wù)管理模塊20包括:
獲取單元21,用于訪問所述數(shù)據(jù)庫,獲取所述數(shù)據(jù)庫包含的所述測試任務(wù)信息;
查詢單元22,用于在獲取到所述測試任務(wù)后,查詢所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài);
查詢分配單元23,用于當(dāng)所述測試執(zhí)行狀態(tài)為待執(zhí)行狀態(tài)時(shí),查詢系統(tǒng)進(jìn)程中狀態(tài)為空閑的客戶端代理模塊,向所述客戶端代理模塊發(fā)送所述測試任務(wù)信息。
本實(shí)施例中上述數(shù)據(jù)庫是任務(wù)信息獲取模塊10保存測試任務(wù)信息的數(shù)據(jù)庫,第二獲取模塊21訪問數(shù)據(jù)庫,當(dāng)獲取到數(shù)據(jù)庫中的測試任務(wù)信息后,查詢測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài),由于數(shù)據(jù)庫中會(huì)存放很多測試任務(wù)信息,每個(gè)測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)可能不同,因此當(dāng)測試任務(wù)信息 對(duì)應(yīng)的測試執(zhí)行狀態(tài)為待執(zhí)行狀態(tài)時(shí),表明該測試任務(wù)信息已經(jīng)被獲取但該測試任務(wù)信息所代表的測試任務(wù)并未被執(zhí)行,此時(shí)查詢系統(tǒng)進(jìn)程中空閑的客戶端代理模塊30,根據(jù)客戶端代理模塊30的地址向客戶端代理模塊30分配測試任務(wù)。
本實(shí)施例通過任務(wù)管理模塊20查詢數(shù)據(jù)庫獲取測試任務(wù)信息,查詢空閑的客戶端代理模塊30,向空閑的客戶端代理30模塊分配測試任務(wù)信息,使測試任務(wù)信息所代表的測試任務(wù)能夠盡快的被執(zhí)行。
優(yōu)選地,上述調(diào)用模塊40,還用于獲取所述第三方測試工具執(zhí)行完所述測試任務(wù)后反饋的測試報(bào)告,將所述測試報(bào)告處理為預(yù)置的文本格式保存為已處理測試報(bào)告,向所述客戶端代理模塊反饋所述測試任務(wù)完成的通知消息。
本實(shí)施例中當(dāng)?shù)谌綔y試工具執(zhí)行完測試以后,調(diào)用模塊40獲取該第三方測試工具執(zhí)行完測試以后的測試報(bào)告,并向調(diào)用該調(diào)用模塊40的客戶端代理模塊30反饋測試任務(wù)完成的通知消息。
當(dāng)調(diào)用模塊40獲取到測試報(bào)告后,對(duì)測試報(bào)告的格式進(jìn)行處理保存為已處理測試報(bào)告,使得各種第三方測試工具執(zhí)行完測試以后都能以同一種格式呈現(xiàn)測試報(bào)告。可以理解的是,即可以向用戶提供統(tǒng)一格式的測試報(bào)告,也可以提供第三方測試工具執(zhí)行完測試任務(wù)后的自動(dòng)生成的原始測試報(bào)告。
例如,當(dāng)某第三方測試工具執(zhí)行完測試后,測試報(bào)告為word格式的文本文件,此時(shí),獲取word、格式中的文本信息,將該文本信息處理為pdf格式保存。同時(shí),也可以將測試報(bào)告按照測試結(jié)果的危險(xiǎn)等級(jí)進(jìn)行排序,測試報(bào)告按照高危、中危、低危進(jìn)行分類處理并保存。
本實(shí)施例通過調(diào)用模塊40接收對(duì)應(yīng)的第三方測試工具執(zhí)行完測試任務(wù)后反饋的測試報(bào)告,并對(duì)測試報(bào)告進(jìn)行處理,使用戶在調(diào)用第三方測試工具執(zhí)行完測試后能看到測試結(jié)果,并且測試結(jié)果的格式統(tǒng)一便于查看分析。
優(yōu)選地,上述客戶端代理模塊30,還用于當(dāng)接收到所述通知消息時(shí),向所述調(diào)用模塊獲取并保存所述已處理測試報(bào)告。
本實(shí)施例中上述客戶端代理模塊30接收到測試任務(wù)完成的通知消息后,向該調(diào)用模塊40獲取已處理測試報(bào)告,將已處理測試報(bào)告保存在客戶端代理 模塊30所在的服務(wù)器中。
本實(shí)施例通過客戶端代理模塊30接收通知消息,獲取并保存調(diào)用模塊40的測試報(bào)告,使任務(wù)管理模塊20可以從客戶端代理模塊30中獲取測試任務(wù)的執(zhí)行情況和的測試報(bào)告,從而使得結(jié)合任務(wù)信息獲取模塊10能夠使用戶在調(diào)用第三方測試工具執(zhí)行完測試后能看到測試報(bào)告。
優(yōu)選地,上述任務(wù)管理模塊20,還用于訪問所述客戶端代理模塊,當(dāng)獲取到所述通知消息時(shí),將所述數(shù)據(jù)庫中所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)標(biāo)記為已完成狀態(tài),將所述已處理測試報(bào)告下載并保存在所述數(shù)據(jù)庫中。
本實(shí)施例中任務(wù)管理模塊20訪問客戶端代理模塊,當(dāng)獲取到測試任務(wù)完成的通知消息時(shí),表明此時(shí)測試任務(wù)已經(jīng)完成,任務(wù)管理模塊20將數(shù)據(jù)庫中測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)標(biāo)記為已完成狀態(tài),同時(shí)從客戶端代理模塊30下載已處理測試報(bào)告保存在數(shù)據(jù)庫中??梢詾槿蝿?wù)管理模塊20設(shè)定訪問客戶端代理模塊30的時(shí)間,例如,設(shè)置任務(wù)管理模塊定時(shí)獲取測試任務(wù)的執(zhí)行情況。
本實(shí)施例通過任務(wù)管理模塊20訪問客戶端代理模塊30,當(dāng)獲取到測試任務(wù)完成的通知消息時(shí),并將數(shù)據(jù)庫中的測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)標(biāo)記為已完成狀態(tài),使任務(wù)信息獲取模塊10能從數(shù)據(jù)庫中獲取到測試任務(wù)的執(zhí)行狀況,并及時(shí)獲取已完成測試任務(wù)的測試報(bào)告。
優(yōu)選地,上述任務(wù)信息獲取模塊10,還用于訪問所述數(shù)據(jù)庫,當(dāng)獲取到所述數(shù)據(jù)庫中所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)為已完成狀態(tài)時(shí),從所述數(shù)據(jù)庫獲取所述已處理測試報(bào)告,顯示在用戶顯示界面。
本實(shí)施例中任務(wù)信息獲取模塊10獲取到數(shù)據(jù)庫中的測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)為已完成狀態(tài)時(shí),表明該測試任務(wù)已經(jīng)完成,并且已經(jīng)產(chǎn)生了測試報(bào)告。此時(shí)從數(shù)據(jù)庫中獲取已處理測試報(bào)告,同時(shí)將已處理測試報(bào)告顯示在用戶顯示界面,用戶可以對(duì)已處理測試報(bào)告進(jìn)行查看、保存等操作。也可以在用戶顯示界面顯示已處理測試報(bào)告的詳細(xì)信息和已處理測試報(bào)告的下載鏈接,具體的測試后顯示測試報(bào)告的方式可以根據(jù)需要進(jìn)行選擇。
本實(shí)施例通過任務(wù)信息獲取模塊獲取測試報(bào)告并顯示在用戶顯示界面, 使得用戶在測試任務(wù)完成后能夠查看、分析、管理該測試任務(wù)的測試報(bào)告。
本發(fā)明還提供一種調(diào)用第三方測試工具的測試方法,參照?qǐng)D5,提供了本發(fā)明調(diào)用第三方測試工具的測試方法第一實(shí)施例,該實(shí)施例中,調(diào)用第三方測試工具的測試方法包括:
步驟s10,任務(wù)信息獲取模塊獲取用戶提交的測試任務(wù)信息,將所述測試任務(wù)信息保存在預(yù)置的數(shù)據(jù)庫中;
步驟s20,任務(wù)管理模塊獲取所述數(shù)據(jù)庫保存的所述測試任務(wù)信息,將所述測試任務(wù)信息發(fā)送給客戶端代理模塊;
步驟s30,所述客戶端代理模塊在接收到所述測試任務(wù)信息后,根據(jù)所述測試任務(wù)信息包含的第三方工具的信息向?qū)?yīng)的調(diào)用模塊發(fā)送所述測試任務(wù)信息包含的測試參數(shù);
步驟s40,所述調(diào)用模塊在接收到所述測試參數(shù)后,調(diào)用所述第三方測試工具基于所述測試參數(shù)執(zhí)行測試任務(wù)。
本發(fā)明實(shí)施例中提供的調(diào)用第三方測試工具的測試方法,實(shí)現(xiàn)了當(dāng)用戶在任務(wù)信息獲取模塊輸入測試任務(wù)后,通過任務(wù)管理模塊、客戶端代理模塊和調(diào)用模塊的層層調(diào)用,最終調(diào)用對(duì)應(yīng)的第三方測試工具完成測試任務(wù)的執(zhí)行。
本實(shí)施例中上述任務(wù)信息獲取模塊用于獲取并保存測試任務(wù)信息,當(dāng)任務(wù)信息獲取模塊獲取到用戶提交的測試任務(wù)信息后,將測試任務(wù)信息保存在預(yù)置的數(shù)據(jù)庫中。任務(wù)信息獲取模塊可以是網(wǎng)站形式,也可以是windows客戶端程序,也可以是安卓系統(tǒng)中的apk程序。上述測試任務(wù)信息包含需要使用第三方測試工具時(shí)需要的測試參數(shù),例如包括第三方測試工具名稱,表明需要使用何種第三方測試工具來進(jìn)行測試,還可以包括待測試網(wǎng)址,表明需要測試的是哪個(gè)網(wǎng)站,也可以包括測試策略等。在任務(wù)信息獲取模塊中,可以顯示能被調(diào)用的各種第三方測試工具的信息,例如第三方測試工具的名稱,以及當(dāng)測試開始以后的測試狀態(tài)等信息,因此用戶可以根據(jù)需要進(jìn)行選擇輸入。
上述任務(wù)管理模塊可以查詢預(yù)置的數(shù)據(jù)庫中保存的測試任務(wù)信息,任務(wù)信息獲取模塊與任務(wù)管理模塊可以部署在同一臺(tái)服務(wù)器上。當(dāng)任務(wù)管理模塊 接收到測試任務(wù)信息后,可以將測試任務(wù)信息分配給客戶端代理模塊。
當(dāng)客戶端代理模塊收到測試任務(wù)信息后,調(diào)用對(duì)應(yīng)的調(diào)用模塊,調(diào)用的同時(shí)也將測試任務(wù)信息包含的測試參數(shù)傳遞給調(diào)用模塊。由于系統(tǒng)中存在多個(gè)調(diào)用模塊,具體的調(diào)用哪一個(gè)調(diào)用模塊,可以根據(jù)測試任務(wù)中包含的第三方測試工具的信息來決定,例如可以通過第三方工具測試的名稱來調(diào)用相同名稱的調(diào)用模塊。在程序?qū)崿F(xiàn)時(shí),在客戶端代理模塊中,規(guī)定第三方測試工具的初始化、參數(shù)、結(jié)果等抽象基類,客戶端代理模塊可以以插件的形式管理調(diào)用模塊,即客戶端代理模塊調(diào)用多個(gè)調(diào)用模塊。
上述調(diào)用模塊調(diào)用對(duì)應(yīng)的第三方測試工具,使對(duì)應(yīng)的第三方測試工具根據(jù)測試任務(wù)信息中包含的測試參數(shù)執(zhí)行測試任務(wù),并且根據(jù)對(duì)應(yīng)的第三方測試工具的特征調(diào)用方式來進(jìn)行調(diào)用。在程序?qū)崿F(xiàn)時(shí)調(diào)用模塊可以繼承初始化、參數(shù)、結(jié)果等抽象基類,在程序中編寫函數(shù)定義每一種第三方測試工具的調(diào)用方法。例如,能夠用命令行調(diào)用的測試工具,使用進(jìn)程調(diào)用該測試工具;只能界面操作的測試工具,使用圖形用戶界面(graphicaluserinterface,gui)進(jìn)行調(diào)用,如利用selenium調(diào)用;具備消息接口的測試工具,通過接口通信調(diào)用。
具體程序?qū)崿F(xiàn)時(shí),也可以編寫特征動(dòng)態(tài)鏈接庫,特征動(dòng)態(tài)鏈接庫中規(guī)定第三方測試工具的初始化、參數(shù)、結(jié)果等抽象基類,客戶端代理模塊引用特征動(dòng)態(tài)鏈接庫,也即引用特征動(dòng)態(tài)鏈接庫中規(guī)定的第三方測試工具的初始化、參數(shù)、結(jié)果等抽象基類,每一個(gè)用于調(diào)用第三方測試工具的調(diào)用模塊繼承特征動(dòng)態(tài)鏈接庫中的類,實(shí)例化特征動(dòng)態(tài)鏈接庫中的類。因此客戶端代理模塊可以動(dòng)態(tài)加載調(diào)用模塊,使得調(diào)用模塊在被加載后執(zhí)行其中的調(diào)用函數(shù),調(diào)用第三方測試工具執(zhí)行測試。上述通過程序?qū)崿F(xiàn)第三方測試工具的調(diào)用方法如圖3所示。
例如,當(dāng)用戶需要使用webinspect和nsfocus兩種測試工具進(jìn)行網(wǎng)站安全性掃描時(shí)。這兩個(gè)工具需要的主要交互參數(shù)為要掃描的目標(biāo)網(wǎng)址和掃描策略,在任務(wù)信息獲取模塊中輸入目標(biāo)網(wǎng)址,并分別按提示選擇兩個(gè)工具的掃描策略,提交測試任務(wù)信息并保存到數(shù)據(jù)庫。此時(shí)任務(wù)管理模塊掃描數(shù)據(jù)庫獲取測試任務(wù)后將測試任務(wù)信息傳遞給客戶端代理模塊,客戶端代理模塊獲取測試任務(wù)包含的測試工具名稱webinspect和nsfocus,以及webinspect和 nsfoucus分別對(duì)應(yīng)的測試參數(shù),再調(diào)用webinspect和nsfocus對(duì)應(yīng)的調(diào)用模塊,通過該調(diào)用模塊調(diào)用webinspect和nsfocus測試工具完成執(zhí)行具體的測試任務(wù)。
本實(shí)施例通過任務(wù)信息獲取模塊獲取用戶提交的測試任務(wù)信息,將所述測試任務(wù)信息保存在預(yù)置的數(shù)據(jù)庫中;任務(wù)管理模塊獲取所述數(shù)據(jù)庫保存的所述測試任務(wù)信息,將所述測試任務(wù)信息發(fā)送給客戶端代理模塊;所述客戶端代理模塊在接收到所述測試任務(wù)信息后,根據(jù)所述測試任務(wù)信息包含的第三方測試工具的信息向?qū)?yīng)的調(diào)用模塊發(fā)送所述測試任務(wù)信息包含的測試參數(shù);所述調(diào)用模塊在接收到所述測試參數(shù)后,調(diào)用所述第三方測試工具基于所述測試參數(shù)執(zhí)行測試任務(wù)。通過任務(wù)信息獲取模塊獲取并保存測試任務(wù)信息,任務(wù)管理模塊發(fā)送測試任務(wù)信息給客戶端代理模塊,客戶端代理模塊調(diào)用對(duì)應(yīng)的調(diào)用模塊,調(diào)用模塊再調(diào)用對(duì)應(yīng)的第三方測試工具執(zhí)行完成測試任務(wù),使用戶不需要安裝各種工具,也不需要詳細(xì)了解每一種工具的使用方法,只要通過平臺(tái)就可以調(diào)用各種第三方工具執(zhí)行測試,實(shí)現(xiàn)便捷、高效的測試方式。
優(yōu)選地,參照?qǐng)D6,為本發(fā)明調(diào)用第三方測試工具的測試方法第一實(shí)施例中步驟s20的細(xì)化流程示意圖,上述步驟s20的細(xì)化步驟包括:
步驟s21,訪問所述數(shù)據(jù)庫,獲取所述數(shù)據(jù)庫包含的所述測試任務(wù)信息;
步驟s22,在獲取到所述測試任務(wù)信息后,查詢所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài);
步驟s23,當(dāng)所述測試執(zhí)行狀態(tài)為待執(zhí)行狀態(tài)時(shí),查詢系統(tǒng)進(jìn)程中狀態(tài)為空閑的客戶端代理模塊,向所述客戶端代理模塊發(fā)送所述測試任務(wù)信息。
本實(shí)施例中上述數(shù)據(jù)庫是任務(wù)信息獲取模塊保存測試任務(wù)信息的數(shù)據(jù)庫,第二獲取模塊訪問數(shù)據(jù)庫,當(dāng)獲取到數(shù)據(jù)庫中的測試任務(wù)信息后,查詢測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài),由于數(shù)據(jù)庫中會(huì)存放很多測試任務(wù)信息,每個(gè)測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)可能不同,因此當(dāng)測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)為待執(zhí)行狀態(tài)時(shí),表明該測試任務(wù)信息已經(jīng)被獲取但該測試任務(wù)信息所代表的測試任務(wù)并未被執(zhí)行,此時(shí)查詢系統(tǒng)進(jìn)程中空閑的客戶端代理模塊,根據(jù)客戶端代理模塊的地址向客戶端代理模塊分配測試任務(wù)。
本實(shí)施例通過任務(wù)管理模塊查詢數(shù)據(jù)庫獲取測試任務(wù)信息,查詢空閑的客戶端代理模塊,向空閑的客戶端代理模塊分配測試任務(wù)信息,使測試任務(wù)信息所代表的測試任務(wù)能夠盡快的被執(zhí)行。
優(yōu)選地,參照?qǐng)D7,為本發(fā)明調(diào)用第三方測試工具的測試方法第一實(shí)施例中步驟s40之后追加步驟的流程示意圖,上述步驟s40之后還包括:
步驟s50,所述調(diào)用模塊獲取所述第三方測試工具執(zhí)行完所述測試任務(wù)后反饋的測試報(bào)告,將所述測試報(bào)告處理為預(yù)置的文本格式保存為已處理測試報(bào)告,向所述客戶端代理模塊反饋所述測試任務(wù)完成的通知消息;
步驟s60,當(dāng)所述客戶端代理模塊接收到所述通知消息時(shí),結(jié)合所述任務(wù)管理模塊和所述任務(wù)信息獲取模塊將所述已處理測試報(bào)告顯示在用戶顯示界面。
本實(shí)施例中當(dāng)?shù)谌綔y試工具執(zhí)行完測試以后,調(diào)用模塊獲取該第三方測試工具執(zhí)行完測試以后的測試報(bào)告,并向調(diào)用該調(diào)用模塊的客戶端代理模塊反饋測試任務(wù)完成的通知消息。
當(dāng)調(diào)用模塊獲取到測試報(bào)告后,對(duì)測試報(bào)告的格式進(jìn)行處理保存為已處理測試報(bào)告,使得各種第三方測試工具執(zhí)行完測試以后都能以同一種格式呈現(xiàn)測試報(bào)告??梢岳斫獾氖牵纯梢韵蛴脩籼峁┙y(tǒng)一格式的測試報(bào)告,也可以提供第三方測試工具執(zhí)行完測試任務(wù)后的自動(dòng)生成的原始測試報(bào)告。
例如,當(dāng)某第三方測試工具執(zhí)行完測試后,測試報(bào)告為word格式的文本文件,此時(shí),獲取word、格式中的文本信息,將該文本信息處理為pdf格式保存。同時(shí),也可以將測試報(bào)告按照測試結(jié)果的危險(xiǎn)等級(jí)進(jìn)行排序,測試報(bào)告按照高危、中危、低危進(jìn)行分類處理并保存。
本實(shí)施例通過調(diào)用模塊獲取任務(wù)完成后的測試報(bào)告,并將測試報(bào)告處理為已處理測試報(bào)告,再結(jié)合任務(wù)管理模塊、任務(wù)信息獲取模塊將已處理測試報(bào)告反饋顯示在用戶界面,使得用戶通過在任務(wù)信息獲取模塊輸入測試任務(wù)后能夠在任務(wù)信息獲取模塊獲取測試報(bào)告。
優(yōu)選地,參照?qǐng)D8,為圖7所述實(shí)施例中步驟s60的細(xì)化流程示意圖,上述步驟s60包括:
步驟s610,當(dāng)所述客戶端代理模塊獲取到所述通知消息時(shí),向所述調(diào)用模塊獲取并保存所述已處理測試報(bào)告;
步驟s620,任務(wù)管理模塊訪問所述客戶端代理模塊,當(dāng)獲取到所述通知消息時(shí),將所述數(shù)據(jù)庫中所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)標(biāo)記為已完成狀態(tài),將所述已處理測試報(bào)告下載并保存在所述數(shù)據(jù)庫中。
步驟s630,當(dāng)所述任務(wù)信息獲取模塊獲取到所述數(shù)據(jù)庫中所述測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)為已完成狀態(tài)時(shí),從所述數(shù)據(jù)庫獲取所述已處理測試報(bào)告,顯示在所述用戶顯示界面。
本實(shí)施例中上述通知消息是調(diào)用模塊向客戶端代理模塊發(fā)送的消息,通知消息用于通知客戶端代理模塊,該測試任務(wù)已執(zhí)行完成。當(dāng)述客戶端代理模塊接收到測試任務(wù)完成的通知消息后,向該任務(wù)管理模塊獲取已處理測試報(bào)告,將已處理測試報(bào)告保存在客戶端代理模塊所在的服務(wù)器中。
當(dāng)任務(wù)管理模塊訪問客戶端代理模塊并獲取到測試任務(wù)完成的通知消息時(shí),表明此時(shí)測試任務(wù)已經(jīng)完成,任務(wù)管理模塊將數(shù)據(jù)庫中測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)標(biāo)記為已完成狀態(tài),同時(shí)從客戶端代理模塊下載已處理測試報(bào)告保存在數(shù)據(jù)庫中??梢詾槿蝿?wù)管理模塊設(shè)定訪問客戶端代理模塊的時(shí)間,例如,設(shè)置任務(wù)管理模塊定時(shí)獲取測試任務(wù)的執(zhí)行情況。
當(dāng)任務(wù)信息獲取模塊獲取到數(shù)據(jù)庫中的測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)為已完成狀態(tài)時(shí),表明任務(wù)信息獲取模塊獲取到提交進(jìn)行測試的測試任務(wù)已經(jīng)完成,并且已經(jīng)產(chǎn)生了測試報(bào)告。此時(shí)從數(shù)據(jù)庫中獲取已處理測試報(bào)告,同時(shí)將已處理測試報(bào)告顯示在用戶顯示界面,用戶可以對(duì)已處理測試報(bào)告進(jìn)行查看、保存等操作。也可以在用戶顯示界面顯示已處理測試報(bào)告的詳細(xì)信息和已處理測試報(bào)告的下載鏈接,具體的測試后顯示測試報(bào)告的方式可以根據(jù)需要進(jìn)行選擇。
本實(shí)施例當(dāng)客戶端代理模塊獲取到測試任務(wù)完成的通知消息后,向調(diào)用模塊獲取并保存已處理測試報(bào)告,任務(wù)管理模塊訪問客戶端代理并獲取到測試任務(wù)完成的通知消息后將數(shù)據(jù)庫中該測試任務(wù)信息對(duì)應(yīng)的測試執(zhí)行狀態(tài)標(biāo)記為已完成狀態(tài),使得任務(wù)信息獲取模塊可以獲取測試的執(zhí)行情況,并及時(shí)下載測試任務(wù)執(zhí)行完之后的已處理測試報(bào)告反饋給用戶,使用戶在調(diào)用第三方測試工具執(zhí)行完測試后能及時(shí)獲取測試結(jié)果。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。