Pytest01--讲解

Posted 测试小新在路上

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytest01--讲解相关的知识,希望对你有一定的参考价值。

Pytest测试框架

pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高

Pytest主要特点

            非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
            能够支持简单的单元测试和复杂的功能测试
            支持参数化
            执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败
            支持重复执行(rerun)失败的case
            支持运行由nose, unittest编写的测试case
            可生成html报告
            方便的和持续集成工具jenkins集成
            可支持执行部分用例
            具有很多第三方插件,并且可以自定义扩

pytest如何使用

安装pytest
    pip install -U pytest
查看安装版本
    pip show pytest
    pytest --version
导入pytest
    import  pytest
使用pytest提供的方法进行测试

pytest使用步骤

(1)导入pytest
(2)编写与执行pytest测试用例
(3)添加测试固件
(4)添加断言
(5)参数化
(6)记录日志
(7)生成测试报告

本文来自博客园,作者:{Tester小新},转载请注明原文链接:https://www.cnblogs.com/sean-test/p/15527412.html

pytest - allure描述用例详细讲解

pytest+allure是最完美的结合了,关于allure的使用,本篇做一个总结。
allure报告可以很多详细的信息描述测试用例,包括epic、feature、story、title、issue、testcase、severity等
环境准备

  • python 3.6
  • pytest 4.5.0
  • allure-pytest 2.8.6

allure用例描述

使用方法参数值参数说明
@allure.epic() epic描述 敏捷里面的概念,定义史诗,往下是feature
@allure.feature() 模块名称 功能点的描述,往下是story
@allure.story() 用户故事 用户故事,往下是title
@allure.title(用例的标题) 用例的标题 重命名html报告名称
@allure.testcase() 测试用例的链接地址 对应功能测试用例系统里面的case
@allure.issue() 缺陷 对应缺陷管理系统里面的链接
@allure.description() 用例描述 测试用例的描述
@allure.step() 操作步骤 测试用例的步骤
@allure.severity() 用例等级 blocker,critical,normal,minor,trivial
@allure.link() 链接 定义一个链接,在测试报告展现
@allure.attachment() 附件 报告添加附件

测试案例

pytest结合allure测试用例

import pytest
import allure

@pytest.fixture(scope="session")
def login_fixture():
    print("前置条件:登录")


@allure.step("步骤1")
def step_1():
    print("操作步骤---------------1")


@allure.step("步骤2")
def step_2():
    print("操作步骤---------------2")


@allure.step("步骤3")
def step_3():
    print("操作步骤---------------3")


@allure.epic("epic对大Story的一个描述性标签")
@allure.feature("测试模块")
class TestDemoAllure():

    @allure.testcase("http://49.235.x.x:8080/zentao/testcase-view-6-1.html")
    @allure.issue("http://49.235.x.x:8080/zentao/bug-view-1.html")
    @allure.title("用例的标题")
    @allure.story("用户故事:1")
    @allure.severity("critical")
    def test_case_1(self, login_fixture):
        ‘‘‘case description:
        1.点文章分类导航标签 -跳转编辑页面
        2.编辑页面输入,分类名称,如:上海-悠悠-可以输入
        3.点保存按钮保存成功
        ‘‘‘
        step_1()
        step_2()

    @allure.story("用户故事:2")
    def test_case_2(self, login_fixture):
        print("测试用例1")
        step_1()
        step_3()


@allure.epic("epic对大Story的一个描述性标签")
@allure.feature("模块2")
class TestDemo2():


    @allure.story("用户故事:3")
    def test_case_3(self, login_fixture):
        print("测试用例1")
        step_1()


    @allure.story("用户故事:4")
    def test_case_4(self, login_fixture):
        print("测试用例1")
        step_3()

报告展示

cd到用例目录执行用例生成allure报告

pytest --alluredir ./report/allure
allure serve ./report/allure

报告展示内容
技术图片

命令行参数

pytest运行用例的时候可以加上allure标记用例的参数

--allure-severities=SEVERITIES_SET
                        Comma-separated list of severity names. Tests only
                        with these severities will be run. Possible values
                        are: blocker, critical, normal, minor, trivial.
--allure-epics=EPICS_SET
                        Comma-separated list of epic names. Run tests that
                        have at least one of the specified feature labels.
--allure-features=FEATURES_SET
                        Comma-separated list of feature names. Run tests that
                        have at least one of the specified feature labels.
--allure-stories=STORIES_SET
                        Comma-separated list of story names. Run tests that
                        have at least one of the specified story labels.
--allure-link-pattern=LINK_TYPE:LINK_PATTERN
                        Url pattern for link type. Allows short links in test,
                        like ‘issue-1‘. Text will be formatted to full url
                        with python str.format().

选择运行你要执行epic的用例

pytest --alluredir ./report/allure --allure-epics=epic对大Story的一个描述性标签

选择运行你要执行features的用例

pytest --alluredir ./report/allure --allure-features=模块2

选择运行你要执行features的用例

pytest --alluredir ./report/allure --allure-stories="用户故事:1"

 

以上是关于Pytest01--讲解的主要内容,如果未能解决你的问题,请参考以下文章

pytest - allure描述用例详细讲解

pytest文档32-allure描述用例详细讲解

pytest进阶之配置文件

python自动化web自动化:1.pytest框架讲解+集成allure

pytest文档19-doctest测试框架

pytest那些事01_执行结果内容改造