自动化之基于parameterized的测试数据参数化

记录一下在测试登录接口时如何实现参数化。

1、基于json文件实现参数化

# 构造测试数据
def build_data():
     # 指定文件路径
    json_file = "json文件路径"

     # 打开json文件
    test_data = []
    with open(json_file, encoding="utf-8") as f:
        json_data = json.load(f)
        for case_data in json_data:
            username = case_data.get("username")
            password = case_data.get("password")
            test_data.append((username, password))
            print("test_data={}".format((username, password)))
    return test_data


# 定义测试类 
class TestLoginAPI(unittest.TestCase):
    # 前置处理 
    def setUp(self):
        pass

    # 后置处理 
    def tearDown(self):
        pass

    # 定义测试方法 
    @parameterized.expand(build_data)
    def test01_login(self, username, password):
        pass

 

2、基于数据库实现参数化

# 构造测试数据
def build_data():
    sql = "select * from t_login"
    db_data = DBUtil.exe_sql(sql)
    print(db_data)
    test_data = []

    for case_data in db_data:
        username = case_data[2]
        password = case_data[3]
        test_data.append((username, password))
        print("test_data={}".format((username, password)))
    return test_data

# 定义测试类 
class TestLoginAPI(unittest.TestCase):
    # 前置处理 
    def setUp(self): 
        pass

    # 后置处理 
    def tearDown(self):
        pass
           
     # 定义测试方法 
    @parameterized.expand(build_data) 
    def test01_login(self, username, password):
        pass

 

posted @ 2022-06-21 14:26  MToy  阅读(159)  评论(0)    收藏  举报