<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

    平臺(tái)服務(wù)器測(cè)試2—接口功能測(cè)試

    由于平臺(tái)服務(wù)器是通過(guò)接口來(lái)與客戶(hù)端交互數(shù)據(jù)提供各種服務(wù),因此服務(wù)器測(cè)試工作首先需要進(jìn)行的是接口測(cè)試工作。測(cè)試人員需要通過(guò)服務(wù)器接口功能測(cè)試來(lái)確保接口功能實(shí)現(xiàn)正確,那么其他測(cè)試人員進(jìn)行客戶(hù)端與服務(wù)器結(jié)合的系統(tǒng)測(cè)試過(guò)程中,就能夠排除由于服務(wù)器接口缺陷所導(dǎo)致的客戶(hù)端問(wèn)題,便于開(kāi)發(fā)人員定位問(wèn)題。以下便是個(gè)人的平臺(tái)服務(wù)器接口功能測(cè)試經(jīng)驗(yàn)總結(jié):

      一、接口測(cè)試范圍

      根據(jù)服務(wù)器的測(cè)試需求,接口測(cè)試范圍主要分為:1、新增接口的測(cè)試;2、新增業(yè)務(wù)功能接口測(cè)試;3、整個(gè)服務(wù)器的接口測(cè)試。所需測(cè)試測(cè)試接口依次增多,在測(cè)試時(shí)間足夠的條件下,當(dāng)然需要對(duì)所有接口進(jìn)行測(cè)試用例的設(shè)計(jì),但如果測(cè)試較短的情況下,則應(yīng)該首先根據(jù)用戶(hù)的典型操作對(duì)測(cè)試接口進(jìn)行優(yōu)先級(jí)劃分,對(duì)調(diào)用頻繁接口需要優(yōu)先進(jìn)行測(cè)試。

      二、接口測(cè)試策略

      在進(jìn)行平臺(tái)服務(wù)器接口測(cè)試之前,首先需要整理服務(wù)器接口的測(cè)試方案,分析接口測(cè)試的要點(diǎn),平臺(tái)服務(wù)器的接口測(cè)試內(nèi)容主要有:

      接口設(shè)計(jì)檢查

      接口用于服務(wù)器與客戶(hù)端的數(shù)據(jù)交互,客戶(hù)端通過(guò)網(wǎng)絡(luò)協(xié)議傳遞的數(shù)據(jù)為服務(wù)器接口的輸入數(shù)據(jù),因此應(yīng)該首先通過(guò)服務(wù)器接口文檔及客戶(hù)端數(shù)據(jù)約束文檔進(jìn)行交互數(shù)據(jù)的有效性檢查:

      ● 整數(shù)型數(shù)據(jù)位數(shù)

      ● 浮點(diǎn)型數(shù)據(jù)精度

      ● 字符串?dāng)?shù)據(jù)范圍值

      要求客戶(hù)端的整數(shù)型、浮點(diǎn)型、字符串?dāng)?shù)據(jù)以及其最大值和最小值都能作為服務(wù)器接口的有效輸入。這些工作在服務(wù)器設(shè)計(jì)評(píng)審時(shí)就可以進(jìn)行,以便確保不會(huì)出現(xiàn)客戶(hù)端上傳數(shù)據(jù)被服務(wù)器自動(dòng)進(jìn)行截?cái)嗷蛩纳嵛迦氲牟僮鳌?/p>

      接口依賴(lài)關(guān)系檢查

      以上策略只談到單個(gè)接口的測(cè)試方法,對(duì)于用戶(hù)來(lái)說(shuō),一個(gè)操作可能會(huì)造成服務(wù)器調(diào)用多個(gè)接口來(lái)進(jìn)行完成,因此還需要從業(yè)務(wù)處理的角度,對(duì)各種業(yè)務(wù)操作所涉及的多個(gè)接口之間依賴(lài)調(diào)用進(jìn)行測(cè)試。

      接口依賴(lài)關(guān)系檢查主要是通過(guò)接口的輸出值為另一接口的輸入值來(lái)實(shí)現(xiàn)的,因此在進(jìn)行接口測(cè)試之前,需要分析所測(cè)試接口的輸入值是通過(guò)客戶(hù)端還是其他接口輸出來(lái)獲取的,在設(shè)計(jì)測(cè)試用例時(shí),加入接口的依賴(lài)關(guān)系說(shuō)明以便于測(cè)試。

      接口輸入/輸出驗(yàn)證

      服務(wù)器接口功能測(cè)試類(lèi)似于單元測(cè)試,在設(shè)計(jì)測(cè)試用例時(shí),側(cè)重點(diǎn)在于接口模塊輸入/輸出項(xiàng)的正確性驗(yàn)證,根據(jù)接服務(wù)器接口處理方式,對(duì)各種接口進(jìn)行分類(lèi):

      第一類(lèi):條件判斷接口

      這類(lèi)接口在接收到請(qǐng)求數(shù)據(jù)后,會(huì)根據(jù)輸入?yún)?shù)進(jìn)行條件判斷,然后返回相應(yīng)結(jié)果碼,通常涉及條件判斷的接口有:用戶(hù)鑒權(quán)接口、升級(jí)狀態(tài)上報(bào)、密碼修改/重置等接口。因此輸入/輸出項(xiàng)驗(yàn)證的側(cè)重點(diǎn)主要集中在:

      1)判斷條件的驗(yàn)證

      要對(duì)判斷條件進(jìn)行驗(yàn)證,則需要知道接口是根據(jù)哪些輸入項(xiàng)來(lái)進(jìn)行判斷的,以密碼重置接口為例:

      密碼重置接口

      『接口功能』:用戶(hù)登錄之后發(fā)起找回密碼操作,用戶(hù)輸入郵箱信息后,游戲中心將向平臺(tái)服務(wù)器發(fā)送請(qǐng)求,平臺(tái)服務(wù)器將隨機(jī)為用戶(hù)生成新的密碼,發(fā)到用戶(hù)的郵箱中。

      『接口方向』:游戲中心—>平臺(tái)服務(wù)器

      『遵循協(xié)議』:HTTPS,請(qǐng)求消息使用Post方式

    參數(shù)名稱(chēng)

    參數(shù)類(lèi)型

    參數(shù)長(zhǎng)度

    說(shuō)明

    userID

    Int

    10

    用戶(hù)ID號(hào)

    email

    String

    60

    郵箱地址

    key

    String

    50

    接口名稱(chēng)

    version

    String

    8

    版本號(hào)



     響應(yīng)消息(sendMessageRes)

    參數(shù)名稱(chēng)

    參數(shù)類(lèi)型

    參數(shù)長(zhǎng)度

    說(shuō)明

    resultCode

    Int

    5

    結(jié)果返回碼,返回42000表示處理成功

      此接口根據(jù)輸入的userID、email參數(shù)來(lái)進(jìn)行數(shù)據(jù)正確性的判斷(key是接口名稱(chēng),如果錯(cuò)誤服務(wù)器將不會(huì)處理,version是版本號(hào),其值只是用于記錄,不參與判斷),設(shè)計(jì)接口測(cè)試用例時(shí),應(yīng)該首先對(duì)接口的判斷參數(shù)進(jìn)行驗(yàn)證,這些輸入項(xiàng)不能為空,然后利用等價(jià)類(lèi)劃分、邊界值方法來(lái)根據(jù)userID、email輸入項(xiàng)設(shè)計(jì)各種合法的數(shù)據(jù),驗(yàn)證接口是否可以正常處理。

      2)異常數(shù)據(jù)的響應(yīng)

      只考慮正常情況,而不考慮異常場(chǎng)景是無(wú)法保證接口功能運(yùn)行正常,對(duì)于密碼重置接口,用戶(hù)ID不存在、不合法,郵箱輸入格式錯(cuò)誤、用戶(hù)郵箱信息不存在或未激活就是測(cè)試時(shí)需要考慮的異常場(chǎng)景,設(shè)計(jì)這類(lèi)輸入值,并且檢查接口返回的響應(yīng)碼,響應(yīng)碼的正確才能保證客戶(hù)端根據(jù)異常情況來(lái)顯示相應(yīng)的提示信息。簡(jiǎn)而言之,條件判斷的接口其測(cè)試策略就是根據(jù)判斷條件來(lái)設(shè)計(jì)各種輸入值來(lái)檢驗(yàn)接口的功能。

      第二類(lèi):數(shù)據(jù)查詢(xún)接口

      這類(lèi)接口接收到請(qǐng)求數(shù)據(jù)后,首先會(huì)驗(yàn)證請(qǐng)求是否合法,然后會(huì)根據(jù)請(qǐng)求項(xiàng)查詢(xún)數(shù)據(jù)庫(kù)相應(yīng)表中數(shù)據(jù)返回給客戶(hù)端,通常涉及數(shù)據(jù)查詢(xún)的接口有:用戶(hù)基本資料/經(jīng)驗(yàn)值/賽事信息查詢(xún)、游戲列表獲取、在線(xiàn)人數(shù)查詢(xún)等接口。以用戶(hù)經(jīng)驗(yàn)值查詢(xún)接口為例:

      用戶(hù)經(jīng)驗(yàn)值查詢(xún)接口

      『接口功能』:用戶(hù)登錄游戲中心后,可以查詢(xún)自己每個(gè)游戲項(xiàng)目的經(jīng)驗(yàn)值信息,包括此項(xiàng)目的經(jīng)驗(yàn)值等級(jí)、等級(jí)稱(chēng)號(hào)、今日經(jīng)驗(yàn)值上限等。

      『接口方向』:游戲中心—>平臺(tái)服務(wù)器

      『遵循協(xié)議』:HTTP+XML,請(qǐng)求消息使用Post方式

    參數(shù)名稱(chēng)

    參數(shù)類(lèi)型

    參數(shù)長(zhǎng)度

    說(shuō)明

    userID

    Int

    10

    用戶(hù)ID號(hào)

    webkey

    String

    60

    當(dāng)前分配給指定登錄用戶(hù)的密鑰

    key

    String

    50

    接口名稱(chēng)

    version

    String

    8

    版本號(hào)

    isAll

    Int

    1

    是否查詢(xún)用戶(hù)所有的運(yùn)動(dòng)項(xiàng)目經(jīng)驗(yàn)值 0:是;1

    sportItemID

    String

    50

    運(yùn)動(dòng)項(xiàng)目ID,當(dāng)isAll=1時(shí)不能為空,指定查詢(xún)某個(gè)運(yùn)動(dòng)項(xiàng)目的經(jīng)驗(yàn)

      響應(yīng)消息(sendMessageRes)

    參數(shù)名稱(chēng)

    參數(shù)類(lèi)型

    參數(shù)長(zhǎng)度

    說(shuō)明

    sportItemID

    String

    50

    運(yùn)動(dòng)項(xiàng)目ID

    sumExp

    Int

    11

    運(yùn)動(dòng)經(jīng)驗(yàn)值總額

    expLevel

    Int

    3

    經(jīng)驗(yàn)值等級(jí)

    minExp

    Int

    11

    本級(jí)最小經(jīng)驗(yàn)值

    expOrder

    Int

    11

    經(jīng)驗(yàn)值排名

    maxExp

    Int

    11

    本級(jí)最大經(jīng)驗(yàn)值

    todayExp

    Int

    11

    今日獲得經(jīng)驗(yàn)值

    todayExpLimit

    Int

    11

    今日經(jīng)驗(yàn)值上限

    designation

    String

    30

    稱(chēng)號(hào)(對(duì)應(yīng)于經(jīng)驗(yàn)值)

    winCount

    Int

    11

    勝利場(chǎng)次

    lossCount

    Int

    11

    失敗場(chǎng)次

    isMaxExp

    Int

    1

    總經(jīng)驗(yàn)值是否達(dá)到最大 0 否;

      此接口首先會(huì)根據(jù)webkey來(lái)判斷請(qǐng)求是否合法,然后根據(jù)請(qǐng)求參數(shù)中的userID、isAll、sportItemID來(lái)查詢(xún)數(shù)據(jù)表中相應(yīng)數(shù)據(jù)。除了象條件判斷接口一樣根據(jù)判斷項(xiàng)webkey、請(qǐng)求參數(shù)userID、isAll、sportItemID設(shè)計(jì)合法/不合法和正常/異常測(cè)試值之外,還需要結(jié)合數(shù)據(jù)庫(kù)來(lái)對(duì)查詢(xún)結(jié)果進(jìn)行驗(yàn)證:

      1)是否根據(jù)正確的關(guān)聯(lián)數(shù)據(jù)表進(jìn)行查詢(xún);

      2)驗(yàn)證查詢(xún)結(jié)果是否從數(shù)據(jù)表中正確項(xiàng)中獲取,涉及到多表聯(lián)合查詢(xún)時(shí),不同表中的相同項(xiàng)設(shè)計(jì)不同測(cè)試數(shù)據(jù)進(jìn)行驗(yàn)證;

     3)修改查詢(xún)結(jié)果在數(shù)據(jù)表中對(duì)應(yīng)項(xiàng)中的數(shù)據(jù),使其為空值或客戶(hù)端相應(yīng)項(xiàng)的范圍值的最大和最小值,查看接口輸出是否正確。

      第三類(lèi):邏輯運(yùn)算接口

      這類(lèi)接口在收到請(qǐng)求數(shù)據(jù)之后,會(huì)進(jìn)行一系列邏輯運(yùn)算,然后根據(jù)處理結(jié)果更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),通常涉及邏輯運(yùn)算的接口有:比賽成績(jī)同步、商品支付、各種數(shù)據(jù)報(bào)表等接口。以比賽成績(jī)同步接口為例:

      比賽成績(jī)同步接口

      『接口功能』:游戲服務(wù)器將用戶(hù)每次的比賽成績(jī)傳給平臺(tái)服務(wù)器,平臺(tái)服務(wù)器根據(jù)用戶(hù)的比賽成績(jī)更新此用戶(hù)的賽事排名,然后存入數(shù)據(jù)庫(kù)。

      『接口方向』:游戲服務(wù)器—>平臺(tái)服務(wù)器

      『遵循協(xié)議』:HTTPS+XML,請(qǐng)求消息使用Post方式

    參數(shù)名稱(chēng)

    參數(shù)類(lèi)型

    參數(shù)長(zhǎng)度

    說(shuō)明

    userID

    Int

    10

    用戶(hù)i-dong號(hào)

    webKey

    String

    64

    當(dāng)前分配給指定登錄用戶(hù)的密鑰

    key

    String

    50

    接口名稱(chēng)

    version

    String

    8

    版本號(hào)

    gymkanaCode

    String

    30

    當(dāng)前比賽所參與的運(yùn)動(dòng)會(huì),該參數(shù)為空說(shuō)明只是普通用戶(hù)的比賽

    sportItemID

    String

    50

    游戲項(xiàng)目的ID

    sportItemName

    String

    50

    游戲項(xiàng)目名稱(chēng)

    sportServerID

    String

    50

    游戲服務(wù)器IP

    matchSystem

    Int

    3

    競(jìng)速跑賽制:

    100:1; 400:2; 800:4; 1500:8; 4×100:16;

    matchId

    String

    50

    該場(chǎng)次比賽唯一id

    record

    double

     

    當(dāng)前用戶(hù)成績(jī) (如record=8.123456)。非正常結(jié)束比賽時(shí),即isWinner34,如果是單人跑,isWinner=5record=-1

    unit

    String

    20

    成績(jī)單位

    isWinner

    Int

    2

    當(dāng)前用戶(hù)是否贏了0=,1=贏,2=未完成,3=主動(dòng)退出,4=被迫退出

    competitorID

    Int

    10

    對(duì)手idong號(hào)

    competitorRecord

    double

     

    當(dāng)前對(duì)手成績(jī),規(guī)則同record

    competitorIsWinner

    int

    2

    對(duì)手輸贏,規(guī)則同isWinner

    starttime

    String

    14

    開(kāi)始時(shí)間(yyyy-MM-dd HH:mm:ss)

    endtime

    String

    14

    結(jié)束時(shí)間(yyyy-MM-dd HH:mm:ss)

      響應(yīng)消息(sendMessageRes)

    字體:        | 上一篇 下一篇 | 打印  | 我要投稿 

    參數(shù)名稱(chēng)

    參數(shù)類(lèi)型

    參數(shù)長(zhǎng)度

    說(shuō)明

    resultCode

    Int

    5

    結(jié)果返回碼,返回42000表示處理成功

    score

    Int

    11

    本次得分

    preRank

    Int

    11

    賽前積分在賽后的排名

    rank

    Int

    11

    積分排名

    upRankFlag

    Int

    1

    排名上升:1;排名不變:0;排名下降:-1

    isUpLevel

    Int

    1

    經(jīng)驗(yàn)值是否升級(jí) 0 否;

    exp

    Int

    11

    本次增加的經(jīng)驗(yàn)值

    expLevel

    Int

    3

    經(jīng)驗(yàn)值等級(jí)

    designation

    String

    30

    稱(chēng)號(hào)(對(duì)應(yīng)于經(jīng)驗(yàn)值)

    cPreRank

    Int

    11

    對(duì)手賽前積分在賽后的排名

    cRank

    Int

    11

    對(duì)手賽后積分排名

    cUpRankFlag

    Int

    1

    對(duì)手排名上升:1;排名不變:0;排名下降:-1

    encourageWord

    String

    15

    鼓勵(lì)語(yǔ)句

      此接口比數(shù)據(jù)查詢(xún)接口又更加復(fù)雜,除了用條件判斷和數(shù)據(jù)查詢(xún)類(lèi)接口的策略對(duì)此接口進(jìn)行測(cè)試用例設(shè)計(jì)之外,還需要驗(yàn)證對(duì)接口的算法規(guī)則進(jìn)行檢查,因?yàn)榇私涌谏婕案鶕?jù)用戶(hù)比賽成績(jī)(record)進(jìn)行排名然后返回其得分及排名情況(score、rank、upRankFlag、exp),通過(guò)對(duì)相關(guān)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行查看方式,接口算法規(guī)則驗(yàn)證包括:

      1)用戶(hù)勝利、失敗、中途主動(dòng)/被動(dòng)退出、規(guī)定時(shí)間內(nèi)未完成比賽情況下,此場(chǎng)比賽得分(scroe)是否正確;

      2)用戶(hù)比賽成績(jī)比上次成績(jī)花費(fèi)時(shí)間短、長(zhǎng)、持平情況下,排名情況(upRankFlag)是否正確;

      3)用戶(hù)比賽成績(jī)處于第一名、最后一名、比上次成績(jī)花費(fèi)時(shí)間短/長(zhǎng)/持平情況下,用戶(hù)積分排名(rank)是否正確;

      4)用戶(hù)勝利、失敗、中途主動(dòng)/被動(dòng)退出、規(guī)定時(shí)間內(nèi)未完成比賽,并且用戶(hù)經(jīng)驗(yàn)值在各種經(jīng)驗(yàn)等級(jí)范圍下,經(jīng)驗(yàn)值根據(jù)得分進(jìn)行計(jì)算的公式是否正確。

      邏輯運(yùn)算接口由于還涉及插入或更新數(shù)據(jù)庫(kù)操作,因此測(cè)試時(shí)還需要考慮數(shù)據(jù)庫(kù)特性,如數(shù)據(jù)精度問(wèn)題,在MySQL數(shù)據(jù)庫(kù)中,如果是浮點(diǎn)型數(shù)據(jù),存入時(shí)會(huì)有精度誤差(131072.32插入float(10,2)類(lèi)型的數(shù)據(jù)會(huì)變?yōu)?31072.31),因此對(duì)于需要用于金額計(jì)算、數(shù)據(jù)統(tǒng)計(jì)、成績(jī)比較的數(shù)據(jù),最好使用定點(diǎn)型。

      最后服務(wù)器接口的測(cè)試如果有足夠條件的話(huà),還需要通過(guò)白盒測(cè)試來(lái)對(duì)接口代碼做進(jìn)一步的測(cè)試,通過(guò)編寫(xiě)關(guān)鍵代碼的測(cè)試樁,可以有效查找將字符數(shù)組當(dāng)成字符串使用造成的讀越界這類(lèi)不易通過(guò)黑盒測(cè)試發(fā)現(xiàn)的BUG。接下來(lái)的工作就是如何通過(guò)測(cè)試工具來(lái)執(zhí)行服務(wù)器接口功能測(cè)試。

    posted on 2011-10-31 11:51 順其自然EVO 閱讀(519) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 測(cè)試學(xué)習(xí)專(zhuān)欄

    <2011年10月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲美女激情视频| 亚洲狠狠婷婷综合久久久久| 亚洲成人福利在线| 日韩精品无码免费一区二区三区| 亚洲午夜福利AV一区二区无码| 人成午夜免费大片在线观看| 亚洲国产小视频精品久久久三级| 免费人成动漫在线播放r18| 国产乱子伦精品免费女| 无人视频在线观看免费播放影院| 国产公开免费人成视频| 免费福利资源站在线视频| 免费人成视频在线观看视频| 无码人妻一区二区三区免费视频| 久久久亚洲精品蜜桃臀| 成全在线观看免费观看大全| 亚洲高清在线观看| 成人AV免费网址在线观看| 亚洲综合欧美色五月俺也去| 国产一级做a爱免费视频| eeuss草民免费| 亚洲国产综合专区电影在线| 无码国产精品一区二区免费虚拟VR| 亚洲成_人网站图片| 国产免费人视频在线观看免费| 一级特黄色毛片免费看| 久久久亚洲精品国产| 无码人妻一区二区三区免费手机| 亚洲GV天堂无码男同在线观看| 久久精品国产亚洲AV不卡| 91香蕉国产线在线观看免费 | 黄色网站软件app在线观看免费| 亚洲国产高清视频| 在线观看免费宅男视频| a毛片成人免费全部播放| 亚洲黄色在线观看网站| 日本大片在线看黄a∨免费| 福利免费在线观看| 亚洲1234区乱码| 美腿丝袜亚洲综合| 亚洲欧洲免费无码|