6.UI自动化测试框架搭建-常用操作封装(二)

Allure头部装饰器组合

根据【装饰器叠加】里面的操作

增加allureoperator.py函数编写一个组合装饰器compose

@allure.feature('大模块')
@allure.story('子模块')
@allure.title('这个test_b')
@allure.issue('url', '问题单:xxx')
def test_b():
    print('ok')

变成

@compose(feature='大模块', 
         story='子模块', 
         title='这个test_b', 
         issue=('url', '问题单:xxx'))
def test_b():
    print('ok')

完整代码:

def compose(**kwargs):
    """
    将头部ALlure装饰器进行封装
    可以采用:
        feature='模块名称'
        story='用户故事'
        title='用例标题'
        testcase='测试用例链接地址'
        severity='用例等级(blocker、critical、normal、minor、trivial)'
        link='链接'
        issue=('bug地址', 'bug名称')
    的方式入参数
    :param kwargs:
    :return:
    """

    def deco(f):
        builtins.__dict__.update({'allure': allure})
        # 失败重跑
        if kwargs.get("reruns"):
            f = pytest.mark.flaky(
                reruns=kwargs.get("reruns", 2),  # 默认共执行2次
                reruns_delay=kwargs.get("reruns_delay", 5)  # 默认等待5秒
            )(f)
            kwargs.pop("reruns")
            if kwargs.get("reruns_delay"):
                kwargs.pop("reruns_delay")
        _kwargs = [('allure.' + key, value) for key, value in kwargs.items()]
        for allurefunc, param in reversed(_kwargs):
            if param:
                f = eval(allurefunc)(param)(f)
            else:
                f = eval(allurefunc)(f)
        return f

    return deco

Allure报告中的附件插入

在报告中,经常需要贴上图片或者文字信息来辅助问题定位

增加两个方法:

  • attach_png:在报告中贴上图片附件

  • attach_text:在报告中贴上文字附件

def attach_png(pic_path, name, ele=None):
    """
    将png图片存放到allure报告上
    :param pic_path: 图片位置
    :param name: 展示的名称
    :param ele: ElementOperator对象
    :return:
    """
    try:
        if ele:
            ele.screenshot_pic(pic_path)
        allure.attach.file(source=pic_path, name=name, attachment_type=allure.attachment_type.PNG)
        logger.info(f'截图 {name},存放到 {pic_path} 成功!')
    except Exception as e:
        logger.error(f'存放图片{name}失败:{e}')
def attach_text(body, name):
    """
    将text放在allure报告上
    :param body: 内容
    :param name: 标题
    :return:
    """
    try:
        allure.attach(body=str(body), name=str(name), attachment_type=allure.attachment_type.TEXT)
        logger.info(f'存放文字 {name}:{body} 成功!')
    except Exception as e:
        logger.error(f'存放文字失败 {name}:{body}!:{e}')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值