組合演算法在介面測試中應用

2021-07-28 05:19:50 字數 1625 閱讀 8251

在介面測試過程中,經常需要測試查詢介面,若查詢條件較多,查詢引數組合就會很多,若手工去窮舉所有查詢組合,一定會費時費力,用下面的排列組合工具類combination可以很好地解決這個問題,引入元件依賴:

org.raistlic.lib

commons-core

1.4

例如,求陣列陣列的所有組合

@test

public void test2() throws exception

}system.out.println("***** 列印組合總數:");

system.out.println("c_5^1+c_5^2+c_5^3+c_5^4++c_5^5="+combinationcount);

}

列印結果如下:

***** 列印組合:

[1][2]

[3][4]

[5][1, 2]

[1, 3]

[1, 4]

[1, 5]

[2, 3]

[2, 4]

[2, 5]

[3, 4]

[3, 5]

[4, 5]

[1, 2, 3]

[1, 2, 4]

[1, 2, 5]

[1, 3, 4]

[1, 3, 5]

[1, 4, 5]

[2, 3, 4]

[2, 3, 5]

[2, 4, 5]

[3, 4, 5]

[1, 2, 3, 4]

[1, 2, 3, 5]

[1, 2, 4, 5]

[1, 3, 4, 5]

[2, 3, 4, 5]

[1, 2, 3, 4, 5]

***** 列印組合總數:

c_5^1+c_5^2+c_5^3+c_5^4++c_5^5=31

由此想到用這個工具類來組合我們的查詢介面引數,當然我們可以排除無用組合:

@test

@description(description = "各組合條件查詢,全覆蓋")

public void testgetbargaincount_4() throws exception

resultgetbargaincount = this.invoke(bargainreadservice, "getbargaincount", integer.class, clientinfo, queryparam);

assert.asserttrue(getbargaincount.issuccess());

if (getbargaincount.getresult().intvalue() == 0) }}

assert.asserttrue(collectionutils.isempty(failparms));

}

private static mapbuildqueryparmgroup()
該開源元件封裝了很多實用的演算法,具體可以專案原始碼和api文件

api文件:

TestNG在介面測試中的應用

testng在介面測試中的應用 一 介面測試 介面測試是測試系統元件間介面的一種測試,介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點。測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。如今的系統架構紛繁複雜,系統間的介面龐雜繁多,傳統的功能測試已...

Python在HTTP介面測試中的應用

http介面例子 http ip port inte ce.php?uname aaa 介面功能 根據uname引數值來返回對應的使用者名稱的基本資訊 1.用python封裝被測試 介面,對於http接 們通常會採用 get和post 2種呼叫方式去訪問,所以必須把這2種方式都封裝進去 coding...

遺傳演算法在黑盒測試中的應用

在軟體測試中,黑盒測試主要是針對模組進行的功能測試。最普遍的方法是以軟體的功能說明書為基礎將軟體的輸入劃分為若干個等價類,多次執行該軟體來檢驗軟體對於不同的等價類是否能滿足要求。但是在實際應用中,有的模組太大或輸入引數太多,等價類劃分後需要進行的測試工作可能是乙個極大的任務。這時,如何選擇最優的測試...