自動建立測試用例表 練習網上各種題目用

2021-08-27 10:33:29 字數 2481 閱讀 2366

每天網上逛,總是想幫別人解決一點問題,但有的朋友沒有給出明確的表,就給了一些樣本資料,

於是要自己手動的with t as (select ... from dual union all ....)這樣建立測試表,時間長了,感覺敲的好麻煩,我這個人比較懶,於是自己寫了個自動建立測試表的儲存。。。

create or replace procedure autocreate_withtable(pdata varchar2)

--自動建立測試表

/*pdata varchar2(32000):='12,31

23,56

45,78';*/

as v_sql varchar2(32000);

v_data varchar2(20000);

v_tmp varchar2(20000);

--v_char varchar2(5):='a';

l_idx integer;

type fieldvaluetype is table of varchar2(500) index by binary_integer;

t_data fieldvaluetype;

begin

v_sql := 'with t as (' || chr(10);

v_data := pdata;

loop

l_idx := instr(v_data, chr(10));

if l_idx > 0 then

v_sql := v_sql || ' select ';

v_tmp := substr(v_data, 1, l_idx - 1);

select * bulk collect into t_data from table(split_gw(v_tmp, ','));

for x in 1 .. t_data.count

loop

v_sql := v_sql || '''' || t_data(x) || ''' as a' || x || ',';

end loop;

v_sql := substr(v_sql, 1, length(v_sql) - 1);

v_sql := v_sql || ' from dual ' || chr(10) || 'union all' || chr(10);

v_data := substr(v_data, l_idx + 1);

else

v_sql := v_sql || ' select ';

select * bulk collect into t_data from table(split_gw(v_data, ','));

for x in 1 .. t_data.count

loop

v_sql := v_sql || '''' || t_data(x) || ''' as a' || x || ',';

end loop;

v_sql := substr(v_sql, 1, length(v_sql) - 1);

v_sql := v_sql || ' from dual ';

exit;

end if;

end loop;

v_sql := v_sql || ')' || chr(10) || 'select * from t';

dbms_output.enable(40000);

dbms_output.put_line(v_sql);

end;

使用:(注意a,b,c後面都是回車,沒有空格)

begin 

autocreate_withtable(pdata => 'date1,1,a

date1,2,b

date1,1,c

date2,3,a

date2,2,b

date2,2,c');

end;

檢視輸出:

with t as (

select 'date1' as a1,'1' as a2,'a' as a3 from dual

union all

select 'date1' as a1,'2' as a2,'b' as a3 from dual

union all

select 'date1' as a1,'1' as a2,'c' as a3 from dual

union all

select 'date2' as a1,'3' as a2,'a' as a3 from dual

union all

select 'date2' as a1,'2' as a2,'b' as a3 from dual

union all

select 'date2' as a1,'2' as a2,'c' as a3 from dual )

select * from t

自動生成正交表測試用例PICT

當乙個介面涉及到多重條件查詢,比如a,b,c 三個過濾條件,條件下有多個子條件。同時對於查詢出來的結果,還可以進行不同類別的排序,如按時間,地點,次數等多個排序條件。類似於電商商品列表介面的多條件過濾。請教各位如何做到用例覆蓋最大化且高效?自動生成正交表測試用例的工具 pict pict,全稱是pa...

各種測試用例簡要模板

識別符號 作者,文獻名稱,出版單位 或歸屬單位 日期 例如 aaa 作者,立項建議書 機構名稱,日期 spp proc st sepg,系統測試規範,機構名稱,日期 縮寫 術語 解 釋 spp精簡並行過程,simplified parallel process 介面 a的函式原型輸入 動作期望的輸出...

測試用例 判定表

分析和表述若干輸入條件下,被測物件針對這些輸入做出響應的一種工具 判定表是分析和表達多邏輯條件下執行不同操作的情況的工具 在遇到複雜業務邏輯時可以利用該錶理清業務邏輯關係 條件條件樁 需求規格說明書定義的被測物件的所有輸入 條件項針對條件樁所有可能輸入資料的真假值 動作動作樁 針對條件被測物件可能採...