前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >6.UI自动化测试框架搭建-常用操作封装(二)

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

作者头像
zx钟
发布2022-03-29 16:38:53
4120
发布2022-03-29 16:38:53
举报
文章被收录于专栏:测试游记

Allure头部装饰器组合

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

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

代码语言:javascript
复制
@allure.feature('大模块')
@allure.story('子模块')
@allure.title('这个test_b')
@allure.issue('url', '问题单:xxx')
def test_b():
    print('ok')

变成

代码语言:javascript
复制
@compose(feature='大模块', 
         story='子模块', 
         title='这个test_b', 
         issue=('url', '问题单:xxx'))
def test_b():
    print('ok')

完整代码:

代码语言:javascript
复制
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:在报告中贴上文字附件
代码语言:javascript
复制
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}')
代码语言:javascript
复制
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}')
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Allure头部装饰器组合
  • Allure报告中的附件插入
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档