通过Django Admin+HttpRunner1.5.6实现简易接口测试平台

下面是通过Django Admin+HttpRunner1.5.6实现简易接口测试平台的完整攻略:

简介

首先,我们介绍一下Django Admin和HttpRunner的基础概念和用途。

Django Admin

Django Admin是一个基于Django框架的自动生成管理后台的工具,可以快速便捷地生成实现增删改查等操作的Web页面。我们可以通过Django Admin来实现接口管理,创建接口的数据模型等。

HttpRunner

HttpRunner是一个基于Python Requests库的开源的 HTTP(S) 接口自动化测试框架,支持多种方式的测试用例编写,比如YAML、JSON等。通过HttpRunner的测试用例可以实现对接口的测试。

组合使用

我们将Django Admin和HttpRunner进行组合,实现一个简易的接口测试平台,可以通过Django Admin的管理后台创建接口模型,然后再通过HttpRunner的测试用例对接口进行测试。

操作步骤

下面是通过Django Admin+HttpRunner实现简易接口测试平台的操作步骤:

1. 创建Django项目

首先,在命令行窗口或终端中执行以下命令,创建一个Django项目:

django-admin startproject api_test_platform

2. 创建Django App

创建Django App,命名为apis:

python manage.py startapp apis

3. 安装HttpRunner

使用pip命令安装HttpRunner:

pip install httprunner==1.5.6

4. 构建数据模型

在Django App的models.py文件中定义接口模型,代码如下:

from django.db import models

class API(models.Model):
    name = models.CharField(max_length=255, verbose_name='接口名称')
    url = models.CharField(max_length=255, verbose_name='请求地址')
    method = models.CharField(max_length=10, verbose_name='请求方法', choices=[('GET', 'GET'),('POST', 'POST')], default='GET')

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'API'
        verbose_name_plural = 'APIs'

5. 创建管理后台

在Django App的admin.py文件中,注册API模型,代码如下:

from django.contrib import admin
from .models import API

admin.site.register(API)

6. 编写测试用例

在Django项目的根目录下,创建tests目录,然后在该目录中创建testcases.yaml文件,编写测试用例,示例代码如下:

- test:
    name: 查询接口
    request:
        url: http://127.0.0.1:8000/api/get_api/
        method: GET
    validate:
        - eq: ['status_code', 200]
        - eq: ['headers.Content-Type', 'application/json']
        - eq: ['body.name', '测试接口']

7. 编写测试脚本

在Django项目的根目录下,创建tests目录,然后在该目录中创建testcases.py文件,编写测试脚本,示例代码如下:

from httprunner import HttpRunner, Config, Step

class TestAPI(HttpRunner):
    config = (
        Config("查询接口")
        .base_url("http://127.0.0.1:8000")
        .verify(False)
    )
    teststeps = [
        Step(
            RunRequest("查询接口")
            .get("/api/get_api/")
            .with_variables(**{})
            .extract()
            .validate()
        ),
    ]

8. 运行测试用例

在命令行窗口或终端中执行以下命令,运行测试用例:

hrun tests/

9. 执行结果

执行完成之后,可以查看输出结果,判断接口能否正常工作。

10. 可能的问题

如果在执行过程中,遇到了类似以下错误:

no module named 'django.core.urlresolvers'

那么,可以尝试在项目的settings.py文件中,添加如下的代码:

import django.urls as urls

urls.resolvers.reverse_lazy = urls.reverse

示例说明1:在Django管理后台创建接口模型

首先,在Django项目中,我们需要在models.py文件中定义接口模型:

from django.db import models

class API(models.Model):
    name = models.CharField(max_length=255, verbose_name='接口名称')
    url = models.CharField(max_length=255, verbose_name='请求地址')
    method = models.CharField(max_length=10, verbose_name='请求方法', choices=[('GET', 'GET'),('POST', 'POST')], default='GET')

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'API'
        verbose_name_plural = 'APIs'

然后,在admin.py文件中注册API模型:

from django.contrib import admin
from .models import API

admin.site.register(API)

在Django项目的命令行窗口或终端中执行以下命令,启动服务器:

python manage.py runserver

在浏览器中打开管理后台网址,例如:

http://127.0.0.1:8000/admin/

用管理员账号登录后,可以在APIs模块下,创建和管理接口模型。

示例说明2:使用HttpRunner的测试用例对接口进行测试

首先,在Django项目的根目录下,创建tests目录,然后在该目录中创建testcases.yaml文件,编写测试用例:

- test:
    name: 查询接口
    request:
        url: http://127.0.0.1:8000/api/get_api/
        method: GET
    validate:
        - eq: ['status_code', 200]
        - eq: ['headers.Content-Type', 'application/json']
        - eq: ['body.name', '测试接口']

然后,在同一级目录下,创建tests.py文件,编写测试脚本:

from httprunner import HttpRunner, Config, Step

class TestAPI(HttpRunner):
    config = (
        Config("查询接口")
        .base_url("http://127.0.0.1:8000")
        .verify(False)
    )
    teststeps = [
        Step(
            RunRequest("查询接口")
            .get("/api/get_api/")
            .with_variables(**{})
            .extract()
            .validate()
        ),
    ]

在命令行窗口或终端中执行以下命令,运行测试用例:

hrun tests/

执行完成之后,可以查看输出结果,判断接口能否正常工作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过Django Admin+HttpRunner1.5.6实现简易接口测试平台 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • PHP连接Nginx服务器并解析Nginx日志的方法

    下面我来详细讲解连接Nginx服务器并解析Nginx日志的方法,步骤如下: 步骤一:配置Nginx 在Nginx配置文件中,添加日志格式配置项。 nginx log_format nginx_access ‘$remote_addr – $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_…

    人工智能概览 2023年5月27日
    00
  • Pytorch 实现focal_loss 多类别和二分类示例

    让我来为你详细讲解一下“Pytorch 实现focal_loss 多类别和二分类示例”的完整攻略。 1. 什么是focal loss? Focal Loss是一种改进的交叉熵损失函数,适用于类别不平衡的情况。在深度学习中,由于样本分布不均,即某些类别的样本数很少,另一些类别的样本数很多,这种不平衡的情况会导致模型训练不稳定,容易使模型在少数类别上产生过拟合,…

    人工智能概论 2023年5月25日
    00
  • python3转换code128条形码的方法

    下面是详细讲解“python3转换code128条形码的方法”的完整攻略。 什么是Code128条形码 Code 128是一种高密度的线性条码标准,可表示任何长度的数字或字母字符集。它通常用于商业和运输行业,以及在医疗、邮政和其他行业中广泛使用。 Python3中生成Code128条形码的方法 Python3中可以使用第三方库来生成Code128条形码。下面…

    人工智能概论 2023年5月25日
    00
  • 深入理解Java事务的原理与应用

    关于深入理解Java事务的原理与应用的攻略,我将从以下几个方面进行阐述: 1. 什么是事务? 事务是数据库管理中的概念,用于表示一系列的数据库操作,这些操作被视为整体,或者是原子操作。事务必须是满足ACID(原子性、一致性、隔离性以及持久性)的。 2. 事务的隔离级别 数据库中的事务隔离级别是指多个并发的事务之间的隔离程度,包括以下隔离级别: READ UN…

    人工智能概览 2023年5月25日
    00
  • 完美处理python与anaconda环境变量的冲突问题

    针对这个问题,我会提供一份完整的攻略。 1. 什么是环境变量? 在深入讲解这个问题之前,我们首先需要了解一下什么是“环境变量”。环境变量可以理解为是全局变量,可以在不同的程序中被调用。在操作系统中,每个进程都有自己的一组环境变量。 在Windows系统中,我们可以通过“控制台 > 系统和安全 > 系统 > 高级系统设置 > 环境变量”…

    人工智能概览 2023年5月25日
    00
  • django创建最简单HTML页面跳转方法

    下面是详细的攻略: 确认Django环境已经搭建 在使用Django创建HTML页面跳转之前,需要确保Django环境已经搭建成功。 第一步:创建Django项目 创建Django项目,使用命令行工具,执行以下命令: django-admin startproject projectname 其中,projectname为你的项目名称。 第二步: 创建Dja…

    人工智能概论 2023年5月25日
    00
  • Python工程师必考的6个经典面试题

    下面我会详细讲解“Python工程师必考的6个经典面试题”的完整攻略。 1. 实现单例模式 单例模式指的是一个类只能创建一个实例。在Python中,实现单例模式有多种方法,包括使用装饰器、使用元类等。以下是使用装饰器的实现代码示例: def singleton(cls): instances = {} def wrapper(*args, **kwargs)…

    人工智能概览 2023年5月25日
    00
  • Python3数字求和的实例

    Python3数字求和的实例是一个非常简单的程序,但它很好地展示了Python语言的一些关键特性。下面我来详细讲解这个程序的实现方法: 程序的实现方法 我们将使用Python解释器来运行这个程序,主要有以下两个步骤: 打开Python解释器:许多操作系统都已经默认安装了Python解释器,输入python3并按下回车键即可打开它。 编写Python代码:使用…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部