iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >django写单元测试的方法
  • 171
分享到

django写单元测试的方法

2024-04-02 19:04:59 171人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

   从网上找了很多Django单元测试的案例,感觉不是很好用,于是自己写了一套测试方法,在测试环境我们只需要传uri 、请求方式、参数即可一键对所有接口进行

   从网上找了很多Django单元测试的案例,感觉不是很好用,于是自己写了一套测试方法,在测试环境我们只需要传uri 、请求方式、参数即可一键对所有接口进行测试。

一、使用requests模拟Http请求

   假设你执行成功的返回的JSON格式如下:


{
  "code": 0,
  "message": "OK",
  "data": {
    "first": false,
    "token": "3eeeb5bdad75cbe442fd9c6df5373550"
  },
  "elapsed": 96
}

  我写了一个公共的测试方法test(),def test(method, url, body_data=None, query_string=None, rest_query_string=None): pass, 传uri 、请求方式、参数(query_string,body或者rest都支持)即可,如下代码可在tests.py文件里执行。


from djanGo.test import TestCase

# Create your tests here.
# coding:utf-8
from django.test import TestCase, Client
import os
import requests
import json


user = "1234567"
host = "http://localhost:8006/app"

false = False
true = True
null = None
token = None
POST = "POST"
GET = "GET"
DELETE = "DELETE"
PUT = "PUT"
headers = {'content-Type': 'application/json', 'Accept': '*/*'}

login_data = json.dumps({"phone": user,
                         "pwd": "e10adc3949ba59abbe56e057f20f883e",
                         "login_type": 0,
                         "identifier": "",
                         "role": 0})
login = requests.post(host + "/login", data=login_data, headers=headers)

login_content = eval(login.content.decode("utf-8"))
if login_content["code"] == 0:
    print("login 成功")
    token = login_content["data"]["token"]
    print("token:" + token)
else:
    print("login fail")
if not token:
    raise Exception("登录异常")
headers["user-token"] = token


def test(method, url, body_data=None, query_string=None, rest_query_string=None):
    if query_string:
        url = host + url + (str(rest_query_string) if rest_query_string is not None else "") + "?" + query_string
    else:
        url = host + url + (str(rest_query_string) if rest_query_string is not None else "")
    if method in [POST, DELETE, PUT] and body_data:
        body_data = json.dumps(body_data)
    response_data = requests.request(method, url, data=body_data, headers=headers)
    response_data = response_data.content.decode("utf-8")
    if response_data.find("\"code\": 0") != -1:
        print(url + " 成功!")
    else:
        print(url + " 失败!" + response_data)


test(GET, "/check_token/", rest_query_string=token)
test(GET, "/get/child")

我们只需要一键执行tests.py文件就能看到效果,如下:

在这里插入图片描述

二、优化代码将测试结果优雅地输出到md文件里

优化test方法, 添加样式,md文件支持读取样式。


def test(method, url, body_data=None, query_string=None, rest_query_string=None):
    if query_string:
        url = host + url + (str(rest_query_string) if rest_query_string is not None else "") + "?" + query_string
    else:
        url = host + url + (str(rest_query_string) if rest_query_string is not None else "")
    if method in [POST, DELETE, PUT] and body_data:
        body_data = json.dumps(body_data)
    response_data = requests.request(method, url, data=body_data, headers=headers)
    response_data = response_data.content.decode("utf-8")
    status = "<font color='red'>失败</font>"
    if response_data.find("\"code\": 0") != -1:
        status = "<font color='green'>成功</font>"
        print(url + " 成功!")
    else:
        print(url + " 失败!")
    response_data = "```json\n" + response_data + "\n```"
    print("url: " + url + "\n返回状态: " + status + "\n响应数据:\n" + response_data, file=file)

在这里插入图片描述
在这里插入图片描述

用md编辑器打开,查看结果也是非常的直观:

在这里插入图片描述

到此这篇关于django写单元测试的方法的文章就介绍到这了,更多相关django单元测试内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: django写单元测试的方法

本文链接: https://www.lsjlt.com/news/124187.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • django写单元测试的方法
       从网上找了很多django单元测试的案例,感觉不是很好用,于是自己写了一套测试方法,在测试环境我们只需要传uri 、请求方式、参数即可一键对所有接口进行...
    99+
    2024-04-02
  • 详解Python单元测试的两种写法
    目录一、前言二、实现1.doctest2.unittest一、前言 python的两个单元测试包分别是 doctest 和 unittest,这两个包的使用起来各有长处,适用于不同的...
    99+
    2024-04-02
  • 使用django怎么编写一个单元测试功能
    本篇文章给大家分享的是有关使用django怎么编写一个单元测试功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、使用requests模拟Http请求   假设你执行成功的返...
    99+
    2023-06-14
  • Django中怎么实现单元测试
    在Django中,可以使用Django提供的TestCase类来编写单元测试。下面是一个示例: 创建一个测试类,并继承自djang...
    99+
    2024-03-06
    Django
  • SpringBoot+TestNG单元测试的实现方法
    这篇文章主要讲解了“SpringBoot+TestNG单元测试的实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot+TestNG单元测试的实现方法”吧!目录背景接口测...
    99+
    2023-06-20
  • 使用VisualStudio编写单元测试
    一、什么是单元测试 单元测试就是编写一段代码,用来检查某个特定条件下,另外一段代码的行为是否符合我们的预期。单元测试的代码与实际程序的代码具有同等的重要性。每一个单元测试,都是用来定...
    99+
    2024-04-02
  • nodejs 单元测试 要写些什么
    Node.js是现代的服务器端JavaScript环境,逐渐成为了许多企业和个人开发项目的首选。在实际开发过程中,单元测试是一项非常重要的部分。通过单元测试,可以保证代码的质量和可靠性,减少开发过程中的错误和调试时间。Node.js的单元测...
    99+
    2023-05-18
  • 使用模拟编写单元测试
    本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《使用模拟编写单元测试》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~问题内容我在里面写了一个rest a...
    99+
    2024-04-04
  • .NETCore单元测试的两种方法介绍
    应用程序测试的类型很多,包括集成测试,Web 测试,负载测试等。在最底层的是单元测试,此测试可以测试单个软件组件或方法。单元测试一般只测试开发人员的代码,不应该测试基础结构普、问题,...
    99+
    2024-04-02
  • .NET Core单元测试的方法有哪些
    这篇文章主要介绍“.NET Core单元测试的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“.NET Core单元测试的方法有哪些”文章能帮助大家解决问题。应用程序测试...
    99+
    2023-06-30
  • C++ 函数单元测试的替代方法?
    除 google test 外,c++++ 单元测试还有其他现代且灵活的方法,包括:catch2:现代、轻量级的框架,易于使用和配置。doctest:无头文件依赖关系,直接包含即可使用。...
    99+
    2024-04-24
    c++ 单元测试 替代方法
  • JunitMockito实现单元测试方法介绍
    目录一、前言二、JUnit 框架三、Mockito 框架3.1 使用 Mockito 创建 mock 对象3.2 使用 mock 对象实践单元测试3.3 使用 PowerMock m...
    99+
    2024-04-02
  • java-单元测试
    一、什么是单元测试? 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。至于“单元”的大小或范围,并没有一个明确的标准,“单元”可以是一个函数、方法、类、功能模块或者子系统。 单元测试通常和白盒测试联系到...
    99+
    2023-09-26
    java 学习 Powered by 金山文档
  • Android Studio下的单元测试怎么编写
    在Android Studio中编写单元测试可以使用JUnit框架来进行测试。以下是编写Android Studio下单元测试的基本...
    99+
    2023-10-21
    Android
  • Net Core后端单元测试的实现方法
    这篇文章主要介绍了Net Core后端单元测试的实现方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 前言单元测试一直都是"好处大家都知道很多,但是因为种种原...
    99+
    2023-06-08
  • java抽象类如何写单元测试
    在Java中,可以使用JUnit框架来编写单元测试。对于抽象类,可以编写一个具体的子类来测试抽象类的方法。以下是一个示例:1. 创建...
    99+
    2023-08-31
    java
  • 如何为Bash脚本写单元测试
    小编给大家分享一下如何为Bash脚本写单元测试,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为什么要为 Bash 脚本写单元测试因为 Bash 脚本通常都是在执行...
    99+
    2023-06-15
  • Go 函数单元测试的自动化方法
    在 go 中,可以通过以下方法自动化单元测试:使用 go test 命令,提供灵活的测试运行和管理选项。集成第三方测试框架,获得额外的功能和灵活性。利用持续集成工具,在每次代码更改时自动...
    99+
    2024-05-03
    自动化 单元测试 标准库
  • Python 单元测试 & 文档测试
    1.1   单元测试1.1.1   单元测试编写单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。编写一个Dict类,这个类的行为和dict一致,但是通过属性来访问。>>> d = Dict(a=1,...
    99+
    2023-01-31
    单元测试 文档 测试
  • Go 中异步函数的单元测试方法
    在 go 中,异步函数可以通过并发测试进行单元测试,以模拟并发执行并测试异步函数的行为。步骤如下:创建一个超时上下文。创建一个通道来接收结果。调用异步函数并将结果写入通道。从通道中读取结...
    99+
    2024-05-01
    go 单元测试 异步函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作