本文小編為大家詳細(xì)介紹“Java如何編寫接口測(cè)試”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Java如何編寫接口測(cè)試”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
創(chuàng)新互聯(lián)公司于2013年開(kāi)始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元屯留做網(wǎng)站,已為上家服務(wù),為屯留各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:135182197921、接口測(cè)試
接口:主要是子模塊或者子系統(tǒng)間交互并相互作用的部分。
這里說(shuō)的接口是廣義的,客戶端與后臺(tái)服務(wù)間的協(xié)議;插件間通信的接口;模塊間的接口;再小到一個(gè)類提供的方法;都可以理解為接口。因此,可以分析,系統(tǒng)間的接口包含三部分:輸入、處理邏輯、輸出。
接口測(cè)試:是指針對(duì)模塊或系統(tǒng)間接口進(jìn)行的測(cè)試。
2、應(yīng)該怎么分析一個(gè)接口?
獲取接口文檔:和黑盒測(cè)試一樣,我們是從需求文檔中去挖掘測(cè)試點(diǎn),設(shè)計(jì)測(cè)試用例。對(duì)于接口測(cè)試,同樣是有對(duì)應(yīng)的接口文檔的。
分析接口文檔,提取測(cè)試點(diǎn):
1)輸入: 接受哪些參數(shù)、參數(shù)的類型、可選參數(shù)和必選參數(shù)等;根據(jù)輸入?yún)?shù)采用等價(jià)類、邊界值分析法等進(jìn)行設(shè)計(jì);
2)業(yè)務(wù)邏輯:對(duì)于一個(gè)接口,不同的輸入?yún)?shù)或組合,流程或狀態(tài)的轉(zhuǎn)移是不同,可以根據(jù)業(yè)務(wù)邏輯畫出流程圖或狀態(tài)轉(zhuǎn)移圖,確保每種狀態(tài)至少被訪問(wèn)了一次;
3)輸出:根據(jù)文檔規(guī)定的輸出,反向設(shè)計(jì)測(cè)試數(shù)據(jù),使所有的輸出狀態(tài)都被包含了;
測(cè)試用例:同時(shí)對(duì)輸入、業(yè)務(wù)邏輯、輸出進(jìn)行考慮時(shí),肯定會(huì)存在用例的冗余,在大限度覆蓋業(yè)務(wù)功能和規(guī)則下,選取最優(yōu)用例集合。同時(shí),需要考慮異常數(shù)據(jù)和場(chǎng)景。
3、怎么確定用例的覆蓋率?
在沒(méi)有特殊要求的情況下,至少需要考慮以下內(nèi)容:
1)業(yè)務(wù)功能覆蓋是否完整
2)業(yè)務(wù)規(guī)則覆蓋是否完整
3)參數(shù)驗(yàn)證是否達(dá)到要求(邊界、業(yè)務(wù)規(guī)則)
4)接口異常場(chǎng)景覆蓋是否完整
如果接口需求還包含性能或者安全要求,還要對(duì)接口進(jìn)行性能測(cè)試和安全測(cè)試,就需要考慮:性能指標(biāo)是否滿足要求、安全指標(biāo)是否滿足要求。
4、接口測(cè)試發(fā)現(xiàn)的典型問(wèn)題
接口測(cè)試經(jīng)常遇到的bug和問(wèn)題,如下:
(1)傳入?yún)?shù)處理不當(dāng),導(dǎo)致程序crash;
(2)類型溢出,導(dǎo)致數(shù)據(jù)讀出和寫入不一致;
(3)因?qū)ο髾?quán)限未進(jìn)行校驗(yàn),可以訪問(wèn)其他用戶敏感信息;
(4)狀態(tài)處理不當(dāng),導(dǎo)致邏輯出現(xiàn)錯(cuò)亂;
(5)邏輯校驗(yàn)不完善,可利用漏洞獲取非正當(dāng)利益等。
5、如何編寫接口測(cè)試用例?
創(chuàng)建接口測(cè)試用例:
/home/csg/pyrequest-master/interface/add_event_test.py
對(duì)上述代碼進(jìn)行分析:
1、在接口測(cè)試之前,調(diào)用test_data.py文件中的init_data()方法,初始化數(shù)據(jù)庫(kù)中的測(cè)試數(shù)據(jù);
2、創(chuàng)建AddEventTest測(cè)試類,繼承unittest.TestCase類;
3、創(chuàng)建測(cè)試用例,調(diào)用添加發(fā)布會(huì)接口,并驗(yàn)證接口返回的數(shù)據(jù);
注意:
1、把JSON格式的結(jié)果轉(zhuǎn)化為字典賦值給self.result變量,加self的目的是在tearDown()方法中打印self.result變量,打印的結(jié)果可以在測(cè)試報(bào)告中顯示,即將接口返回?cái)?shù)據(jù)打印出來(lái);
2、如果不使用self,又想在報(bào)告中顯示每個(gè)接口返回?cái)?shù)據(jù),就只能是在每個(gè)用例中print出result,相比來(lái)說(shuō),還是第一種方法比較方便。
集成測(cè)試報(bào)告
當(dāng)用例數(shù)量較多,就需要分類管理和執(zhí)行,為解決這個(gè)問(wèn)題,unittest單元測(cè)試框架提供了discover()方法,然后再適用HTMLTestRunner生成HTML格式的測(cè)試報(bào)告。
創(chuàng)建/home/csg/pyrequest-master/interface/run_tests.py文件:
對(duì)上述代碼進(jìn)行分析:
1、還是先調(diào)用test_data.py文件中的init_data()函數(shù)來(lái)初始化測(cè)試數(shù)據(jù);
2、unittest框架提供的discover()方法查找interface目錄下,匹配到文件名*_test.py結(jié)尾的測(cè)試文件;
3、now按一定格式生成當(dāng)前時(shí)間;
4、將文件名命名為now當(dāng)前時(shí)間_result.html并且保存report目錄下;
5、HTMLTestRunner為unittest單元測(cè)試框架的擴(kuò)展,利用它提供的HTMLTestRunner()類來(lái)代替unittest單元測(cè)試框架的TextTestRunner()類,運(yùn)行discover中匹配到的測(cè)試用例,生成HTML格式的測(cè)試報(bào)告;
運(yùn)行測(cè)試腳本:python run_tests.py:
1、可能需要安裝configparser庫(kù),pip install configparser;
2、在運(yùn)行過(guò)程中,出現(xiàn)了錯(cuò)誤:
應(yīng)該是數(shù)據(jù)表里create_time字段需要一個(gè)默認(rèn)值,于是修改test_data.py文件,給每個(gè)測(cè)試數(shù)據(jù)都增加create_time默認(rèn)值為當(dāng)前時(shí)間,再次運(yùn)行就沒(méi)有這個(gè)錯(cuò)誤了;
3、但是繼續(xù)執(zhí)行又出現(xiàn)了錯(cuò)誤:
問(wèn)了下度娘,應(yīng)該是讀取文件的時(shí)候使用的是ASCII編碼,而不是utf-8,自己多余,在每個(gè)測(cè)試用例的開(kāi)頭都增加了-*- coding:utf-8 -*-,畫蛇添足了,去掉后再次運(yùn)行就沒(méi)這個(gè)錯(cuò)誤了;
4. 但是運(yùn)行結(jié)果全部是failed的,查看具體的error信息:
原來(lái)還是要在每個(gè)測(cè)試數(shù)據(jù)前加上utf-8編碼的聲明,但是每個(gè)用例的注釋信息不能是中文,奇怪了,沒(méi)深入研究,反正都修改為英文后,再次運(yùn)行成功了。
完整的自動(dòng)化測(cè)試報(bào)告如下圖所示:
讀到這里,這篇“Java如何編寫接口測(cè)試”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
分享文章:Java如何編寫接口測(cè)試-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://vcdvsql.cn/article6/cdedog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、Google、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容