一種測試客戶端的方法和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及計算機網(wǎng)絡技術,特別地涉及一種測試客戶端的方法和系統(tǒng)。
【背景技術】
[0002]在開發(fā)客戶端軟件(以下簡稱為“客戶端”)時,都需對客戶端進行測試。測試的主要方式是由當前被測客戶端執(zhí)行測試用例,并采集執(zhí)行過程中的數(shù)據(jù)。
[0003]在客戶端實際應用中,常常有多個基于混合框架的多客戶端協(xié)同運行,例如聊天工具,可采用JAVA以B/S模式實現(xiàn),也可采用C++以C/S模式實現(xiàn)。按照現(xiàn)有的測試方式,無法實現(xiàn)對這種基于混合框架的多客戶端的協(xié)同運行進行測試。
【發(fā)明內容】
[0004]有鑒于此,本發(fā)明提供一種測試客戶端的方法和系統(tǒng),能夠對基于混合框架的多客戶端的協(xié)同運行進行測試。
[0005]為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種測試客戶端的方法。
[0006]本發(fā)明的測試客戶端的方法包括:中央控制器啟動第一客戶端,然后接收該第一客戶端對當前測試用例的執(zhí)行結果,并且所述中央控制器接收第二客戶端對該執(zhí)行結果的第二查詢請求;所述第一客戶端在所述執(zhí)行結果為執(zhí)行完成的情況下,向所述中央控制器發(fā)送控制權轉移信息,所述中央控制器將該控制權轉移信息作為所述第二查詢請求的響應信息返回給所述第二客戶端;所述第二客戶端在收到所述響應信息后,執(zhí)行所述當前測試用例。
[0007]可選地,在所述執(zhí)行結果為執(zhí)行完成的情況下,該方法還包括:所述第一客戶端向所述中央控制器發(fā)送共享給所述第二客戶端的第一共享數(shù)據(jù);所述中央控制器將所述第一共享數(shù)據(jù)發(fā)送給所述第二客戶端;所述第二客戶端對所述第一共享數(shù)據(jù)按預設方式進行處理。
[0008]可選地,在所述第二客戶端對所述第一共享數(shù)據(jù)按預設方式進行處理的過程中,該方法還包括:所述第一客戶端向所述中央控制器發(fā)送對于所述第二客戶端的執(zhí)行結果的第一查詢請求;所述第一客戶端若在預設時長內未接收到所述中央控制器返回的所述第二客戶端的執(zhí)行結果信息或者所述第二客戶端共享給所述第一客戶端的第二共享數(shù)據(jù),則終止對當前測試用例的測試。
[0009]可選地,在所述第二客戶端對所述第一共享數(shù)據(jù)按預設方式進行處理的過程中,該方法還包括:所述第一客戶端向所述中央控制器發(fā)送對于所述第二客戶端的執(zhí)行結果的第一查詢請求;所述第二客戶端對所述第一共享數(shù)據(jù)按預設方式進行處理完成后,向所述中央控制器發(fā)送控制權轉移信息,所述中央控制器將該控制權轉移信息作為所述第一查詢請求的響應信息返回給所述第一客戶端。
[0010]可選地,所述第二客戶端對所述共享數(shù)據(jù)按預設方式進行處理完成后,還包括:所述第二客戶端向所述中央控制器發(fā)送共享給所述第一客戶端的第二共享數(shù)據(jù);所述中央控制器將所述第二共享數(shù)據(jù)發(fā)送給所述第一客戶端;所述第一客戶端對所述第二共享數(shù)據(jù)按預設方式進行處理。
[0011]根據(jù)本發(fā)明的另一方面,提供了一種測試客戶端的系統(tǒng)。
[0012]本發(fā)明的測試客戶端的系統(tǒng)包括中央控制器、第一客戶端、第二客戶端,其中:所述第一客戶端和第二客戶端用于執(zhí)行測試用例;所述中央控制器用于啟動第一客戶端,然后接收第一客戶端對當前測試用例的執(zhí)行結果,并且還用于接收所述第二客戶端對該執(zhí)行結果的第二查詢請求;所述第一客戶端還用于在所述執(zhí)行結果為執(zhí)行完成的情況下,向所述中央控制器發(fā)送控制權轉移信息;所述中央控制器還用于將所述控制權轉移信息作為所述第二查詢請求的響應信息返回給所述第二客戶端;所述第二客戶端還用于在收到所述響應信息后,執(zhí)行所述當前測試用例。
[0013]可選地,所述第一客戶端還用于在所述執(zhí)行結果為執(zhí)行完成的情況下,向所述中央控制器發(fā)送共享給所述第二客戶端的第一共享數(shù)據(jù);所述中央控制器還用于將所述第一共享數(shù)據(jù)發(fā)送給所述第二客戶端;所述第二客戶端還用于對所述第一共享數(shù)據(jù)按預設方式進行處理。
[0014]可選地,所述第一客戶端還用于向所述中央控制器發(fā)送對于所述第二客戶端的執(zhí)行結果的第一查詢請求;所述第二客戶端還用于在對所述第一共享數(shù)據(jù)按預設方式進行處理完成后,向所述中央控制器發(fā)送控制權轉移信息;所述中央控制器還用于將所述控制權轉移信息作為所述第一查詢請求的響應信息返回給所述第一客戶端。
[0015]可選地,所述第二客戶端還用于在對所述共享數(shù)據(jù)按預設方式進行處理完成后,向所述中央控制器發(fā)送共享給所述第一客戶端的第二共享數(shù)據(jù);所述中央控制器還用于將所述第二共享數(shù)據(jù)發(fā)送給所述第一客戶端;所述第一客戶端還用于對所述第二共享數(shù)據(jù)按預設方式進行處理。
[0016]可選地,所述第一客戶端還用于:向所述中央控制器發(fā)送對于所述第二客戶端的執(zhí)行結果的第一查詢請求;以及,在預設時長內未接收到所述中央控制器返回的所述第二客戶端的執(zhí)行結果信息或者所述第二客戶端共享給所述第一客戶端的第二共享數(shù)據(jù)的情況下,終止對當前測試用例的測試。
[0017]根據(jù)本發(fā)明的技術方案,采用中央控制器對兩個客戶端進行控制,其中一個客戶端經(jīng)由中央控制器掃描另一客戶端的執(zhí)行狀態(tài),能夠實現(xiàn)兩個客戶端的協(xié)同測試;并且上述流程的實現(xiàn)不依賴于具體的開發(fā)平臺例如JAVA或者C++等,所以能夠實現(xiàn)混合框架下的多個客戶端的測試。
【附圖說明】
[0018]附圖用于更好地理解本發(fā)明,不構成對本發(fā)明的不當限定。其中:
[0019]圖1是根據(jù)本發(fā)明實施例的測試客戶端的系統(tǒng)的一種基本結構的示意圖;
[0020]圖2是根據(jù)本發(fā)明實施例的測試客戶端的方法的一種基本流程的示意圖;
[0021]圖3是根據(jù)本發(fā)明實施例的測試客戶端的方法的另一種流程的示意圖。
【具體實施方式】
[0022]以下結合附圖對本發(fā)明的示范性實施例做出說明,其中包括本發(fā)明實施例的各種細節(jié)以助于理解,應當將它們認為僅僅是示范性的。因此,本領域普通技術人員應當認識至IJ,可以對這里描述的實施例做出各種改變和修改,而不會背離本發(fā)明的范圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對公知功能和結構的描述。
[0023]圖1是根據(jù)本發(fā)明實施例的測試客戶端的系統(tǒng)的一種基本結構的示意圖。以測試兩個客戶端為例,測試客戶端的系統(tǒng)I主要包括中央控制器10、第一客戶端11、以及第二客戶端12。中央控制器10的主要作用是控制第一客戶端11和第二客戶端12的運行(包括開啟、關閉等)、傳遞第一客戶端11和第二客戶端12的運行狀態(tài)信息以及共享數(shù)據(jù)。測試方法的一種基本流程如圖2所示,圖2是根據(jù)本發(fā)明實施例的測試客戶端的方法的一種基本流程的示意圖。
[0024]步驟S21:中央控制器啟動第一客戶端和第二客戶端。在本步驟之前,可以先檢查一下第一客戶端和第二客戶端是否關閉,如未關閉可先關閉以清理測試環(huán)境,有助于客戶端的穩(wěn)定運行。
[0025]步驟S22:第一客戶端執(zhí)行測試用例中的語句。在本流程中,先由第一客戶端持有控制權,執(zhí)行測試用例中的語句,第二客戶端處于掃描狀態(tài),實時從中央控制器掃描第一客戶端的執(zhí)行狀態(tài),即步驟S23。
[0026]步驟S23:第二客戶端向中央控制器發(fā)送查詢請求。該查詢請求是按時間間隔反復地發(fā)送。
[0027]步驟S24:中央控制器接收第二客戶端發(fā)送的查詢請求。相應地,該接收也是反復接收。
[0028]步驟S25:第一客戶端向中央控制器發(fā)送控制權轉移信息。作為舉例,此處的情形是第一客戶端正常執(zhí)行測試用例中的語句并且向中央控制器發(fā)送控制權轉移信息。另外,如果第一客戶端對測試用例執(zhí)行失敗或者雖然正常執(zhí)行但未向中央控制器發(fā)送控制權轉移信息,則因為第二客戶端在持續(xù)掃描第一客戶端的執(zhí)行狀態(tài),所以第二客戶端在到達超時時間后自行關閉。
[0029]步驟S26:中央控制器將控制權轉移信息發(fā)送給第二客戶端。當收到第二客戶端的查詢請求后,如果中央控制器收到了上述的控制權轉移信息,則在響應信息中包含控制權轉移信息,以通知第二客戶端當前對測試用例的執(zhí)行的控制權已轉移至第二客戶端。
[0030]步驟S27:第二客戶端執(zhí)行當前測試用例。這里的測試用例的業(yè)務邏輯是要求先由第一客戶端執(zhí)行,然后由第二客戶端接著執(zhí)行。因此,在第二客戶端得知自己獲得控制權之后,即開始執(zhí)行當前測試用例。
[0031]以下結合圖3對本發(fā)明實施例的更復雜的情況加以說明。圖3是根據(jù)本發(fā)明實施例的測試客戶端的方法的另一種流程的示意圖。其中前幾個步驟與圖2中的步驟類似。
[0032]步驟S301:中央控制器啟動第一客戶端和第二客戶端。
[0033]步驟S302:第一客戶端執(zhí)行測試用例中的語句。
[0034]步驟S303:第二客戶端向中央控制器發(fā)送查詢請求。
[0035]步驟S304:中央控制器接收第二客戶端發(fā)