首页 > 其他分享 >pytest封装接口测试框架

pytest封装接口测试框架

时间:2023-02-18 17:02:04浏览次数:39  
标签:封装 url resp pytest 接口 测试用例 测试 requests

pytest封装接口自动化测试


pytest是一个Python的单元测试框架,它可以很好地支持接口自动化测试。要使用pytest进行接口测试,需要进行如下步骤:

  1. 安装pytest

使用pip安装pytest:

pip install pytest

  1. 安装requests

使用pip安装requests库:

pip install requests

  1. 创建测试用例

编写测试用例,使用requests库发送HTTP请求,然后断言响应结果是否符合预期。

例如,假设有一个简单的接口:

bash

GET /hello?name=world

返回如下JSON格式的响应:

json

{
    "message": "Hello, world!"
}

可以编写如下的测试用例:

python

import requests

def test_hello():
    url = 'http://localhost:8000/hello?name=world'
    resp = requests.get(url)
    assert resp.status_code == 200
    assert resp.json() == {'message': 'Hello, world!'}

在这个测试用例中,首先发送了一个GET请求到指定的URL,然后使用断言语句判断响应状态码是否为200,以及响应结果是否与预期相符。

  1. 运行测试用例

在命令行中执行如下命令来运行测试:

pytest test_api.py

其中test_api.py是包含测试用例的文件名。pytest会自动发现并运行其中的测试用例,输出测试结果。

可以使用pytest提供的很多选项来定制测试行为,例如指定测试文件或目录、输出测试结果、指定测试环境等。

  1. 封装测试框架

可以将测试用例封装在一个类中,并添加setUp和tearDown方法来初始化和清理测试环境。

例如,可以创建一个名为TestApi的类,并将测试用例和相关方法放到其中:

python

import requests

class TestApi:
    def setup(self):
        # 初始化测试环境
        self.base_url = 'http://localhost:8000'

    def teardown(self):
        # 清理测试环境
        pass

    def test_hello(self):
        url = f'{self.base_url}/hello?name=world'
        resp = requests.get(url)
        assert resp.status_code == 200
        assert resp.json() == {'message': 'Hello, world!'}

在这个封装的测试框架中,setUp方法用于初始化测试环境,tearDown方法用于清理测试环境。test_hello方法是实际的测试用例,其中使用了self.base_url来构造请求URL。使用这种方式可以更好地组织和管理测试用例。


标签:封装,url,resp,pytest,接口,测试用例,测试,requests
From: https://blog.51cto.com/u_14911999/6065455

相关文章

  • Collection接口
    Collection接口继承树: 重点在于List中的ArrayList以及迭代器的使用,而Set使用的较少,只做一定的源码了解即可Collection接口的一些方法使用:1、添加add(Objectobj)......
  • 1688商品详情接口代码展示
    item_get-获得1688商品详情接口,利用该接口可以拿到商品ID,商品标题,商品优惠券,商品到手价,商品价格,商品优惠价,商品sku属性,商品图片,商品视频,商品sku属性图片,商品属性描述,商品库......
  • 1688关键词搜索商品列表接口代码展示
    item_search-按关键字搜索商品接口,利用该接口可以拿到商品ID,商品标题,商品优惠券,商品到手价,商品价格,商品优惠价,商品sku属性,商品图片,商品视频,商品sku属性图片,商品属性描述,商品......
  • PHP RSA2加密和解密以及接口签名和验签
    开发中吗我们经常要与接口打交道,无论是调取别人的接口还是给别人提供接口,如何保障在接口调用时双方数据的安全性和一致性,,这里就涉及到数据加密以及签名验证服务。本文以PHP......
  • 接口自动化测试思路和实战(5):【推荐】混合测试自动化框架(关键字+数据驱动)
    混合测试自动化框架(关键字+数据驱动)关键字驱动或表驱动的测试框架这个框架需要开发数据表和关键字。这些数据表和关键字独立于执行它们的测试自动化工具,并可以用来......
  • 接口自动化测试思路和实战(4):数据驱动测试框架
    数据驱动测试框架在这里测试的输入和输出数据是从数据文件中读取(数据池,ODBC源,CSV文件,EXCEL文件,Json文件,Yaml文件,ADO对象等)并且通过捕获工具生成或者手工生成的代码脚......
  • 接口自动化测试思路和实战(3):测试库框架
    测试库框架与模块化测试脚本框架很类似,并且具有同样的优点。不同的是测试库框架把待测应用程序分解为过程和函数而不是脚本(而测试脚本中只是包含调用函数的用例即可)。......
  • API 接口测试工具--Eoapi
    一个简单、好用的API接口测试工具——Eoapi,下面会给大家简单演示一下,如何用这款工具进行API接口测试。  API接口测试在测试中我们可能会关注状态码、响应体以......
  • 接口自动化测试思路和实战(2):模块化测试脚本框架
    模块化测试脚本框架需要创建独立的可描述的模块、程序片断以及待测试应用程序的脚本。这些小脚本进行组合,就能组成用来独立运行特定的测试的测试用例脚本。场景一:......
  • 抽象类和接口
    抽象类概念抽象方法:只有方法的定义,没有方法体的实现,这种方法就是抽象方法定义类抽象方法的类,就是抽象类 定义和实现抽象类和抽象方法是用abstract关......