1.一種游戲服務器的測試方法,其特征在于,測試服務器查找得到游戲客戶端所基于的協(xié)議的函數(shù),并根據(jù)所述函數(shù)獲得所述協(xié)議的協(xié)議基礎結構;測試客戶端每次進行測試時,執(zhí)行如下處理:
從所述測試服務器拉取所述協(xié)議基礎結構,根據(jù)所述協(xié)議基礎結構生成合法游戲協(xié)議包;
對所生成的合法游戲協(xié)議包進行異常值填充,得到異常游戲協(xié)議包;及,
通過向所述游戲服務器發(fā)送所述異常游戲協(xié)議包和所述合法游戲協(xié)議包,測試得到所述游戲服務器的狀態(tài)。
2.根據(jù)權利要求1所述的方法,其中,所述測試服務器查找得到游戲客戶端所基于的協(xié)議的函數(shù),并根據(jù)所述函數(shù)獲得所述協(xié)議的所述協(xié)議基礎結構包括:
所述測試服務器根據(jù)所述游戲客戶端的公共發(fā)包函數(shù)查找得到所述函數(shù),通過對所述游戲客戶端所所述函數(shù)進行解析得到所述協(xié)議基礎結構。
3.根據(jù)權利要求1所述的方法,還包括:
所述測試客戶端將自身注入到所述游戲客戶端中;
所述測試客戶端收集由注入到的所述游戲客戶端產(chǎn)生的原生協(xié)議數(shù)據(jù),將所述原生協(xié)議數(shù)據(jù)上傳給所述測試服務器;
其中,所述測試客戶端從所述測試服務器拉取所述協(xié)議基礎結構,根據(jù)所述協(xié)議基礎結構生成合法游戲協(xié)議包,包括:
所述測試客戶端從所述測試服務器拉取所述原生協(xié)議數(shù)據(jù),根據(jù)所述原生協(xié)議數(shù)據(jù)對所述協(xié)議基礎結構進行填充,得到所述合法游戲協(xié)議包。
4.根據(jù)權利要求1所述的方法,還包括:
所述測試客戶端在內(nèi)存中為所述協(xié)議基礎結構構造相應的緩沖區(qū);
所述測試客戶端從所述測試服務器拉取所述協(xié)議基礎結構,根據(jù)所述協(xié)議基礎結構生成合法游戲協(xié)議包包括:
所述測試客戶端從所述測試服務器拉取原生協(xié)議數(shù)據(jù),根據(jù)所述原生協(xié)議數(shù)據(jù)對所述協(xié)議基礎結構對應的緩沖區(qū)進行數(shù)值填充,得到所述合法游戲協(xié)議包。
5.根據(jù)權利要求1所述的方法,其中,所述協(xié)議基礎結構包括一個或多個基礎數(shù)據(jù)結構;
所述測試客戶端對所生成的合法游戲協(xié)議包進行異常值填充,得到異常游戲協(xié)議包包括:
所述測試客戶端以所述基礎數(shù)據(jù)結構為單位讀取異常值配置文件中的異常值,對所述合法游戲協(xié)議包進行異常值填充,得到所述異常游戲協(xié)議包。
6.根據(jù)權利要求1所述的方法,其中,所述通過向所述游戲服務器發(fā)送所述異常游戲協(xié)議包和所述合法游戲協(xié)議包,測試得到所述游戲服務器的狀態(tài)包括:
若在預定時間間隔內(nèi)收到所述游戲服務器反饋的對應于所述合法游戲協(xié)議包的確認響應,則判斷所述游戲服務器的狀態(tài)為正常;否則,判斷所述游戲服務器的狀態(tài)為異常。
7.根據(jù)權利要求1所述的方法,其中,所述測試客戶端向所述游戲服務器發(fā)送所述合法游戲協(xié)議包包括:
所述測試客戶端向所述游戲服務器依次發(fā)送多個所述合法游戲協(xié)議包。
8.根據(jù)權利要求1所述的方法,還包括:
所述測試客戶端將自身注入到所述游戲客戶端中;
其中,所述測試客戶端向游戲服務器發(fā)送所述異常游戲協(xié)議包包括:
所述測試客戶端通過調(diào)用所述游戲客戶端的公共發(fā)包函數(shù),將所述游戲客戶端的公共發(fā)包函數(shù)中表示發(fā)包內(nèi)容的參數(shù)指針指向所述協(xié)議基礎結構對應的緩沖區(qū)。
9.根據(jù)權利要求3或8所述的方法,其中,所述測試客戶端將自身注入到所述游戲客戶端中包括:
響應于用戶操作,確定游戲進程名和所述測試客戶端的文件路徑;
根據(jù)所述游戲進程名和所述測試客戶端的文件路徑,將所述測試客戶端注入到所述游戲客戶端中。
10.根據(jù)權利要求6所述的方法,其中,若所述測試客戶端判斷所述游戲服務器的狀態(tài)為異常,所述方法還包括:所述測試客戶端響應于用戶操作,重新進行至少一次測試。
11.一種測試客戶端,其特征在于,包括:拉取模塊、生成模塊、異常值填充模塊、發(fā)送模塊、接收模塊、判斷模塊;其中,測試服務器查找得到游戲客戶端所基于的協(xié)議的函數(shù),并根據(jù)所述函數(shù)獲得所述協(xié)議的協(xié)議基礎結構;
每次進行測試時:
所述拉取模塊,用于從所述測試服務器拉取協(xié)議基礎結構;
所述生成模塊,用于根據(jù)所述拉取模塊拉取的所述協(xié)議基礎結構生成合法游戲協(xié)議包;
所述異常值填充模塊,用于對所述生成模塊生成的所述合法游戲協(xié)議包進行異常值填充,得到異常游戲協(xié)議包;
所述發(fā)送模塊,用于向游戲服務器發(fā)送所述異常游戲協(xié)議包和所述合法游戲協(xié)議包;
所述接收模塊,用于接收所述游戲服務器的反饋;及,
所述判斷模塊,用于根據(jù)所述接收模塊接收的所述反饋,判斷得到所述游戲服務器的狀態(tài)。
12.根據(jù)權利要求11所述的測試客戶端,還包括:
注入模塊,用于將所述測試客戶端注入到所述游戲客戶端中;
收集模塊,用于收集由被注入了所述測試客戶端的所述游戲客戶端產(chǎn)生的原生協(xié)議數(shù)據(jù);
所述發(fā)送模塊,進一步用于將所述收集模塊收集的所述原生協(xié)議數(shù)據(jù)上 傳給所述測試服務器;
所述拉取模塊,進一步用于從所述測試服務器拉取所述原生協(xié)議數(shù)據(jù);
所述生成模塊,用于根據(jù)所述拉取模塊拉取的所述原生協(xié)議數(shù)據(jù)對所述協(xié)議基礎結構進行填充,得到所述合法游戲協(xié)議包。
13.根據(jù)權利要求11所述的測試客戶端,還包括:
構造模塊,用于在內(nèi)存中為所述拉取模塊拉取的所述協(xié)議基礎結構構造相應的緩沖區(qū);
所述拉取模塊,進一步用于從所述測試服務器拉取原生協(xié)議數(shù)據(jù);
所述生成模塊,用于根據(jù)所述拉取模塊拉取的所述原生協(xié)議數(shù)據(jù)對所述構造模塊構造的所述緩沖區(qū)進行數(shù)值填充,得到所述合法游戲協(xié)議包。
14.根據(jù)權利要求11所述的測試客戶端,其中,
所述接收模塊,用于接收所述游戲服務器響應于接收到的所述合法游戲協(xié)議包而發(fā)送的反饋;
所述判斷模塊,用于根據(jù)所述接收模塊接收的所述反饋,若在預定時間間隔內(nèi)收到所述游戲服務器反饋的對應于所述合法游戲協(xié)議包的確認響應,則判斷所述游戲服務器的狀態(tài)為正常,否則,判斷所述游戲服務器的狀態(tài)為異常。
15.根據(jù)權利要求12所述的測試客戶端,還包括:界面模塊,用于提供用戶操作界面,并接收所述用戶輸入的操作;
所述注入模塊,用于響應于用戶操作,確定游戲進程名和所述測試客戶端的文件路徑;根據(jù)所述游戲進程名和所述測試客戶端的文件路徑,將所述測試客戶端注入到所述游戲客戶端中。
16.根據(jù)權利要求14所述的測試客戶端,還包括:
界面模塊,用于提供用戶操作界面,并接收所述用戶輸入的操作;
重新測試模塊,用于若所述判斷模塊判斷所述游戲服務器的狀態(tài)為異常,響應于用戶操作,重新進行至少一次測試。
17.一種測試服務器,其特征在于,包括:
查找模塊,用于查找得到游戲客戶端所基于的協(xié)議的函數(shù);
解析模塊,用于根據(jù)所述查找模塊得到的所述函數(shù),解析獲得所述協(xié)議的協(xié)議基礎結構;
存儲模塊,用于存儲所述解析模塊得到的所述協(xié)議基礎結構;
其中,在每次測試時,測試客戶端從所述測試服務器拉取所述協(xié)議基礎結構,根據(jù)所述協(xié)議基礎結構生成合法游戲協(xié)議包,對所述合法游戲協(xié)議包進行異常值填充,得到異常游戲協(xié)議包,并通過向所述游戲服務器發(fā)送所述異常游戲協(xié)議包和所述合法游戲協(xié)議包,測試得到所述游戲服務器的狀態(tài)。
18.根據(jù)權利要求17所述的測試服務器,其中,所述查找模塊用于利用分析工具查看所述游戲客戶端的公共發(fā)包函數(shù)的調(diào)用關系找到所述函數(shù)。
19.根據(jù)權利要求17所述的測試服務器,其中,所述存儲模塊,進一步用于存儲所述游戲客戶端產(chǎn)生的原生協(xié)議數(shù)據(jù);
其中,所述測試客戶端從所述測試服務器拉取所述原生協(xié)議數(shù)據(jù),根據(jù)所述原生協(xié)議數(shù)據(jù)對所述協(xié)議基礎結構進行填充,得到所述合法游戲協(xié)議包。
20.一種測試系統(tǒng),其特征在于,包括:游戲服務器、測試客戶端和測試服務器;其中,
所述測試服務器,用于查找得到游戲客戶端所基于的協(xié)議的函數(shù),并根據(jù)所述函數(shù)獲得所述協(xié)議的協(xié)議基礎結構;
所述測試客戶端,用于,每次進行測試時,從所述測試服務器拉取所述協(xié)議基礎結構,根據(jù)所述協(xié)議基礎結構生成合法游戲協(xié)議包,對所生成的合法游戲協(xié)議包進行異常值填充,得到異常游戲協(xié)議包,并通過向所述游戲服務器發(fā)送所述異常游戲協(xié)議包和所述合法游戲協(xié)議包,測試得到所述游戲服務器的狀態(tài)。
21.根據(jù)權利要求20所述的測試系統(tǒng),其中,
所述測試客戶端進一步將自身注入所述游戲客戶端;
所述游戲客戶端,用于加載被注入的所述測試客戶端;
所述測試客戶端收集由被注入了所述測試客戶端的所述游戲客戶端產(chǎn)生的原生協(xié)議數(shù)據(jù),將所述原生協(xié)議數(shù)據(jù)上傳給所述測試服務器,從所述測試服務器拉取所述原生協(xié)議數(shù)據(jù),根據(jù)所述原生協(xié)議數(shù)據(jù)對所述協(xié)議基礎結構進行填充,得到所述合法游戲協(xié)議包。