Python Python 自动化断言如何封装

sunzhang · 2023年07月11日 · 最后由 Mr.Shuo 回复于 2023年08月01日 · 9105 次阅读

希望各位大佬多多指点!!!

目标:我想让这部分的断言抽出来,因为我感觉大部分用例代码都需要这一部分,可以我不知道如何抽出来

功能:
1、assert 部分,可能存在一个或多个断言,断言不仅限于等于
2、捕获异常和日志以及回写 Excel 的部分都需要有

技术不过关的我抽不出来,望大佬提点提点!!!

共收到 11 条回复 时间 点赞

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

你就想着,你抽离的是数据,其他不变,如何把变量的数据拿出来

看你如何操作断言

9楼 已删除

你看这个可不可以:

这是可以对不同的 key 有不同规则功能的:

图片里面有错误,应该是 cmpdict.items()
这个对比功能也可以放在 **kwargs 里面实现,动态的,有几个就加几个。就可以不需要那个 cmpdict 参数了



我这里参照 jmeter 的方式写了一套 python 的接口框架,excel 数据驱动的,预期结果断言是这么实现的,可以参考一下,不知道是否有帮助

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册