Java如何編寫接口測試

本文小編為大家詳細介紹“Java如何編寫接口測試”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Java如何編寫接口測試”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、遠安網(wǎng)站維護、網(wǎng)站推廣。

1、接口測試

接口:主要是子模塊或者子系統(tǒng)間交互并相互作用的部分。

這里說的接口是廣義的,客戶端與后臺服務(wù)間的協(xié)議;插件間通信的接口;模塊間的接口;再小到一個類提供的方法;都可以理解為接口。因此,可以分析,系統(tǒng)間的接口包含三部分:輸入、處理邏輯、輸出。

接口測試:是指針對模塊或系統(tǒng)間接口進行的測試。

2、應(yīng)該怎么分析一個接口?

獲取接口文檔:和黑盒測試一樣,我們是從需求文檔中去挖掘測試點,設(shè)計測試用例。對于接口測試,同樣是有對應(yīng)的接口文檔的。

分析接口文檔,提取測試點:

1)輸入: 接受哪些參數(shù)、參數(shù)的類型、可選參數(shù)和必選參數(shù)等;根據(jù)輸入?yún)?shù)采用等價類、邊界值分析法等進行設(shè)計;

2)業(yè)務(wù)邏輯:對于一個接口,不同的輸入?yún)?shù)或組合,流程或狀態(tài)的轉(zhuǎn)移是不同,可以根據(jù)業(yè)務(wù)邏輯畫出流程圖或狀態(tài)轉(zhuǎn)移圖,確保每種狀態(tài)至少被訪問了一次;

3)輸出:根據(jù)文檔規(guī)定的輸出,反向設(shè)計測試數(shù)據(jù),使所有的輸出狀態(tài)都被包含了;

測試用例:同時對輸入、業(yè)務(wù)邏輯、輸出進行考慮時,肯定會存在用例的冗余,在最大限度覆蓋業(yè)務(wù)功能和規(guī)則下,選取最優(yōu)用例集合。同時,需要考慮異常數(shù)據(jù)和場景。

3、怎么確定用例的覆蓋率?

在沒有特殊要求的情況下,至少需要考慮以下內(nèi)容:

1)業(yè)務(wù)功能覆蓋是否完整

2)業(yè)務(wù)規(guī)則覆蓋是否完整

3)參數(shù)驗證是否達到要求(邊界、業(yè)務(wù)規(guī)則)

4)接口異常場景覆蓋是否完整

如果接口需求還包含性能或者安全要求,還要對接口進行性能測試和安全測試,就需要考慮:性能指標是否滿足要求、安全指標是否滿足要求。

4、接口測試發(fā)現(xiàn)的典型問題

接口測試經(jīng)常遇到的bug和問題,如下:

(1)傳入?yún)?shù)處理不當,導(dǎo)致程序crash;

(2)類型溢出,導(dǎo)致數(shù)據(jù)讀出和寫入不一致;

(3)因?qū)ο髾?quán)限未進行校驗,可以訪問其他用戶敏感信息;

(4)狀態(tài)處理不當,導(dǎo)致邏輯出現(xiàn)錯亂;

(5)邏輯校驗不完善,可利用漏洞獲取非正當利益等。

5、如何編寫接口測試用例?

創(chuàng)建接口測試用例:

/home/csg/pyrequest-master/interface/add_event_test.py

Java如何編寫接口測試

Java如何編寫接口測試

Java如何編寫接口測試

對上述代碼進行分析:

1、在接口測試之前,調(diào)用test_data.py文件中的init_data()方法,初始化數(shù)據(jù)庫中的測試數(shù)據(jù);

2、創(chuàng)建AddEventTest測試類,繼承unittest.TestCase類;

3、創(chuàng)建測試用例,調(diào)用添加發(fā)布會接口,并驗證接口返回的數(shù)據(jù);

注意:

1、把JSON格式的結(jié)果轉(zhuǎn)化為字典賦值給self.result變量,加self的目的是在tearDown()方法中打印self.result變量,打印的結(jié)果可以在測試報告中顯示,即將接口返回數(shù)據(jù)打印出來;

2、如果不使用self,又想在報告中顯示每個接口返回數(shù)據(jù),就只能是在每個用例中print出result,相比來說,還是第一種方法比較方便。

集成測試報告

當用例數(shù)量較多,就需要分類管理和執(zhí)行,為解決這個問題,unittest單元測試框架提供了discover()方法,然后再適用HTMLTestRunner生成HTML格式的測試報告。

創(chuàng)建/home/csg/pyrequest-master/interface/run_tests.py文件:

Java如何編寫接口測試

對上述代碼進行分析:

1、還是先調(diào)用test_data.py文件中的init_data()函數(shù)來初始化測試數(shù)據(jù);

2、unittest框架提供的discover()方法查找interface目錄下,匹配到文件名*_test.py結(jié)尾的測試文件;

3、now按一定格式生成當前時間;

4、將文件名命名為now當前時間_result.html并且保存report目錄下;

5、HTMLTestRunner為unittest單元測試框架的擴展,利用它提供的HTMLTestRunner()類來代替unittest單元測試框架的TextTestRunner()類,運行discover中匹配到的測試用例,生成HTML格式的測試報告;

運行測試腳本:python run_tests.py:

1、可能需要安裝configparser庫,pip install configparser;

2、在運行過程中,出現(xiàn)了錯誤:

Java如何編寫接口測試

應(yīng)該是數(shù)據(jù)表里create_time字段需要一個默認值,于是修改test_data.py文件,給每個測試數(shù)據(jù)都增加create_time默認值為當前時間,再次運行就沒有這個錯誤了; 

3、但是繼續(xù)執(zhí)行又出現(xiàn)了錯誤:

Java如何編寫接口測試

問了下度娘,應(yīng)該是讀取文件的時候使用的是ASCII編碼,而不是utf-8,自己多余,在每個測試用例的開頭都增加了-*- coding:utf-8 -*-,畫蛇添足了,去掉后再次運行就沒這個錯誤了; 

4. 但是運行結(jié)果全部是failed的,查看具體的error信息:

Java如何編寫接口測試

原來還是要在每個測試數(shù)據(jù)前加上utf-8編碼的聲明,但是每個用例的注釋信息不能是中文,奇怪了,沒深入研究,反正都修改為英文后,再次運行成功了。

完整的自動化測試報告如下圖所示:

Java如何編寫接口測試

讀到這里,這篇“Java如何編寫接口測試”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞標題:Java如何編寫接口測試
文章位置:http://bm7419.com/article24/jjeice.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、域名注冊、App開發(fā)、手機網(wǎng)站建設(shè)、品牌網(wǎng)站制作網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計