馮亞玲 徐鶯



摘要:針對傳統(tǒng)API接口測試用例數(shù)據(jù)量大、用例和腳本管理繁瑣以及國產(chǎn)化環(huán)境下缺乏通用測試工具的問題,本文通過對API接口自動化測試技術(shù)特點和國產(chǎn)化應(yīng)用技術(shù)特點的分析,設(shè)計了基于Excel用例模板的API接口通用自動化測試工具,采用Python語言開發(fā)代碼,將測試用例、測試數(shù)據(jù)和測試執(zhí)行的代碼分層開發(fā),實現(xiàn)了用例數(shù)據(jù)驅(qū)動API接口自動化測試在國產(chǎn)化環(huán)境下的應(yīng)用。
關(guān)鍵詞:API接口;用例數(shù)據(jù)驅(qū)動;自動化測試;國產(chǎn)化環(huán)境;Python語言
中圖分類號:TP312 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2018)11-0097-05
0 引言
API接口測試是軟件測試中非常普遍而重要的測試類型,能夠覆蓋業(yè)務(wù)規(guī)則,體現(xiàn)系統(tǒng)行為[1],測試可信度高、效果好。API接口測試要求測試工程師了解軟件的設(shè)計及接口的定義,針對功能、性能和穩(wěn)定性等方面要求,編寫相應(yīng)的測試代碼、構(gòu)造各種測試用例進行測試。
每一個API接口都有其自身特點,組成的業(yè)務(wù)邏輯復(fù)雜,在測試過程中,需要針對每個API接口設(shè)計一套測試腳本,模擬各種正常、異常的測試參數(shù)[2],比對實際結(jié)果與期望結(jié)果的一致性,測試工作量大,腳本和用例的維護工作繁瑣,要求測試人員始終保持高度謹(jǐn)慎;同時,軟件API接口使用環(huán)境種類繁多,包括X86平臺,國產(chǎn)化平臺,Windows系統(tǒng),國產(chǎn)化操作系統(tǒng)等,要求API接口測試工具能滿足國產(chǎn)化需求,兼容各種主流平臺環(huán)境。如果能實現(xiàn)用例驅(qū)動API接口自動化測試在國產(chǎn)化環(huán)境下的應(yīng)用,既可以減輕手工測試的強度,又可以滿足國產(chǎn)化環(huán)境測試需求,提高接口測試的自動化水平和軟件質(zhì)量[3]。
1 Python與自動化和國產(chǎn)化
Python可定義為面向?qū)ο蟮哪_本語言,開發(fā)和迭代的效率極高[4];它內(nèi)置了眾多支持一系列應(yīng)用級編程任務(wù)的標(biāo)準(zhǔn)庫,可通過自行開發(fā)的庫或眾多第三方的擴展庫進行擴展。Python腳本可通過靈活的集成機制輕松地與應(yīng)用程序的其他部分進行通信,Python可以使用C和C++的庫,可以被C和C++的程序調(diào)用,可以與Java組件集成。Python所具有的質(zhì)量和效率優(yōu)點,以其付出更少的精力完成更多的任務(wù)而成為自動化測試開發(fā)的首選語言。
Python的標(biāo)準(zhǔn)實現(xiàn)是由可移植的ANSIC編寫,除了語言解釋器本身以外,Python自帶的標(biāo)準(zhǔn)庫和模塊在實現(xiàn)上也盡可能地考慮了跨平臺的可移植性[5]。Python程序自動編譯成可移植的字節(jié)碼,這些字節(jié)碼在已安裝兼容版本Python的平臺上運行的結(jié)果都是相同的。這意味著Python程序的核心語言和標(biāo)準(zhǔn)庫可以在Linux、Windows和其他帶有Python解釋器的平臺上無差別運行,能很好的滿足兼容各種平臺環(huán)境的測試需求。
2 API自動化測試應(yīng)用工具的特性分析
API自動化測試應(yīng)用工具是為了實現(xiàn)適用于各種主流平臺的軟件接口自動化測試需求,它應(yīng)該包括用例驅(qū)動性、API接口通用性、平臺兼容性等需求特性。
2.1 用例驅(qū)動性
用例驅(qū)動性指的是用例數(shù)據(jù)驅(qū)動API接口自動化測試。API接口除了實現(xiàn)其本身的功能之外,還與其他接口存在上下文關(guān)系,多變的接口關(guān)系組成各種業(yè)務(wù)測試邏輯。本質(zhì)上測試執(zhí)行的每一步都只是一個接口,可以抽象出執(zhí)行邏輯[6],使測試的執(zhí)行邏輯與業(yè)務(wù)邏輯無關(guān),達(dá)到測試執(zhí)行腳本與接口業(yè)務(wù)邏輯關(guān)系解耦合的目的。因此,測試人員根據(jù)用例模板進行測試用例數(shù)據(jù)設(shè)計,體現(xiàn)接口調(diào)用順序和參數(shù)關(guān)系,無需關(guān)心測試腳本的調(diào)用和執(zhí)行,由測試工具根據(jù)用例數(shù)據(jù)進行接口函數(shù)識別、接口參數(shù)識別和封裝,通用化透明化地進行測試業(yè)務(wù)流程執(zhí)行。
2.2 API接口通用性
API接口通用性指的是API自動化測試應(yīng)用工具適用于所有API接口類型的DLL庫和.SO庫的接口測試,滿足功能、性能和穩(wěn)定性測試需求。軟件API接口雖然繁多,但接口的輸入輸出測試、接口的異常參數(shù)處理重復(fù)性較強[7],接口測試的結(jié)果易于形式化處理,測試用例間存在較大的共性,可對這些用例進行模板定制,形成模板化可通用的測試工具。
2.3 平臺兼容性
平臺兼容性指的是API自動化測試應(yīng)用工具可以在Linux、Windows和其他帶有Python解釋器的平臺上無差別運行,且能方便地在測試環(huán)境中進行快捷部署。
3 API自動化測試應(yīng)用工具的框架研究與設(shè)計
在實際系統(tǒng)中,針對API接口測試形成模板化可重用的測試架構(gòu),可以解決測試自動化問題,降低自動化測試腳本設(shè)計的復(fù)雜度,提高測試工具的通用性和可擴展性,真正帶來提高效率的價值。
3.1 框架設(shè)計
API自動化測試應(yīng)用工具的主要目標(biāo)是接收測試用例,轉(zhuǎn)換成測試數(shù)據(jù)進行測試執(zhí)行,最終輸出測試結(jié)果。
根據(jù)API自動化測試應(yīng)用工具的特性分析,測試框架采用分層結(jié)構(gòu)[8],由測試輸入層、測試數(shù)據(jù)層、測試執(zhí)行層、測試輸出層組成,每一層通過各功能模塊實現(xiàn)自己特定的任務(wù),各層之間根據(jù)需要去進行調(diào)用。各功能模塊之間的交互關(guān)系及其對應(yīng)于框架的分層關(guān)系如圖1所示。
3.2 測試輸入層
包含數(shù)據(jù)讀取模塊,用于接收測試用例文件、頭文件和測試參數(shù)等數(shù)據(jù)輸入。
3.3 測試數(shù)據(jù)層
包含數(shù)據(jù)識別模塊、數(shù)據(jù)處理模塊、參數(shù)封裝模塊、測試場景構(gòu)建模塊,是整個測試程序的入口,它實現(xiàn)測試輸入數(shù)據(jù)解析,完成測試數(shù)據(jù)轉(zhuǎn)換和測試場景構(gòu)建,調(diào)用測試執(zhí)行腳本,輸出日志記錄。
3.4 測試執(zhí)行層
包含功能測試模塊、性能測試模塊、穩(wěn)定性測試模塊,用于執(zhí)行測試數(shù)據(jù),對接口的調(diào)用進行封裝,根據(jù)測試場景完成測試執(zhí)行,并輸出測試結(jié)果。
3.5 測試輸出層
包含測試結(jié)果處理模塊、測試日志記錄模塊,用于收集測試結(jié)果和測試日志記錄,以文件的形式輸出給測試人員。
4 API自動化測試應(yīng)用工具的實現(xiàn)與應(yīng)用
在具體的測試代碼開發(fā)過程中,主要采用分層的思想編寫代碼,每一層完成的任務(wù)由其包含的功能模塊實現(xiàn),下面詳細(xì)介紹每層代碼的開發(fā)實現(xiàn)。
4.1 測試輸入層
測試輸入層主要完成數(shù)據(jù)讀取模塊的功能。用于讀取測試用例文件、頭文件和測試參數(shù)數(shù)據(jù)。
4.1.1 用例文件數(shù)據(jù)
測試人員根據(jù)Excel用例模板設(shè)計測試用例。用例模板如圖2所示。
在用例模塊中將調(diào)用接口的函數(shù)名、參數(shù)類型、參數(shù)值、參數(shù)輸入輸出關(guān)系和調(diào)用順序按定義進行描述:
(1)函數(shù)說明列表。用例集中需要調(diào)用的接口函數(shù)列表;(2)測試用例。測試人員針對被測接口函數(shù)對象設(shè)計的用例,包括函數(shù)調(diào)用順序、參數(shù)值、參數(shù)輸入輸出關(guān)系等;(3)標(biāo)志區(qū)域。區(qū)分被測接口和關(guān)聯(lián)接口,明確測試用例標(biāo)號;(4)函數(shù)名。接口的函數(shù)名;(5)函數(shù)參數(shù)說明。接口函數(shù)的參數(shù)個數(shù)和參數(shù)類型,以及在該用例集中不變化的參數(shù)值。
4.1.2 頭文件和測試參數(shù)數(shù)據(jù)
頭文件數(shù)據(jù)包括接口庫包含的基本數(shù)據(jù)類型和結(jié)構(gòu)體嵌套數(shù)據(jù)類型等參數(shù)信息。
測試參數(shù)是構(gòu)建測試場景需要的配置信息,包括用例文件路徑、被測接口庫路徑等相對固定的參數(shù),還包括測試分支選擇、并發(fā)用戶數(shù)、多進程/多線程啟動、測試運行時間、測試退出條件等參數(shù)信息,其中,變化的參數(shù)可通過配置文件或命令行參數(shù)的方式輸入。例如:
casename=c:\\example.xls#用例表路徑
testcase=0#功能測試0,性能測試1,穩(wěn)定性測試2
methodflag=0#線程(0)/進程(1)執(zhí)行
usernum=20#并發(fā)用戶數(shù)
4.2 測試數(shù)據(jù)層
測試數(shù)據(jù)層主要完成數(shù)據(jù)識別模塊、數(shù)據(jù)處理模塊、參數(shù)封裝模塊和測試場景構(gòu)建模塊的功能。將讀取的用例文件數(shù)據(jù)和配置參數(shù)數(shù)據(jù)進行識別,處理為相應(yīng)的測試數(shù)據(jù)。
4.2.1 數(shù)據(jù)識別模塊和數(shù)據(jù)處理模塊
數(shù)據(jù)識別模塊的功能是將讀取的數(shù)據(jù)按照事先制定的規(guī)則識別為有特定意義的用例數(shù)據(jù),將輸入數(shù)據(jù)和信息字段建立對應(yīng)關(guān)系。數(shù)據(jù)處理模塊將識別出來的用例數(shù)據(jù)處理為可執(zhí)行的測試數(shù)據(jù)。
(1)識別用例文件中接口函數(shù)描述說明,建立接口函數(shù)與參數(shù)個數(shù)、參數(shù)類型、參數(shù)值之間的關(guān)聯(lián)關(guān)系;如表1所示。
ConnectDev函數(shù)是pre準(zhǔn)備階段執(zhí)行的函數(shù),有三個參數(shù),參數(shù)類型依次是UINT32、pHDEV、UINT8,參數(shù)值在該測試集中不變化,分別是0、out1、0;其中,out1表示該參數(shù)是輸出參數(shù),輸出值需保存供其它函數(shù)調(diào)用。OpenApp函數(shù)類似。
GenerateKey函數(shù)是act被測階段函數(shù),有三個參數(shù),參數(shù)類型依次是pHPIPE、WORKKEYATTR、pHANDLE,參數(shù)值在該測試集中變化,變化在測試用例中體現(xiàn);
(2)識別接口函數(shù)執(zhí)行次數(shù)、預(yù)期結(jié)果,不同接口函數(shù)之間的參數(shù)輸入輸出關(guān)系、調(diào)用順序等。如表2所示。
測試用例1,GenerateKey函數(shù)執(zhí)行完后執(zhí)行DestroyKey函數(shù),GenerateKey函數(shù)的參數(shù)值依次為ref_out2、(2,1,0,16)、out3,執(zhí)行次數(shù)為1次,預(yù)期結(jié)果默認(rèn)為0;DestroyKey函數(shù)的參數(shù)值依次為ref_out2、ref_out3,執(zhí)行次數(shù)為1次,預(yù)期結(jié)果默認(rèn)為0。GenerateKey函數(shù)的ref_out2參數(shù)表示該參數(shù)的輸入值需調(diào)用out2參數(shù)的輸出值,out3輸出值供DestroyKey函數(shù)的ref_out3參數(shù)調(diào)用。
(3)識別基本數(shù)據(jù)類型和結(jié)構(gòu)體嵌套數(shù)據(jù)類型等,使接口函數(shù)的參數(shù)類型和參數(shù)值建立關(guān)聯(lián)關(guān)系。如:
GenerateKey函數(shù)三個參數(shù)類型依次是pHPIPE、WORKKEYATTR、pHANDLE,對應(yīng)的數(shù)據(jù)類型為指針c_void_p、結(jié)構(gòu)體class WORKKEYATTR、指針c_void_p,對應(yīng)的參數(shù)值是ref_out2、(2,1,0,16)、out3。在處理過程中,參數(shù)1按指針類型引用out2的輸出值,參數(shù)2按結(jié)構(gòu)體WORKKEYATTR的各字段類型對(2,1,0,16)的每個值進行賦值,參數(shù)3按指針類型將輸出值保存在out3中。
(4)識別測試參數(shù)信息,明確測試場景構(gòu)建數(shù)據(jù)。將讀入的配置參數(shù)數(shù)據(jù)與測試分支選擇testcase、并發(fā)用戶數(shù)usernum、多進程/多線程啟動methodflag、測試運行時間runtime、測試退出條件exitflag等測試場景構(gòu)建信息字段建立對應(yīng)關(guān)系。
API自動化測試應(yīng)用工具提供了通用化的用例數(shù)據(jù)識別和處理模型,對接口函數(shù)的每個參數(shù)都根據(jù)參數(shù)類型和參數(shù)值進行賦值,對接口函數(shù)之間的調(diào)用順序和參數(shù)引用建立邏輯關(guān)系。
4.2.2 參數(shù)封裝模塊
將經(jīng)處理后的測試數(shù)據(jù)封裝為接口函數(shù)調(diào)用可執(zhí)行的參數(shù)。
傳統(tǒng)的API接口測試工具中,每一個API接口對應(yīng)一套測試腳本,原因在于接口之間存在調(diào)用關(guān)系、參數(shù)之間存在引用關(guān)系,接口函數(shù)的形參和實參需一一對應(yīng),不同的接口含有不同個數(shù)和類型的形參,這就導(dǎo)致了針對每個接口函數(shù)都需要測試腳本去做形參和實參的匹配,不同接口之間測試腳本不能復(fù)用。
本文實現(xiàn)的API自動化測試應(yīng)用工具提供了可復(fù)用的參數(shù)封裝模塊,經(jīng)過用例數(shù)據(jù)識別和處理后,接口函數(shù)的每個形參都處理為對應(yīng)的實參,對接口函數(shù)實參的封裝采用Python提供的*args可變位置參數(shù)實現(xiàn)。即多個實參按照位置傳值,放到一個元組里面,以*開頭,可以傳遞多個參數(shù)。如:
libc=windll.LoadLibrary(dllpath)#加載被測dll庫
def dealparam:#處理函數(shù)參數(shù)并封裝
#識別函數(shù)funcname
#識別函數(shù)參數(shù)個數(shù)和參數(shù)類型
for i in range(paramlen):#根據(jù)參數(shù)類型和參數(shù)值賦值
param[i] = value[i]
execparam.append(param[i]) #封裝參數(shù)
ret=getattr(libc,funcname)(*execparam)#接口封裝調(diào)用
通用化的接口參數(shù)封裝模塊使不同的接口函數(shù)可以使用同一模板實現(xiàn)參數(shù)封裝,不再需要定制化的測試腳本。
4.2.3 測試場景構(gòu)建模塊
測試場景構(gòu)建模塊根據(jù)測試參數(shù)構(gòu)建測試場景。選擇功能、性能或穩(wěn)定性測試分支,采用多進程/多線程的方式啟動并發(fā)測試,線程/進程數(shù)由并發(fā)用戶數(shù)決定,到達(dá)運行時間后或者測試人員選擇退出測試。
testcase=1#功能測試0,性能測試1,穩(wěn)定性測試2
import MyProcess,MyThread#導(dǎo)入多進程/多線程庫
methodflag=0#選擇執(zhí)行方式,多進程方式=0,多線程方式=1
for i in range(usernum):#根據(jù)并發(fā)用戶數(shù)啟動線程/進程數(shù)
#將運行時間和測試退出方式通過參數(shù)傳遞給執(zhí)行函數(shù)
p = MyProcess(test1,(execlist,exit_flag,run_time,row,timeflag,j,tmpparam,))
processes.append(p)
4.3 測試執(zhí)行層
測試執(zhí)行層主要完成功能測試模塊、性能測試模塊和穩(wěn)定性測試模塊的功能。功能、性能和穩(wěn)定性測試的用例文件可復(fù)用,根據(jù)不同的測試場景進行不同測試分支的執(zhí)行。
4.3.1 功能測試模塊
功能測試模塊通過調(diào)用接口庫驗證函數(shù)的功能是否與描述一致,測試執(zhí)行的實際返回值與期望返回值是否一致,并返回測試結(jié)果。測試用例如表3所示。
該用例集的測試對象為對稱加密函數(shù)Encrypt,不僅需要驗證加密函數(shù)Encrypt的執(zhí)行結(jié)果,也需要驗證加密結(jié)果的正確性。用例1設(shè)計的測試內(nèi)容為產(chǎn)生密鑰GenerateKey->加密Encrypt->解密Decrypt->銷毀密鑰DestroyKey->驗證加解密正確性,即GenerateKey輸出結(jié)果為密鑰句柄out3,Encrypt利用密鑰out3對96字節(jié)的數(shù)據(jù)(96,1)進行加密,輸出密文out4,Decrypt利用密鑰out3對密文out4進行解密,輸出明文out5,加解密完成后銷毀密鑰out3,為了驗證加解密過程的正確性,將解密輸出的明文out5與原始數(shù)據(jù)(96,1)進行比較。
libc=windll.LoadLibrary(dllpath)#加載被測dll庫
#識別函數(shù)列表funclist
for i in range(funclist):
dealparam(func[i])#處理列表中每個函數(shù)的參數(shù)并封裝
ret=getattr(libc,func[i])(*execparam)#接口封裝調(diào)用
if ret != respectexec:
break#如果函數(shù)執(zhí)行結(jié)果不符合預(yù)期,退出測試
#函數(shù)執(zhí)行結(jié)果符合預(yù)期,進行輸出結(jié)果有效性檢查
#如:判斷ref_out5 是否等于96字節(jié)的原始數(shù)據(jù)(96,1)
#返回測試結(jié)果
4.3.2 性能測試模塊
性能測試模塊驗證接口在各測試場景下的性能指標(biāo)以及性能指標(biāo)是否與要求一致。測試用例如表4所示。
該用例集的測試對象為對稱加密函數(shù)Encrypt在不同測試場景下的性能指標(biāo),性能測試過程中Encrypt是被測接口對象,GenerateKey、Decrypt、DestroyKey是關(guān)聯(lián)接口,測試執(zhí)行時關(guān)聯(lián)接口執(zhí)行一次,輸出和Encrypt有引用關(guān)系的參數(shù)值,重點關(guān)心被測接口在測試場景下的成功執(zhí)行次數(shù)(執(zhí)行失敗時整個測試指標(biāo)無參考意義)。如:
測試配置參數(shù)為testcase=1、usernum=20、methodflag=1、runtime=5、exitflag=0,即Encrypt函數(shù)在多進程啟動條件下,20個并發(fā)用戶數(shù)運行5min的性能指標(biāo),達(dá)到運行時間后退出測試。測試配置參數(shù)支持自定義。
libc=windll.LoadLibrary(dllpath)#加載被測dll庫
for i in range(funclist):
dealparam(func[i])#處理列表中每個函數(shù)的參數(shù)并封裝
#構(gòu)建性能測試場景
#執(zhí)行關(guān)聯(lián)接口,保存輸出參數(shù)
if time<runtime:#執(zhí)行被測接口
ret=getattr(libc,tarfunc)(*execparam)#被測接口封裝調(diào)用
if ret != respectexec:
writelog(‘loginfo.txt,loginfo)#記錄錯誤日志
break#如果函數(shù)執(zhí)行結(jié)果不符合預(yù)期,記錄日志后退出測試
totalnum+=1#統(tǒng)計執(zhí)行成功次數(shù)
#返回性能測試結(jié)果
4.3.3 穩(wěn)定性測試模塊
穩(wěn)定性測試模塊驗證在各測試場景下接口本身的穩(wěn)定性以及在業(yè)務(wù)邏輯下接口組合關(guān)系的穩(wěn)定性。測試用例如表5所示。
(1)接口本身的穩(wěn)定性。當(dāng)該用例集的測式對象為對稱加密函數(shù)Encrypt在不同測試場景下的穩(wěn)定性時,代碼實現(xiàn)與性能測試模塊相似,關(guān)心Encrypt接口在測試場景下的穩(wěn)定性,與性能測試的區(qū)別在于穩(wěn)定性測試執(zhí)行過程中記錄執(zhí)行失敗的錯誤信息,不強制退出測試。(2)業(yè)務(wù)邏輯的穩(wěn)定性。當(dāng)該用例集的測式對象為加解密業(yè)務(wù)在不同測試場景下的穩(wěn)定性時,代碼流程相似,在測試運行時間內(nèi)反復(fù)執(zhí)行整個加解密業(yè)務(wù)流程,不再只針對某一個測試接口對象。
4.4 測試輸出層
測試輸出層主要完成測試結(jié)果處理模塊和測試日志記錄模塊的功能。
4.4.1 測試結(jié)果處理模塊
測試結(jié)果處理模塊負(fù)責(zé)測試結(jié)果的收集、處理和展示。
(1)功能測試結(jié)果。功能測試結(jié)果包括接口執(zhí)行結(jié)果、接口功能有效性結(jié)果以及綜合前兩項指標(biāo)所得的用例通過結(jié)果,三項結(jié)果回寫至Excel用例文件。如表6所示。(2)性能測試結(jié)果。性能測試結(jié)果返回被測接口對象在測試場景下的執(zhí)行總次數(shù),結(jié)果回寫至Excel用例文件。如表7所示。(3)穩(wěn)定性測試結(jié)果。穩(wěn)定性測試結(jié)果包括被測接口對象或業(yè)務(wù)對象在測試場景下的執(zhí)行總次數(shù)、失敗次數(shù),測試結(jié)果以txt文件展示。如表8所示。
tarfunc2(業(yè)務(wù)1)的總次數(shù)為447796,錯誤次數(shù)為0,執(zhí)行時間3600min
業(yè)務(wù)2的總次數(shù)為125202,錯誤次數(shù)為0,執(zhí)行時間3600min
業(yè)務(wù)3的總次數(shù)為572596,錯誤次數(shù)為0,執(zhí)行時間3600min
(其中,一行用例代表一個業(yè)務(wù)邏輯。)
4.4.2 測試日志記錄模塊
測試日志記錄模塊負(fù)責(zé)測試日志記錄和工具運行日志記錄。記錄內(nèi)容包括用例執(zhí)行詳細(xì)信息、測試執(zhí)行失敗的錯誤信息等。
用例執(zhí)行詳細(xì)信息包括執(zhí)行的用例文件信息、測試集(用例表)信息、測試函數(shù)信息(用例行)等;錯誤信息包括出錯函數(shù)名信息、錯誤碼信息、執(zhí)行失敗時間信息等。
5 結(jié)語
本文研究了API接口自動化測試方法,分析了用例數(shù)據(jù)通用化解析、用例驅(qū)動自動化測試和國產(chǎn)化環(huán)境應(yīng)用等技術(shù),提出了一種API接口自動化測試框架,解決了用例數(shù)據(jù)轉(zhuǎn)換、接口參數(shù)封裝和接口映射調(diào)用的難題,最后采用Python語言實現(xiàn)了用例驅(qū)動API接口自動化測試在國產(chǎn)化環(huán)境下的應(yīng)用工具。該工具在實際項目中進行了應(yīng)用,可滿足X86平臺和飛騰、龍芯、兆芯等國產(chǎn)化平臺下的API接口功能測試、性能測試和穩(wěn)定性測試需求,在測試效率的提高和測試成本的降低方面取得了良好的效果[9]。
參考文獻(xiàn)
[1]林萍.數(shù)據(jù)分層的接口自動化測試框架設(shè)計與應(yīng)用[J].信息技術(shù),2016(5):37-40.
[2]吳振宇,顧曉明,李翔.協(xié)議可擴展的軟件接口測試工具的研究與實現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2017(12):58-60.
[3]蘇春梅,何劍偉,奚宏明,et al. 基于XML的通用數(shù)據(jù)接口測試工具[J].兵工自動化,2012,31(8):72-77.
[4]Wesley Chun.Python核心編程[M].人民郵電出版社,2016.
[5]楊清玉,李金麗,陳吉蘭,et al.HTTP接口自動化測試方法研究[J].微型機與應(yīng)用,2016,35(18):22-25.
[6]余永忠,張哲軍,陳華軍.IEC61970與IEC61968標(biāo)準(zhǔn)接口自動化測試系統(tǒng)研發(fā)[J].南方電網(wǎng)技術(shù),2013,7(5):61-64.
[7]范典華,潘芳蕊.自動化測試在業(yè)務(wù)支撐系統(tǒng)接口測試中的應(yīng)用設(shè)計[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2012,25(4):63-67.
[8]郝曉曉,張衛(wèi)豐.基于XML的SDK自動化測試框架的設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展, 2010,20(4):101-104.
[9]蔡春梅.基于pyUnit的OTS REST接口自動化測試設(shè)計與實現(xiàn)[J].信息技術(shù)與標(biāo)準(zhǔn)化,2017(4).
Application of Case-Driven Automated Testing in Localized Environment
FENG Ya-ling, XU Ying
(No.30 Institute of CETC, Chengdu Sichuan? 610041)
Abstract:Traditional API interface testing has the following disadvantages: a large number of test cases, management of test cases and scripts is cumbersome, and lack of common test tools in the localized environment. In view of the above shortcomings, this paper analyzes the characteristics of the API interface automation test technology and the characteristics of the localized application technology. The paper designed an API automation universal test tool based on Excel test case template,? layered the development of test cases, test data, and test execution and code by using Python language. This paper realized the technology that the test case data driven API interface automatic test, successfully applied to the domestic environment.
Key words:API; case data-driven; automated testing; localized environment; Python