pytest--python的一种测试框架--pytest常用断言类型

一、pytest常用断言类型

等于:==
不等于:!=
大于:>
小于:<
属于:in
不属于:not in
大于等于:>=
小于等于:<=
是:is
不是:is not

def test_two():
    assert 1==1
    assert 1 != 2
    assert 1 < 2
    assert 1 > 2
    assert 1 >= 1
    assert 1 <= 1

    assert 'a' in 'abc'
    assert 'a' not in 'bcd'
    assert True is True
    assert False is not True

在这里插入图片描述

二、requests+pytest

import requests
def test_mobile():
    r = requests.get(url="https://api.binstd.com/shouji/query", params={
        "shouji": "13456755448",
        "appkey": "e1d1e3c8fb254b33"
    })
    print(r.status_code)
    assert r.status_code==200
    result=r.json()
    assert result['status']==0
    assert result['msg'] == "ok"
    assert result['result']['shouji'] == "13456755448"
    assert result['result']['province'] == "浙江"
    assert result['result']['city'] == "杭州"
    assert result['result']['company'] =="中国移动"
    assert result['result']['cardtype'] is None
    assert result['result']['creacode'] == "0571"

在这里插入图片描述
这个操作,针对之前的requests模块对他进行一个优化对其自身用例进行改进初步实现我们用pytest进行接口测试的测试用例

三、pytest配置项

pytest.ini(固定写法,你如果写错是不生效的),ini在很多框架里面都是作为配置项去使用的。在写路径的时候是可以指定到某个具体的文件的

[pytest]
testpaths=./testcase

把要执行的目录直接配置到此处,通过终端输入运行pytest命令即可
在这里插入图片描述
在这里插入图片描述

四、pytest的setup/teardown(前置步骤和后置步骤)

在我们做自动化里面,前置和后置基本上是一个功能,比如我们在做UI自动化,前置需要打开浏览器,后置需要关闭浏览器。在做接口测试自动化,比如我们前置需要去登陆或者插入一些测试数据,做一些测试用例执行前的一个工作,在做完测试用例之后我们需要在后置步骤里面去做一些数据的清理,防止产生一些垃圾数据。

setup/teardown其实分为四个等级分别是:

**模块级–setup_module/teardown_module–开始于模块始末,生效一次;
函数级–setup_function/teardown_function–对每条函数用例生效(不在类中);
类级–setup_class/teardown_class–只在类中前后运行一次(在类中);
方法级–setup_method/teardown_method–开始于方法始末(在类中)。
**

如何将一个.py文件中两条绿色三角符号的测试用例都给运行出来?

答:

def test_one():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

def test_two():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

if __name__=='__main__':
    pytest.main()#会把我们当前用例中的其他测试用例符合条件的都执行

在这里插入图片描述

4.1模块级示例:可以看到模块级setup_module/teardown_module开始于模块始末,仅执行一次

import requests

def setup_module():
    print("准备测试数据")
def teardown_module():
    print("清理测试数据")

def test_mobile1():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile2():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile3():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile4():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

if __name__=='__main__':
    pytest.main()

在这里插入图片描述

4.2函数级示例:可以看到每一条函数执行之前和执行之后各执行一次,setup_function/teardown_function,函数执行多少次它执行多少次。这是不在类class中的

import requests

def setup_function():
    print("准备测试数据")
def teardown_function():
    print("清理测试数据")

def test_mobile1():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile2():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile3():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等
def test_mobile4():
    expect=1
    actual=1
    assert expect==actual#测试专用语句:assert,识别期望与实际值是否相等

if __name__=='__main__':
    pytest.main()

在这里插入图片描述

4.3类级示例:可以看到在类中前后运行一次

import requests

class TestMobile:
    def setup_class(self):
        print("准备测试数据")

    def teardown_class(self):
        print("清理测试数据")

    def test_mobile1(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile2(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile3(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile4(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等



if __name__=='__main__':
    pytest.main()

在这里插入图片描述

4.4方法级示例:方法在类中,类中的方法级,可以看到在类中的每个函数都执行一次

import requests

class TestMobile:
    def setup_method(self):
        print("准备测试数据")

    def teardown_method(self):
        print("清理测试数据")

    def test_mobile1(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile2(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile3(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等

    def test_mobile4(self):
        expect = 1
        actual = 1
        assert expect == actual  # 测试专用语句:assert,识别期望与实际值是否相等



if __name__=='__main__':
    pytest.main()

在这里插入图片描述

相关推荐

  1. Pythonpytest框架(2)--断言机制

    2024-03-31 11:40:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 11:40:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 11:40:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 11:40:02       82 阅读
  4. Python语言-面向对象

    2024-03-31 11:40:02       91 阅读

热门阅读

  1. 算法与数据结构 顺序表

    2024-03-31 11:40:02       41 阅读
  2. sql注入相关题目

    2024-03-31 11:40:02       33 阅读
  3. node.js 常用命令

    2024-03-31 11:40:02       30 阅读
  4. C# comboBox

    2024-03-31 11:40:02       34 阅读
  5. MyBatis——动态SQL

    2024-03-31 11:40:02       33 阅读
  6. 在Python中,当你执行 print(2, 3) 时

    2024-03-31 11:40:02       32 阅读
  7. LeetCode刷题--- 回文子串

    2024-03-31 11:40:02       40 阅读
  8. Mysql数据库调优

    2024-03-31 11:40:02       38 阅读
  9. leetcode 704. 二分查找

    2024-03-31 11:40:02       36 阅读
  10. SQLAlchemy中常用的查询方法[示例学习]

    2024-03-31 11:40:02       38 阅读
  11. k8s学习

    k8s学习

    2024-03-31 11:40:02      39 阅读
  12. Mybatis相关面试题详细总结

    2024-03-31 11:40:02       28 阅读