测试用例的输入数据通过yaml定义的,获取后结构如下:
{
'module_name': 'tsdb_ddl_建库',
'module_case_name': '创建和检查一个新的库',
'name_id': 'create_database_01',
'isRun': 1,
'db_tb_name':
{
'db_name': 'rocdb',
'tb_name': 'roctb'
},
'exec_order': ['sql', 'check_td', 'sql1', 'check_td'],
'exe_sql':
{
'sql': 'create database {db_name}',
'check_td': 'show databases',
'sql1': 'drop database if exists {db_name}'
}
}
在执行这个测试用例时,exec_sql是要执行的sql语句,exec_order是语句的执行顺序,db_tb_name是sql语句中要使用到的库名
我代码是这样写的
db_name = case["db_tb_name"]["db_name"]
tb_name = case["db_tb_name"]["tb_name"]
exec_order = case["exec_order"]
exec_sql = case["exec_sql"]
for item in exec_order:
try:
self.db_obj.execute_sql(exec_sql[item])
except Exception as e:
print(f"SQL执行报错, {e}")
我想问的是,怎么用之前获取到的db_name的值来替换sql语句中{db_name}的值