一種基于pb的接口集成測(cè)試方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件測(cè)試領(lǐng)域,具體地說(shuō),是涉及一種基于PB的接口集成測(cè)試方法和系統(tǒng)。
【背景技術(shù)】
[0002]Protocol Buffers (以下簡(jiǎn)稱PB)是google定義的一種數(shù)據(jù)交換的格式,它獨(dú)立于語(yǔ)言,獨(dú)立于平臺(tái)。由于它是一種二進(jìn)制的格式,比使用xml進(jìn)行數(shù)據(jù)交換快許多??梢园阉糜诜植际綉?yīng)用之間的數(shù)據(jù)通信或者異構(gòu)環(huán)境下的數(shù)據(jù)交換。目前很多項(xiàng)目和產(chǎn)品都把PB作為數(shù)據(jù)通信和數(shù)據(jù)交換的基礎(chǔ)格式。
[0003]Google在提供PB數(shù)據(jù)格式的定義時(shí),已經(jīng)提供了 PB的序列化和反序列化基礎(chǔ)方法。但是在實(shí)際的工作中存在以下幾個(gè)問(wèn)題:
[0004]I)實(shí)際中經(jīng)常需要多次接口請(qǐng)求和交換才能完成一次真正的業(yè)務(wù)操作,測(cè)試人員只能手工模擬,無(wú)法實(shí)現(xiàn)自動(dòng)化測(cè)試和回歸測(cè)試,并且手工測(cè)試往往無(wú)法對(duì)接口進(jìn)行完全覆蓋。
[0005]2)G00gle提供的基礎(chǔ)方法只能實(shí)現(xiàn)數(shù)據(jù)序列化,無(wú)法控制數(shù)據(jù)的網(wǎng)絡(luò)發(fā)包速度,因此無(wú)法真實(shí)模擬復(fù)雜網(wǎng)絡(luò)情況下被測(cè)程序?qū)τ谕ㄓ嵃慕馕龊托r?yàn)規(guī)則。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問(wèn)題是根據(jù)測(cè)試需求,一次或者多次發(fā)送請(qǐng)求;模擬真實(shí)網(wǎng)絡(luò)發(fā)送請(qǐng)求。
[0007]為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于PB的接口集成測(cè)試方法,包括步驟:
[0008]啟動(dòng)測(cè)試系統(tǒng),讀取PB協(xié)議文件;
[0009]測(cè)試系統(tǒng)根據(jù)被測(cè)程序所在的IP地址,創(chuàng)建TCP Socket客戶端,與被測(cè)程序建立連接;
[0010]根據(jù)xml讀取測(cè)試用例和測(cè)試數(shù)據(jù)、測(cè)試用例順序,生成測(cè)試用例集合;
[0011]設(shè)定發(fā)送的TCP Socket數(shù)據(jù)包大小,發(fā)送TCP Socket數(shù)據(jù)包模擬復(fù)雜網(wǎng)絡(luò)進(jìn)行測(cè)試;
[0012]執(zhí)行測(cè)試用例;
[0013]得到測(cè)試結(jié)果。
[0014]優(yōu)選地,所述執(zhí)行測(cè)試用例,進(jìn)一步為,
[0015]在測(cè)試開始執(zhí)行時(shí),設(shè)定測(cè)試中斷條件,默認(rèn)出現(xiàn)錯(cuò)誤時(shí)終止測(cè)試。
[0016]優(yōu)選地,所述執(zhí)行測(cè)試用例,進(jìn)一步為,
[0017]在執(zhí)行測(cè)試用例集合時(shí),若其中一條測(cè)試用例的測(cè)試結(jié)果與測(cè)試預(yù)期結(jié)果不一致時(shí),對(duì)所述測(cè)試用例集合執(zhí)行中斷測(cè)試集合、忽略并繼續(xù)執(zhí)行下一條測(cè)試用例或重復(fù)執(zhí)行上一步測(cè)試用例。
[0018]優(yōu)選地,所述設(shè)定發(fā)送的TCP Socket數(shù)據(jù)包大小,發(fā)送TCP Socket數(shù)據(jù)包模擬復(fù)雜網(wǎng)絡(luò)進(jìn)行測(cè)試,進(jìn)一步為,
[0019]所述測(cè)試系統(tǒng)設(shè)定Socket緩沖區(qū)的大小,將一個(gè)數(shù)據(jù)報(bào)文按照設(shè)定的大小分割為多個(gè)數(shù)據(jù)包,分批發(fā)送,模擬數(shù)據(jù)分包進(jìn)行測(cè)試,或者將兩個(gè)或兩個(gè)以上的數(shù)據(jù)報(bào)文合并為一個(gè)數(shù)據(jù)包進(jìn)行發(fā)送,模擬數(shù)據(jù)沾包進(jìn)行測(cè)試。
[0020]優(yōu)選地,還包括:根據(jù)測(cè)試結(jié)果,生成測(cè)試報(bào)告,所述測(cè)試報(bào)告,包括:測(cè)試序號(hào)、測(cè)試用例名稱、測(cè)試步驟名稱、是否通過(guò)測(cè)試、異常記錄、測(cè)試時(shí)間及測(cè)試執(zhí)行時(shí)間。
[0021]本申請(qǐng)還公開了一種基于PB的接口集成測(cè)試系統(tǒng),包括初始化模塊、連接調(diào)度模塊、測(cè)試管理模塊及日志報(bào)告模塊,其中,
[0022]所述初始化模塊,與所述連接調(diào)度模塊相耦接,用于完成測(cè)試系統(tǒng)的初始化和讀取PB協(xié)議;
[0023]所述連接調(diào)度模塊,分別與所述初始化模塊和測(cè)試管理模塊相耦接,用于根據(jù)被測(cè)程序所在的IP地址,創(chuàng)建TCP Socket客戶端,與被測(cè)程序建立連接;
[0024]所述測(cè)試管理模塊,分別與所述連接調(diào)度模塊和日志報(bào)告模塊相耦接,用于根據(jù)xml讀取測(cè)試用例和測(cè)試數(shù)據(jù)、測(cè)試用例順序,生成測(cè)試用例集合,還用于設(shè)定發(fā)送的TCPSocket數(shù)據(jù)包大小,發(fā)送TCP Socket數(shù)據(jù)包模擬復(fù)雜網(wǎng)絡(luò)進(jìn)行測(cè)試,以及執(zhí)行測(cè)試用例,將測(cè)試結(jié)果通知日志報(bào)告模塊;
[0025]所述日志報(bào)告模塊,與所述測(cè)試管理模塊相耦接,用于根據(jù)測(cè)試結(jié)果,生成測(cè)試報(bào)生口 ο
[0026]優(yōu)選地,所述測(cè)試管理模塊,進(jìn)一步為,在測(cè)試開始執(zhí)行時(shí),設(shè)定測(cè)試中斷條件,默認(rèn)出現(xiàn)錯(cuò)誤時(shí)終止測(cè)試。
[0027]優(yōu)選地,所述測(cè)試管理模塊,進(jìn)一步為,在執(zhí)行測(cè)試用例集合時(shí),若其中一條測(cè)試用例的測(cè)試結(jié)果與測(cè)試預(yù)期結(jié)果不一致時(shí),對(duì)所述測(cè)試用例集合執(zhí)行中斷測(cè)試集合、忽略并繼續(xù)執(zhí)行下一條測(cè)試用例或重復(fù)執(zhí)行上一步測(cè)試用例。
[0028]優(yōu)選地,所述測(cè)試管理模塊,進(jìn)一步為,設(shè)定Socket緩沖區(qū)的大小,將一個(gè)數(shù)據(jù)報(bào)文按照設(shè)定的大小分割為多個(gè)數(shù)據(jù)包,分批發(fā)送,模擬數(shù)據(jù)分包進(jìn)行測(cè)試,或者將兩個(gè)或兩個(gè)以上的數(shù)據(jù)報(bào)文合并為一個(gè)數(shù)據(jù)包進(jìn)行發(fā)送,模擬數(shù)據(jù)沾包進(jìn)行測(cè)試。
[0029]優(yōu)選地,所述日志報(bào)告模塊生成的測(cè)試報(bào)告,包括:測(cè)試序號(hào)、測(cè)試用例名稱、測(cè)試步驟名稱、是否通過(guò)測(cè)試、異常記錄、測(cè)試時(shí)間及測(cè)試執(zhí)行時(shí)間。
[0030]與現(xiàn)有技術(shù)相比,本發(fā)明所述的基于PB的接口集成測(cè)試方法和系統(tǒng),達(dá)到了如下效果:
[0031]I)測(cè)試系統(tǒng)替代手工操作,和被測(cè)程序主動(dòng)建立連接,模擬用戶發(fā)送接口請(qǐng)求,測(cè)試被測(cè)程序的正常邏輯功能,以及不同網(wǎng)速條件下被測(cè)程序?qū)τ谕ㄓ嵃慕馕觥?br>[0032]2)根據(jù)PB協(xié)議文件和XML格式的測(cè)試用例,自動(dòng)完成接口的集成測(cè)試工作;通過(guò)設(shè)定的網(wǎng)絡(luò)包的大小,測(cè)試應(yīng)用程序在復(fù)雜網(wǎng)絡(luò)情況下,對(duì)接口數(shù)據(jù)的解析;
[0033]3)和手工測(cè)試相比,能夠更好的檢測(cè)程序的健壯性,能夠測(cè)試手工測(cè)試無(wú)法覆蓋的異常業(yè)務(wù)情況;
[0034]4)能夠?qū)崿F(xiàn)自動(dòng)化測(cè)試,使回歸測(cè)試可以更加快捷;
[0035]5)能夠完成長(zhǎng)時(shí)間持續(xù)測(cè)試,對(duì)程序的疲勞性和內(nèi)存泄漏問(wèn)題完成更好的檢測(cè)。
【附圖說(shuō)明】
[0036]此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0037]圖1為基于PB的接口集成測(cè)試方法流程圖;
[0038]圖2為客戶端與服務(wù)端連接流程圖;
[0039]圖3為實(shí)施例2的接口集成測(cè)試方法流程圖;
[0040]圖4為基于PB的接口集成測(cè)試系統(tǒng)結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0041]如在說(shuō)明書及權(quán)利要求當(dāng)中使用了某些詞匯來(lái)指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會(huì)用不同名詞來(lái)稱呼同一個(gè)組件。本說(shuō)明書及權(quán)利要求并不以名稱的差異來(lái)作為區(qū)分組件的方式,而是以組件在功能上的差異來(lái)作為區(qū)分的準(zhǔn)則。如在通篇說(shuō)明書及權(quán)利要求當(dāng)中所提及的“包含”為一開放式用語(yǔ),故應(yīng)解釋成“包含但不限定于”。“大致”是指在可接收的誤差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問(wèn)題,基本達(dá)到所述技術(shù)效果。此外,“耦接”一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電性耦接于所述第二裝置,或通過(guò)其他裝置或耦接手段間接地電性耦接至所述第二裝置。說(shuō)明書后續(xù)描述為實(shí)施本發(fā)明的較佳實(shí)施方式,然所述描述乃以說(shuō)明本發(fā)明的一般原則為目的,并非用以限定本發(fā)明的范圍。本發(fā)明的保護(hù)范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。
[0042]以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明,但不作為對(duì)本發(fā)明的限定。
[0043]實(shí)施例1:
[0044]結(jié)合圖1,本實(shí)施例提供了一種基于PB的接口集成測(cè)試方法,包括步驟:
[0045]步驟101:啟動(dòng)測(cè)試系統(tǒng),讀取PB協(xié)議文件;測(cè)試系統(tǒng)分為4個(gè)模塊,分別出初始化模塊、連接調(diào)度模塊、測(cè)試管理模塊、日志報(bào)告模塊。
[0046]步驟102:測(cè)試系統(tǒng)(連接調(diào)度模塊)根據(jù)被測(cè)程序所在的IP地址,創(chuàng)建TCPSocket客戶端,與被測(cè)程序建立連接;
[0047]步驟103:(測(cè)試管理模塊)根據(jù)xml讀取測(cè)試用例和測(cè)試數(shù)據(jù)、測(cè)試用例順序,生成測(cè)試用例集合;
[0048]步驟104:(測(cè)試管理模塊)設(shè)定發(fā)送的TCP Socket數(shù)據(jù)包大小,發(fā)送TCPSocket數(shù)據(jù)包模擬復(fù)雜網(wǎng)絡(luò)進(jìn)行測(cè)試;
[0049]所述測(cè)試系統(tǒng)設(shè)定Socket緩沖區(qū)的大小,將一個(gè)數(shù)據(jù)報(bào)文按照設(shè)定的大小分割為多個(gè)數(shù)據(jù)包,分批發(fā)送,模擬數(shù)據(jù)分包進(jìn)行測(cè)試,或者將兩個(gè)或兩個(gè)以上的數(shù)據(jù)報(bào)文合并為一個(gè)數(shù)據(jù)包進(jìn)行發(fā)送,模擬數(shù)據(jù)沾包進(jìn)行測(cè)試。
[0050]步驟105:(測(cè)試管理模塊)執(zhí)行測(cè)試用例;
[0051]在本步驟105中,在測(cè)試開始執(zhí)行時(shí),設(shè)定測(cè)試中斷條件,默認(rèn)出現(xiàn)錯(cuò)誤時(shí)終止測(cè)試。
[0052]在執(zhí)行測(cè)試用例集合時(shí),若其中一條測(cè)試用例的測(cè)試結(jié)果與測(cè)試預(yù)期結(jié)果不一致時(shí),對(duì)所述測(cè)試用例集合執(zhí)行中斷測(cè)試集合、忽略并繼續(xù)執(zhí)行下一條測(cè)試用例或重復(fù)執(zhí)行上一步測(cè)試用例。在測(cè)試過(guò)程中,實(shí)時(shí)通知日志報(bào)告模塊,記錄實(shí)時(shí)日志。
[0053]步驟106:(測(cè)試管理模塊)得到測(cè)試結(jié)果。
[0054]還包括步驟107:(日志報(bào)告模塊)根據(jù)測(cè)試結(jié)果,生成測(cè)試報(bào)告。
[0055]所述測(cè)試報(bào)告,包括:測(cè)試序號(hào)、測(cè)試用例名稱、測(cè)試步驟名稱、是否通過(guò)測(cè)試、異常記錄、測(cè)試時(shí)間及測(cè)試執(zhí)行時(shí)間。
[0056]結(jié)合圖4,本實(shí)施例還提供一種基于PB的接口集成測(cè)試系統(tǒng),包括初始化模塊401、連接調(diào)度模塊402、測(cè)試管理模塊403及日志報(bào)告模塊404,其中,
[0057]所述初始化模塊401,與所述連接調(diào)度模塊402相耦接,用于完成測(cè)試系統(tǒng)的初始化和讀取PB協(xié)議;
[0058]所述連接調(diào)度模塊402,分別與所述初始化模塊401和測(cè)試管理模塊403相耦接,用于根據(jù)被測(cè)程序所在的IP地址,創(chuàng)建TCP Socket客戶端,與被測(cè)程序建立連接;
[0059]所述測(cè)試管理模塊403,分別與所述連接調(diào)度模塊402和日志報(bào)告模塊404相耦接,用于根據(jù)xml讀取測(cè)試用例和測(cè)試數(shù)據(jù)、測(cè)試用例順序,生成測(cè)試用例集合,還用于設(shè)定發(fā)送的TCP Socket數(shù)據(jù)包大小,發(fā)送TCP Socket數(shù)據(jù)包模擬復(fù)雜網(wǎng)絡(luò)進(jìn)行測(cè)試,以及執(zhí)行測(cè)試用例,將測(cè)試結(jié)果通知日志報(bào)告模塊404 ;
[0060]所述日志報(bào)告模塊404,與所述測(cè)試管理模塊403相耦接,用于根據(jù)測(cè)試結(jié)果,生成測(cè)試報(bào)告。
[0061]所述測(cè)試管理模塊403,進(jìn)一步為,在測(cè)試開始執(zhí)行時(shí),設(shè)定測(cè)試中斷條件,默認(rèn)出現(xiàn)錯(cuò)誤時(shí)終止測(cè)試。
[0062]所述測(cè)試管理模塊403,進(jìn)一步為,在執(zhí)行測(cè)試用例集合時(shí),若其中一條測(cè)試用例的測(cè)試結(jié)果與測(cè)試預(yù)期結(jié)果不一致時(shí),對(duì)所述測(cè)試用例集合執(zhí)行中斷測(cè)試集合、忽略并繼續(xù)執(zhí)行下一條測(cè)試用例或重復(fù)執(zhí)行上一步測(cè)試用例。
[006