自動化二:框架模式

數據驅動+關鍵字驅動=混合驅動app

#數據驅動模型
import traceback
#測試數據
with open("D:\\aaa.txt") as fp:
    data = fp.readlines()


#被測試對象
def add(a, b):
    return a+b


def sub(a,b):
    return a-b


def execute_test_step(func_name,value1,value2):
    test_data= "%s(%s,%s)" %(func_name,value1,value2) 
    print("關鍵字的數據:",test_data)
    actual_result = eval(test_data)
    return actual_result

def get_test_data(test_data_file_path):
    test_data = []
    with open(test_data_file_path) as fp:
        for i in fp.readlines():
            param1,param2,expect_result = i.strip().split("||")
            test_data.append((int(param1),int(param2),int(expect_result)))
    return test_data  

def assert_result(actual_result,expected_result,func_name,value1,value2):
    try:
        assert actual_result == int(expected_result)
        print("測試執行成功,測試數據是%s,%s,%s" %(func_name,value1,value2))
    except AssertionError:

        print("當前測試用例執行失敗,測試數據是%s,%s,%s" %(func_name,value1,value2))
        print("指望的結果%s,實際的結果%s" %(expected_result,actual_result))


#測試程序:
for line in data:
    if len(line.strip().split("||"))==4:
        func_name,value1,value2,expected_result = line.strip().split("||")
        actual_result = execute_test_step(func_name,value1,value2)
        assert_result(actual_result,expected_result,func_name,value1,value2)
        print("________________________________________________")
    elif len(line.strip().split("||"))==2:

        func_name,data_file_path = line.strip().split("||")
        test_data = get_test_data(data_file_path)
        for data in test_data:
            actual_result=execute_test_step(func_name,data[0],data[1])
            assert_result(actual_result,data[2],func_name,data[0],data[1])
            print("________________________________________________")
    else:
        print("$$$$$$$$$$$$$$",data)



    
相關文章
相關標籤/搜索