zoukankan      html  css  js  c++  java
  • pytest--学习笔记2

    在pytest--学习笔记1中记录了pytest的基本用法(如何写用例、定义前置后置函数、共享前置后置函数以及pytest的参数化)以及与unittest的区别。

    这次则主要是记录pytest实现筛选用例功能、pytest的用例失败重运行机制、以及pytest集成优美的测试报告allure的学习过程。

    一、pytest实现筛选用例执行

    1. pytest是如何筛选用例的?

    ===> 通过给用例打标记的方式来筛选

    2. pytest如何给用例打标记?

    ===> 1⃣️ 向pytest注册标记

    首先:在项目目录下新建文件pytest.ini  ⚠️ 文件名、后缀是固定的!

    其次:在pytest.ini文件中,按照如下格式来添加标记名:

    [pytest]

    markers = 

        标签名1: 标签说明,可以不写,写的话,只支持英文,不支持中文

        标签名2: ...

        标签名n: ...

        一行一个标签名

    pytest.ini
    
    [pytest]
    markers = 
            smoke: smoke cases
            regression: regression cases

    ===> 2⃣️ 通过装饰器的方式给用例打上已注册的标记

    即 在测试用例方法上添加@pytest.mark.已注册标记名,可以添加多个标记,如果是给测试类打标记,则其中的测试用例方法均带有该标记

    @pytest.mark.smoke
    @pytest.mark.demo
    def test_case_1():
        xxx
        xxx

    3. pytest筛选用例后,如何执行这些被筛选出的用例?

    ===> 1⃣️ 命令行执行:pytest -m "标记名"

    ===> 2⃣️ main函数执行:main(["-m", "标记名"])

    二、pytest的用例失败重运行机制

    1. 为什么要使用失败重运行机制?

    ===> 由于UI test执行成功率受影响原因较多,所以在该用例执行失败时,立即启动失败重运行机制,在所设置重运行次数内只要只有一次执行成功,那么这条用例被执行结果为passed,反之如果均失败,则该用例结果为failed

    2. pytest重运行机制如何实现?

    ===> 插件rerunfailures

    ===> 安装方法:pip install pytest-rerunfailures

    3. 如何设置重运行次数以及重运行间隔时间?

    ===> main()函数参数,--reruns 2   表示重运行两次;--reruns-delay   表示每次重运行间隔为5秒钟

    三、pytest集成优美的测试报告allure

    前言:pytest本身是可以生成多种样式的测试报告(只是不那么美观) ===> 需要安装pytest-html插件

    方法:pip install pytest-html

    1. 生成JunitXML格式的测试报告,命令:--junitxml=path

    2. 生成result log格式的测试报告,命令:--resultlog=report/log.txt

    3. 生成html格式的测试报告,命令:--html=path(如:report/xxx.html)此处为相对路径,相对pytest命令执行的根路径的路径,举例表示:在report目录下生成xxx.html测试报告

    我使用的是第三种方式,直接在main函数中添加--html参数即可,如:main(["--html=Outputs/report/pytest_report.html"])

    当然有了allure,就弃用上述报告啦~但是,allure这么优秀,它不支持unittest哦!!!

    先提供allure的官方文档地址:https://docs.qameta.io/allure/ 

    ⚠️⚠️⚠️一定要参考官方文档!!!因为官方文档上啥都有!!!是最权威的操作手册!!!

    要使用这么优秀的测试报告框架,首先肯定要安装上才能使用。

    1. 如何安装allure?

    ===> allure都是通过命令行来安装的,各个平台安装命令不一样,建议查看官方文档,官方文档啥都有,我只是搬运工。

    由于我的操作系统是mac os x  我本身也安装了homebrew,所以我采取的安装方式是:brew install allure

    安装成功后,可以通过命令allure查看是否安装成功

    emm,来说一下官方文档提供的手动安装操作步骤吧~~

    ===> 1⃣️ 下载压缩包.zip,各个平台通用。附上下载地址:https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/  官方给的地址访问有点问题,我自己找的这个具体的下载地址

    ===> 2⃣️ 解压压缩包

    ===> 3⃣️ 进入解压后的目录的bin目录下

    ===> 4⃣️ mac或Linux用户直接点击allure就行来,Windows点击运行allure.bat

    ===> 5⃣️ 将allure配置到系统环境变量中

    环境变量的配置我就不细说啦~附上我Windows配置的截图以及配置后在cmd中运行allure结果:

    2. allure安装好之后,该怎么与pytest产生关联呢?

    ===> 1⃣️ 插件allure-pytest  

    ===> 安装方法:pip install allure-pytest

    ===> 2⃣️ 执行命令:pytest --alluredir=Outputs/report   让pytest生成allure能够识别的测试结果文件并将结果文件放在Outputs/report目录下,注意Outputs/report这个路径也是一个相对路径,只需要指定目录,不需要指定报告名和后缀

    main函数中:main(["--alluredir=Outputs/report"])

    3. 步骤2是让pytest生成allure可识别的结果文件,那么如何让allure呈现测试报告?

    ===> 执行命令:allure serve 步骤2中生成的allure可识别的测试结果文件目录路径

    执行成功后会打开默认浏览器,呈现测试结果,如下图:

  • 相关阅读:
    hdu1290献给杭电五十周年校庆的礼物
    hdu1181(变形课)
    Flex结合java实现一个登录功能
    MyEclipse安装spket插件
    线程安全的理解
    很实用的一个ext表格,具有很好的分页功能。
    tomcat配置数据源
    extanychart柱状图呈现取自数据库中的数据
    extanychart饼图呈现取自数据库中的数据
    oracle实现分页总结
  • 原文地址:https://www.cnblogs.com/panpanda/p/13373075.html
Copyright © 2011-2022 走看看