assert断言多个

1.初级版本,pytest断言成功和失败,这边接口都是另外封装的,只需要传indata参数和cookies

 1 @pytest.mark.parametrize("casename,indata,except_result", get_excel_data("合同分类", "contract_types_del"))
 2     def test_delete_contract_types1(self, casename, indata, except_result, before_add_contract_types):
 3         ret = Api_Contract_types().del_contract_types(indata, before_add_contract_types[1])
 4         print("用例编号》》》", casename)
 5         # print(ret)
 6         try:
 7             # 如果返回响应结果有error,执行error判断,没有执行删除成功判断
 8             if ret.get(error) != None:
 9                 assert ret[error][message] == except_result[error][message]
10                 assert ret[error][error] == except_result[error][error]
11 
12             else:
13                 assert ret == except_result
14         except Exception as e:
15             log.error("断言出错,错误信息:{}".format(e))
16             # 输出错误信息
17             print("错误原因:", e)
18             raise

2.进阶版本,我就偷懒了,放另一个接口代码,下面断言Excel中的

失败:message,error,
成功:name,amount,receive_payment_type,amount_type,create_date字段。这个接口跑了几十个用例,暂时没啥问题,欢迎大佬指正不足之处!
备注:name字段这边有个bug,我加这个抛异常是为了区分响应结果和Excel的预期结果没有name导致的nokey name报错,其实可以不写。
 1 #添加合同,固定销售合同分类id,销售部id,签约对象张三id
 2 @pytest.mark.parametrize("casename,indata,except_result",get_excel_data("合同","addcontracts"))
 3 def test_add_contract1(self,casename,indata,except_result,init_add_contract_type,init_add_acounnt):
 4     indata[contract_type]=init_add_contract_type[0]
 5     indata[othercompany]=init_add_acounnt[0]
 6     indata[company_id]=init_add_contract_type[1]
 7     print("用例编号》》》》", casename)
 8     ret=Api_Contract().add_contract(indata,init_add_contract_type[2])
 9     try:
10         # 如果返回响应结果有error,执行error判断,没有则执行成功的判断
11         if ret.get(error) != None:
12             assert ret[error][message] == except_result[error][message]
13             assert ret[error][error] == except_result[error][error]
14         else:
15             #判断响应结果中是否包含name,不包含抛异常找不到name参数
16             if ret.get(value)[0].get(name)!=None:
17                 assert ret[value][0][name] == except_result[name]
18                 #如果响应结果中包含amount_type,就做断言是否和预期结果相等
19                 if ret.get(value)[0].get(amount_type)!=None:
20                     assert ret[value][0][amount_type] == except_result[amount_type]
21                     # 如果响应结果中包含amount,就做断言是否和预期结果相等
22                 elif ret.get(value)[0].get(amount)!=None:
23                     assert ret[value][0][amount] == except_result[amount]
24                     # 如果响应结果中包含receive_payment_type,就做断言是否和预期结果相等
25                 elif ret.get(value)[0].get(receive_payment_type)!=None:
26                     assert ret[value][0][receive_payment_type] == except_result[receive_payment_type]
27                 elif ret.get(value)[0].get(create_date)!=None:
28                     assert ret[value][0][create_date] == except_result[create_date]
29             else:
30                 raise Exception("返回响应body中没有找到name参数")
31 
32             Api_Contract().del_contract({"contracts_id":ret[value][0][_id]},init_add_contract_type[2])
33 
34     except Exception as e:
35         log.error("断言出错,错误信息:{}".format(e))
36         # 输出错误信息
37         print("错误原因:", e)
38         raise

 

assert断言多个

上一篇:【ybtoj】【Hash】单词背诵


下一篇:计算机体系结构-量化原理