2021-12-30 21:44:59|已瀏覽:170次
談起軟件測試,就不得不說一下接口測試,凡是有功能的軟件都離不開接口,沒有接口的軟件只是一個模具或頁面,不具備任何功能。
什么是接口
接口說白了就是實現(xiàn)軟件功能的方法,而這些方法的最終目的就是傳遞信息,實現(xiàn)軟件功能。
接口測試是什么
接口測試就是驗證這些信息能否正確傳遞,驗證這個方法是否正確,有沒有存在潛在的安全,性能問題。
所以總結一下接口測試的測試點就有三個:接口功能測試、接口安全測試、接口性能測試。
那么接下來我就給大家講講我所遇到過的一些接口和測試吧!
查詢本地數(shù)據(jù)庫數(shù)據(jù)的查詢接口
這個接口的功能是這樣的:
查詢條件
訂單編號、產(chǎn)品名稱、產(chǎn)品型號、訂單日期,可單獨一個條件查詢也可多個條件聯(lián)合查詢,多個條件查詢的時候查詢出來的結果取并集。
結果展示
根據(jù)查詢條件查出來所有產(chǎn)品的配置信息展示給有權限的用戶看,展示的字段有訂單編號、產(chǎn)品名稱、產(chǎn)品版本號、產(chǎn)品型號、配件編號、配件描述、訂單日期。
對這個接口的功能進行進一步的了解我們知道了如下信息:
這些數(shù)據(jù)都是存在于本系統(tǒng)后臺數(shù)據(jù)庫中,涉及兩張表:訂單表、產(chǎn)品配置表。
開發(fā)通過獲取頁面輸入的查詢條件,去數(shù)據(jù)庫查詢這兩張表里面的頁面需要的相關信息并展示出來。
訂單表中訂單編號是主鍵,產(chǎn)品配置表中產(chǎn)品名稱+產(chǎn)品版本號是主鍵,兩張表通過產(chǎn)品名稱+產(chǎn)品版本號進行關聯(lián)。
產(chǎn)品名稱存在特殊字符的現(xiàn)象。
通過以上的了解,對這接口測試點進行分析:
這是一個結果可見性的查詢接口,可以通過頁面功能直接來測試,可以不借用工具,另外它也不涉及外部系統(tǒng)數(shù)據(jù),不用考慮聯(lián)測。
因為字段表中查詢條件相關的字段有特殊字符,所以在測試輸入條件查詢的時候要關注特殊字符查詢條件的查詢。
所以綜合以上分析,輸入這塊的測試場景有:
輸入特殊字符
輸入超長字符
輸入空字符
SQL注入安全測試
從查詢條件分析,這個查詢條件是單獨或多個聯(lián)合使用的,且多個條件聯(lián)合時取的并集。
所以從查詢條件的組合來看,測試場景有以下四種情況:
輸入一個查詢條件
輸入兩個查詢條件
輸入3個查詢條件
輸入4個查詢條件
根據(jù)組合,我們羅列出查詢條件的測試場景,為防止有重復,我用了一個表格來畫如下
對后臺兩個表中的數(shù)據(jù)進行分析,發(fā)現(xiàn)由于歷史原因,存在版本號為空的數(shù)據(jù),而且存在數(shù)據(jù)量比較大的查詢數(shù)據(jù),所以在測試的時候還需要關注版本號為空的場景,大數(shù)據(jù)查詢結果的場景。
另外出于性能考慮,我們還要關注多人并發(fā)查詢的場景和一人頻繁查詢的場景,及異常場景:數(shù)據(jù)庫宕機的場景。
所有測試的場景分析完了,接下來就是把這些場景轉化為具體的測試用例,執(zhí)行測試了。
傳遞數(shù)據(jù)信息的通道中間接口
這是一種常見的且最簡單的接口,沒有任何邏輯,也不做任何處理,只是把A系統(tǒng)傳過來的數(shù)據(jù)再轉手傳給B系統(tǒng),功能比較單一,這種接口功能大致流程如下:
我記得當時測試有這樣一個接口,系統(tǒng)B想要獲取系統(tǒng)A產(chǎn)品的版本號信息,但系統(tǒng)B又沒有直接跟系統(tǒng)A交互,只能通過我們這個中間系統(tǒng)進行交互。
所以系統(tǒng)B就把存在他們系統(tǒng)的產(chǎn)品名稱和產(chǎn)品型號傳到我們系統(tǒng),我們系統(tǒng)再把這個信息推給系統(tǒng)A,系統(tǒng)A返回一個版本信息到我們系統(tǒng),我們系統(tǒng)就直接把這個信息傳給了系統(tǒng)B。
記得當時story測試時,直接用的soapui工具,自己手動構造的系統(tǒng)B的產(chǎn)品信息傳給了系統(tǒng)A,這樣雖然驗證了本系統(tǒng)接口功能的正確性和性能,但它的測試充分性卻是不足的,為啥呢?
因為我們對系統(tǒng)A產(chǎn)品的特殊參數(shù)了解的不多,只能測試普通的共同性問題,不能測試到個性問題,所以必須進行聯(lián)測來完善測試,讓對方系統(tǒng)的測試人員根據(jù)他們的測試場景去構造測試數(shù)據(jù)進行測試。
涉及到外部系統(tǒng)的查詢接口
這種接口的流程一般如下:
像這種接口的測試輸入,輸出都在本系統(tǒng)但有一個中間結果在頁面是不可見的,我們雖然可以在頁面上看到輸入、輸出,但卻不能判斷輸出結果的正確性,這個時候我們就要通過接口測試工具和頁面功能相結合的方式來驗證了。
有這樣一個頁面查詢功能就是這樣的,那個頁面查詢功能是:
當?shù)卿浫?/span>A,所在公司下有子公司時,他可查詢到總公司及其所有分公司的訂單,當所在公司下沒有分公司時,只能查看當前公司的訂單。
而這登錄人所在公司下是否有分公司只能通過查詢系統(tǒng)B才能知道,而系統(tǒng)B返回的結果在頁面上并沒有展示,而是直接拿他作為查詢條件進行了查詢,所以要測試這個查詢接口查詢結果是否正確,就要結合B系統(tǒng)返回給我們的結果進行測試。
通過接口工具先查看系統(tǒng)B返回的結果,然后再對比頁面上的查詢結果看是否與我們預期的一致。
這里用接口測試工具查看返回結果還有一個好處就是可以看到對方系統(tǒng)返回給我們的參數(shù)格式,便于我們根據(jù)他們的返回結果格式去構造適合的測試場景來驗證我們的查詢結果,使我們的測試更充分。
輸入在本系統(tǒng),輸出在外系統(tǒng)的接口
這類接口的測試一般我們采用接口工具和頁面功能相結合的方法進行測試,就是在我們的系統(tǒng)頁面觸發(fā)調用這個接口的功能,通過接口工具查看監(jiān)控此接口的信息來驗證信息的傳遞情況以及查看相關的輸出結果。
當然這種接口也可以直接用測試工具進行測試,但是我一般是不這樣的,為啥呢?因為數(shù)據(jù)構造太麻煩,而且構造的數(shù)據(jù)沒有直接在頁面調用接口形成的數(shù)據(jù)的可靠性高。
同樣的這種接口還是少不得聯(lián)測的,聯(lián)測就是檢測我們系統(tǒng)存在的各種場景的數(shù)據(jù)傳遞過去后是不是都能被對方系統(tǒng)正常接收到。
我碰到過的這樣的接口是這樣的一個功能:我們系統(tǒng)訂單生成的產(chǎn)品價格要傳給系統(tǒng)C,他們要做記錄進行預算。
這個接口前期的各種參數(shù)輸入都在我們的系統(tǒng)頁面上可以完成,只是后期生成訂單后的價格和對應的產(chǎn)品信息要傳到對方系統(tǒng)后的結果我們是看不到的。
在這個時候,前面的測試就是根據(jù)我們系統(tǒng)各種參數(shù)場景組合測試,那這個參數(shù)到底傳沒有傳過去,因為兩個系統(tǒng)的開發(fā)并不同步,無法直接聯(lián)測,前期只能通過接口工具調用日志查看參數(shù)是否傳過去及各個參數(shù)的值與我們系統(tǒng)頁面上是否一致,后期兩邊系統(tǒng)功能都實現(xiàn)了就要進行一個聯(lián)測了。
在這個聯(lián)測的過程中你不單要把自己系統(tǒng)的各種數(shù)據(jù)場景覆蓋到,還要了解對方系統(tǒng)有什么特殊的地方,根據(jù)他們的特殊要求構造特殊的數(shù)據(jù)傳給數(shù)據(jù)進行更深一步的驗證。
好了,我碰到的接口類型大概就是這些了,希望我的這些測試對你有所幫助。
本文由培訓無憂網(wǎng)長沙牛耳教育課程顧問老師整理發(fā)布,希望能夠對想?yún)⒓娱L沙軟件測試培訓的學生有所幫助。更多軟件測試培訓課程信息可關注培訓無憂網(wǎng)電腦IT培訓或添加老師微信:15033336050
注:尊重原創(chuàng)文章,轉載請注明出處和鏈接 http://www.elsolbar.com/news-id-11366.html 違者必究!部分文章來源于網(wǎng)絡由培訓無憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實性請自行核實或聯(lián)系我們,了解更多相關資訊請關注軟件測試頻道查看更多,了解相關專業(yè)課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050