通过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日

相关文章

  • Django实现组合搜索的方法示例

    我将为你详细讲解“Django实现组合搜索的方法示例”的完整攻略。 标题一:背景介绍 在开发Web应用程序时,搜索功能是很重要的一部分,而组合搜索能够提供更精确的搜索结果。在Django中,也可以通过特定的方法来实现组合搜索。 标题二:实现步骤 步骤1:创建搜索表单 首先要创建一个搜索表单,用于输入搜索关键词和选择搜索条件(如‘按标题搜索’、‘按标签搜索’等…

    人工智能概论 2023年5月25日
    00
  • 什么是python的id函数

    Python的id()函数是用于返回对象的唯一标识符的内置函数。每个对象在内存中都有一个唯一的身份标识符,这个标识符可以被用于比较不同对象之间的身份是否相同。在Python中,可以使用id()函数来获得对象的身份标识符。 下面是id()函数的格式和使用方法。 格式 id(object) 参数 object:要获取内存地址的对象,可选参数。 返回值 返回对象的…

    人工智能概览 2023年5月25日
    00
  • Centos 通过 Nginx 和 vsftpd 构建图片服务器的教程(图文)

    接下来我将详细讲解“Centos 通过 Nginx 和 vsftpd 构建图片服务器的教程(图文)”的完整攻略。 1. 确认环境 在开始构建图片服务器之前,我们需要确认以下环境: 操作系统:CentOS 7 Web 服务器:Nginx FTP 服务器:vsftpd 如果您的环境满足以上要求,那么就可以开始构建图片服务器了。 2. 安装 Nginx 首先我们需…

    人工智能概览 2023年5月25日
    00
  • Java中获取MongoDB连接的方法详解

    Java中获取MongoDB连接的方法详解 在Java中使用MongoDB进行数据库操作,需要先获取到MongoDB的连接。本文将介绍如何使用Java获取MongoDB连接的方法。 1. Maven依赖 首先需要在Maven项目中添加MongoDB的依赖: <dependency> <groupId>org.mongodb</g…

    人工智能概论 2023年5月25日
    00
  • 使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)

    使用PyTorch搭建AlexNet操作的完整攻略可以分为两部分:微调预训练模型和手动搭建。下面分别介绍这两个部分的具体操作过程和代码示例: 微调预训练模型 微调预训练模型旨在通过对一个已经在大型数据集上训练过的模型进行细调,来提高该模型在你自己的数据集上的表现。常见的预训练模型包括AlexNet、VGG、ResNet等。下面以AlexNet为例,介绍微调预…

    人工智能概论 2023年5月25日
    00
  • Windows Server 2016 Nginx 安装配置详细图文教程

    那我来为您详细讲解“Windows Server 2016 Nginx 安装配置详细图文教程”的完整攻略。 1. 安装 Nginx 1.1 下载 Nginx for Windows 版,可在 Nginx 官网下载到。 1.2 解压该压缩包,将解压出来的 Nginx 文件夹放置到 C 盘根目录下。 1.3 打开 cmd 命令行,进入到 Nginx 所在目录,执…

    人工智能概览 2023年5月25日
    00
  • python主要学什么?

    Python是一门高级编程语言,广泛应用于数据分析、人工智能、Web开发等领域。那么,想要学好Python,需要学习哪些知识呢?下面是一些建议: 1.基础语法 Python是一门简单易学的语言,重要的是掌握它的基本语法。这包括变量、数据类型、数学运算、流程控制(if/else语句、循环语句)和函数等基础内容。 # 示例1:变量和数学运算 # 定义两个变量a和…

    人工智能概览 2023年5月25日
    00
  • pytorch 实现在预训练模型的 input上增减通道

    要在 PyTorch 中增减预训练模型的输入通道数,可以参照以下步骤: 步骤一:下载并加载预训练模型 首先需要下载预训练模型的权重参数文件,在本示例中我们使用的是 ResNet18 模型 import torch import torchvision.models as models model = models.resnet18(pretrained=Tr…

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