Pytest 教程:从 0 到 1 搭建 Pytest 接口自动化测试项目

2023-12-04

从 0 到 1 搭建 Pytest 接口自动化测试项目

1.创建项目目录

mkdir Pytest-API-Testing-Demo

2.项目初始化

// 进入项目文件夹下cd Pytest-API-Testing-Demo// 创建项目 python 项目虚拟环境python -m venv .env// 启用项目 python 项目虚拟环境source .env/bin/activate

3.安装项目依赖​​​​​​​

// 安装 requests 包pip install requests// 安装pytest 包pip install pytest// 将项目依赖项保存到 requirements.txt 文件中pip freeze > requirements.txt

4.新建测试文件及测试用例​​​​​​​

// 新建测试文件夹mkdir tests// 新建测试用例文件cd teststouch test_demo.py

5.编写测试用例

测试接口可参考项目中 demoAPI.md 文件​​​​​​​

import requests


class TestPytestDemo:

    def test_get_demo(self):
        base_url = "https://jsonplaceholder.typicode.com"
        # 发起请求
        response = requests.get(f"{base_url}/posts/1")
        # 断言
        assert response.status_code == 200
        assert response.json()['userId'] == 1
        assert response.json()['id'] == 1

    def test_post_demo(self):
        base_url = "https://jsonplaceholder.typicode.com"
        requests_data = {
            "title": "foo",
            "body": "bar",
            "userId": 1
        }
        # 发起请求
        response = requests.post(f"{base_url}/posts", requests_data)
        # 断言
        assert response.status_code == 201
        print(response.json())
        assert response.json()['userId'] == '1'
        assert response.json()['id'] == 101

6.运行测试用例

pytest

7.查看测试报告

图片

CsoB4y

8.接入 pytest-html-reporter 测试报告

https://github.com/prashanth-sams/pytest-html-reporter

安装 pytest-html-reporter 依赖
pip install pytest-html-reporter 
配置测试报告参数
  • 项目根目录下新建 pytest.ini 文件

  • 添加以下内容

[pytest]addopts = -vs -rf --html-report=./report --title='PYTEST REPORT' --self-contained-html
运行测试用例
pytest
查看测试报告

报告在项目根目录下的 report 目录下,使用浏览器打开 pytest_html_report.html 文件即可查看

图片

8JdxbA

更多信息

  • 点击阅读原文获取更多信息

  • 访问我的个人博客:https://naodeng.tech/

  • 我的QA自动化快速启动项目页面:https://github.com/Automation-Test-Starter

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时, 请及时加入群: 786229024 ,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】 在这里插入图片描述
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pytest 教程:从 0 到 1 搭建 Pytest 接口自动化测试项目 的相关文章

  • 在 Python 中动态参数化多个测试

    我正在尝试使用 Pytest 编写动态测试套件 其中测试数据保存在单独的文件中 例如YAML 文件或 csv 我想运行多个测试 所有这些测试都是从同一个文件进行参数化的 假设我有一个测试文件test foo py 看起来像这样 import
  • 如何在测试 FastAPI 应用程序时触发生命周期启动和关闭?

    作为 FastAPI 的新手 我正在努力测试比我在教程中看到的稍微困难的代码 我用fastapi cache模块和Redis是这样的 from fastapi import Depends FastAPI Query Request fro
  • pytest django:无法访问固定装置拆卸中的数据库

    我需要在使用夹具后显式删除它 我知道 pytest django 默认情况下会在拆卸时删除所有对象 但在这种特殊情况下 我需要手动执行此操作 然而 虽然我的测试被标记为pytest mark django db 我能够创建一个夹具 但在经过
  • 在 Flask-SQLAlchemy 中隔离 py.test 数据库会话

    我正在尝试使用 Flask SQLAlchemy 构建 Flask 应用程序 我使用 pytest 来测试数据库 问题之一似乎是在不同测试之间创建隔离的数据库会话 我编写了一个最小的完整示例来突出问题 请注意test user schema
  • 使用 pytest 运行trace.py

    我正在尝试使用trace py跑步时pytest 我知道pytest有自己的覆盖率插件pytest cov但限制 每行执行的次数不可用 不允许我现在使用它 同样对于coverage py 我正在尝试这个命令 python3 4 m trac
  • 您将如何对这个 SQLAlchemy Core 查询/函数进行单元测试?

    我正在努力学习如何正确进行单元测试 鉴于这个功能 def get user details req user id users sa Table users db metadata autoload True s sa select use
  • FastAPI 中的单元测试

    我有一个使用 FastAPI 开发的后端应用程序 使用 SQLModel SQLAlchemy 和 Pydantic 并连接到 Postgres 数据库 我有集成测试来测试我的端点是否可以与暂存 PG DB 正常工作 但现在我必须编写单元测
  • 测试 post 请求时 Django 消息中间件问题

    我正在尝试测试一个 UpdateView 它将一条消息添加到重定向的成功页面 看来我的问题来自messages因为 pytest 返回 django contrib messages api MessageFailure 如果不安装 dja
  • 如何从测试内部访问 py.test capsys?

    py test 文档说我应该将 capsys 参数添加到我的测试方法中 但就我而言 这似乎不可能 class testAll unittest TestCase def setUp self self cwd os path abspath
  • 沙箱中的 Bazel 和 py_test - 有什么方法可以定义输出?

    我正在运行多个py test 项目数量的配置 由于它们数量众多 默认的沙箱机制似乎很方便 测试不会相互干扰 并且免费并行运行 不过 这是有代价的 据我了解 沙箱将导致 bazel 在临时目录中运行测试 结合py test规则未定义任何out
  • pytest 固定装置 - 获取值并避免错误“直接调用固定装置'X'”

    我已将 pytest 更新到 4 3 0 现在我需要重新编写测试代码 因为不推荐直接调用固定装置 我对 unittest TestCase 中使用的固定装置有疑问 如何获取从固定装置返回的值而不是对函数本身的引用 例子 pytest fix
  • 使用 pytest 生成 csv 文件报告

    是否可以以某种方式在 csv 文件中生成测试执行报告 我使用 python selenium pytest 任何建议将不胜感激 我写了一个pytest csv https github com nicoulaj pytest csv插件 希
  • 如何在pytest运行时获取测试名称和测试结果

    我想在运行时获取测试名称和测试结果 I have setup and tearDown我的脚本中的方法 在setup 我需要获取测试名称 然后在tearDown我需要获取测试结果和测试执行时间 我有办法做到这一点吗 你可以 使用钩子 我的测
  • Pytest - 测试解析器错误:无法识别的参数

    我正在尝试测试一个非常简单的函数 由于多次尝试测试使用参数解析器作为参数的更复杂的函数而失败 来自 runfile py import argparse import os def get input args parser argpars
  • 在参数化中传递 pytest 夹具

    通过在 pytest mark parametrize 中传递 conftest py 中定义的装置 我收到以下错误 pytest alist 0220 0221 test 1 py v s NameError name alist is
  • Pytest 插件:覆盖 pytest_runtest_call 和朋友

    我正在为我的一个项目使用 pytest 开发一个测试套件 由于项目的性质 我需要创建一个 Pytest 插件来控制测试的运行方式 它们不是在本地运行 而是发送到不同的进程来运行 我知道关于xdist但我认为这并不能解决我的问题 我一直在通过
  • 由于 __init__ 构造函数而产生的 Pytest 集合警告

    我一直在使用 Pytest 和 Selenium Web 驱动程序自学测试自动化 我所有的测试函数都在一个名为测试网络 py 它位于名为的目录中tests 我将所有函数分开 并将它们放在一个名为的单独目录中的自己的文件中测试用例 例如 这就
  • 将固定装置传递给 pytest 中的测试类

    考虑以下伪代码来演示我的问题 import pytest pytest fixture def param1 return smth yield wilma pytest fixture def param2 return smth yie
  • 如何将 pytest 装置与 django TestCase 一起使用

    我如何在TestCase方法 类似问题的几个答案似乎暗示我的例子应该有效 import pytest from django test import TestCase from myapp models import Category py
  • 如何在“python setup.py test”中运行 py.test 和 linter

    我有一个项目setup py文件 我用pytest作为测试框架 我还在我的代码上运行各种 linter pep8 pylint pydocstyle pyflakes ETC 我用tox在多个 Python 版本中运行它们 并使用以下命令构

随机推荐