希望各位大佬多多指点!!!
目标:我想让这部分的断言抽出来,因为我感觉大部分用例代码都需要这一部分,可以我不知道如何抽出来
功能: 1、assert 部分,可能存在一个或多个断言,断言不仅限于等于 2、捕获异常和日志以及回写 Excel 的部分都需要有
技术不过关的我抽不出来,望大佬提点提点!!!
from check import CheckResult CheckResult().check_code() CheckResult().check_text() 这样试试?
个人理解: try: if :判断断言 else :判断断言 回写 Excel log except Exception as e: 回写 Excel log raise e
你可以问 chatgpt,你说的这些问题应该都能解决
首先你可以把断言是否成功或者失败抽取出来,例如设置一个变量,令初始值等于 0,在你的断言判断中,只要有一条断言没有通过,则该初始值加一。后面你只需要判断这个初始值是不是 0 就可以了,不用在意你到底有多少个断言。最后得到整体断言的结果后,写入 log 和你的 excel,当然也包括你的捕获异常
def my_assert(self, assert_str, first, second, msg=None): assert_name = f"assert{assert_str}" if hasattr(self, assert_name): pass try: getattr(self, assert_name)(first, second, msg) except AssertionError as e: pass else: pass
assert 部分再抽出来单独写个方法就好了 checkAndLog([assertList]): try: myAssert([assertList]) catch:xx
你就想着,你抽离的是数据,其他不变,如何把变量的数据拿出来
看你如何操作断言
你看这个可不可以:
这是可以对不同的 key 有不同规则功能的: 图片里面有错误,应该是 cmpdict.items() 这个对比功能也可以放在 **kwargs 里面实现,动态的,有几个就加几个。就可以不需要那个 cmpdict 参数了
我这里参照 jmeter 的方式写了一套 python 的接口框架,excel 数据驱动的,预期结果断言是这么实现的,可以参考一下,不知道是否有帮助