首页
学习
活动
专区
圈层
工具
发布

第 15 篇:接口的单元测试

django 单元测试框架的使用方式。...django 提供了多个 XXTestCase 类,这些类均直接或者间接继承自 unittest.TestCase 类,因为 django 的单元测试框架是基于 unittest 的,所以编写的测试用例类也都需要直接或者间接继承...默认情况下,测试代码需要放在 django 应用的下的 tests.py 文件或者 tests 包里,django 会自动发现 tests 包中以 test 开头的模块(例如 test_models.py...run manage.py test 大部分测试都通过了,但是也有一个测试失败了,也就是说我们通过测试发现了一个 BUG: =====================================...对 django 内置的 request 进行了包装, # 因此这里要手动使用 drf 提供的 Request 类对 django 的 request 进行一层包装。

1.6K20

全面掌握Django开发RESTful API:从基础到高级的实战指南

Django REST framework提供了强大的测试工具,使我们能够轻松地为API编写测试用例。1. 编写单元测试首先,我们为Book API编写一些单元测试。...Django的测试框架基于Python的unittest模块,并通过TestCase类提供了对数据库操作的支持。...,并验证了未经认证的请求是否会被拒绝(返回401状态码),而认证用户能够正常访问资源。...使用drf-yasg生成Swagger文档drf-yasg是一个用于生成Swagger文档的第三方库,它能够自动生成交互式API文档。...使用Accept Header进行版本控制另一种更为优雅的方式是使用HTTP的Accept头来管理API版本。Django REST framework支持通过自定义的版本类来实现这种方式。

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    聊一聊接口测试后垃圾数据如何清理?

    在接口测试过程中,生成测试数据是不可避免的,但及时清理垃圾数据对维护测试环境稳定性至关重要,接口测试通常会在测试环境中生成一些临时数据比如创建的用户、订单、日志等等,这些数据如果不清理可能会影响后续的测试结果或者导致环境混乱影响后续的测试...常用的方法包括自动化清理、事务回滚、调用删除接口、数据库直接删除、使用测试框架的钩子函数、隔离测试数据、定期任务清理以及数据标记软删除等,每个方法都有其优缺点,需要根据具体情况选择合适的方式。...使用自动化清理可能在每次测试后执行,但需要维护清理脚本;事务回滚适合支持事务的接口,可以保证数据一致性,但可能不适用于所有场景;调用删除接口是最直接的方式,但要确保接口的可靠性和权限问题;直接操作数据库虽然高效...测试用例示例from django.test import TestCaseclass APITestCase(TestCase): def test_create_order(self):...六、注意事项数据备份策略重要基线数据需提前备份mysqldump -t -where="create_time>='2023-09-20'" test_data > backup.sql权限控制测试账号应具备精确的数据删除权限禁止使用超级管理员账号执行测试性能优化批量删除替代逐条删除对千万级测试数据采用分区表按日清理阅读后若有收获

    43800

    构建强大的API-Django中的REST框架探究与实践

    例如,我们可以编写基于APITestCase的测试类来测试API的各种端点和功能。另外,为了方便使用和理解API,我们还可以使用Django REST框架提供的文档工具来自动生成API文档。...文件上传与存储在许多应用程序中,文件上传和存储是常见的需求。Django REST框架提供了简单而强大的文件上传和存储功能,使我们能够轻松地处理文件上传和管理。...定制化API响应通过使用DRF(Django REST Framework)提供的Response对象,我们可以定制化API的响应数据格式和内容。...return Response(data)此外,我们还可以使用DRF的Response渲染器和解析器来自动处理不同类型的响应数据,如JSON、XML等。...Django REST框架提供了内置的测试工具和类,可以帮助我们编写各种类型的测试。例如,我们可以编写基于APITestCase的测试类来测试API的各种端点和功能。25.

    2.6K20

    Django进阶:DRF(Django REST framework)

    什么是DRF? DRF即Django REST framework的缩写,官网上说:Django REST framework是一个强大而灵活的工具包,用于构建Web API。...“Django REST 框架”这个名字是在 2011 年初决定的,选择它只是为了确保开发人员很容易找到这个项目。在整个文档中,我们尝试使用更简单、技术上正确的术语“Web API”。...ViewSet而不是view,所以我们可以通过简单地将ViewSet注册到Router来自动生成API的 URL conf。...可以发现,和Django程序相比,我们没有写template做前端的显示,而是写了序列化类提供API。前端可以分离出来,使用API来和后端通信。...django drf (图片来自:一图看懂Django和DRF(https://zhuanlan.zhihu.com/p/53957464)) 测试API: 使用浏览器访问网址: http://127.0.0.1

    1.7K20

    关于Django REST framework 的一些笔记

    还有DRF 预设的pagination 部份也没有处理得很好,查了一下发现也有很多人遇到,所以有满多文章在讲这件事的,这里列出我自己觉得比较有用的: Ditching Django REST Framework...自己写个框架:即便只有用到DRF的APIView其他都没用到,还是推荐使用DRF,比起你自己用Django撰写的API还是好上许多。...这篇是作者使用了DRF 并测试其效能以后自己归纳出的一些结论,基本上是推荐使用DRF,算是我看过最完整对DRF 做效能测试的文章了。...---- 另外,DRF也有设计一些可以拿来做测试的函式,列在官方的这篇文章里头:Testing - Django REST framework ---- DRF Docs DRF Docs 主要功能就是可以根据你在...但实际使用过发现有个需求,就是我想在docstring直接写markdown,觉得应该也有人有这样的需求,所以找了一下。

    1.2K30

    从Django的Turotial中可以学到什么?

    github: django_tutorial_demo 我自己在实现代码的过程中发现这个新手指导基本上就算是Django项目开发的一个缩影了。你完全可以做完它之后继续跟着它的思路走。...Django的基本使用 当然这个是最基础的了,一个入门教程读完,如果你还不能够开始使用这个东西那只能说明这个入门教程写的很失败。...不过这个东西的使用打个比喻来说就是,用FBV像是在写作文,所有措词用句都得自己发挥,而CBV就是完形填空,填好几个项,一片文章就完成了。 5....TDD测试驱动开发 上次写Django的测试代码还是在去年,不得不说我目前对开发中的测试重视程度还是不够。...一些不足 虽然在后面的Advanced Tutorial中有介绍如何打包和发布项目,但这似乎不是Django的重点。

    1.1K10

    不会DRF?源码都分析透了确定不来看?

    快速使用DRF写出接口 序列化和反序列化 drf快速使用 views.py serializer.py urls.py 在settings的app中注册 models.py postman测试 CBV源码流程分析...Django View和DRF APIView的小插曲 DRF之APIView和Request对象分析 APIView的执行流程 Request对象分析 原来的django中没有request.data...drf快速使用 快速写5个接口 使用Django写五个接口得配5个路由,5个视图函数去处理,现在使用drf不需要了,如下: -查询所有---》get->http://127.0.0.1:8000...多态、组合、反射 Django View和DRF APIView的小插曲 ps:不管是DRF中的APIView还是乱七八糟的xxView,最后只要继承了Django中的View就是视图类 DRF之APIView...方法,发现APIView类中有,千万注意了这里可不是View中的dispatch方法了 4、APIView类中的dispatch主要源码: # APIView的dispatch def dispatch

    1.7K10

    DjangoRestFramework,restful规范、APIview、解析器组件、Postman等

    PUT,而不是POST。       ...比如,/articles这个 URL 就是正确的,而下面的 URL 不是名词,所以都是错误的。...三 Django RestFramework(简称DRF) drf是django发展来的一个符合restful接口规范的一个东西,啥东西呢,就是django的一个app,还记得app是啥不。...return HttpResponse('POST')       而DRF通过自己的解析器,帮我们给request里面封装了一个request.data属性,获取请求体里面的数据,然后解析...四 Postman的使用 Postman是一个模拟发送请求并获得响应结果的工具,不用这个工具的时候,我们写web项目,调试接口返回数据的时候,是不是都要启动项目,通过浏览器访问,然后查看数据啊,有了这个工具我们就可以不用启动浏览器来

    3.1K20

    Django 1.10中文文档-第一个应用Part5-测试

    测试使您的代码更受欢迎 你可能已经创建了一个堪称辉煌的软件,但是你会发现许多其他的开发者会由于它缺少测试程序而拒绝查看它一眼;没有测试程序,他们不会信任它。...这背后的过程: python manage.py test polls命令会查找所有polls应用中的测试程序 发现一个django.test.TestCase的子类 它为测试创建了一个特定的数据库...字段的值是30天后的未来日期 然后利用assertIs()方法,它发现was_published_recently()返回了True,而不是我们希望的False 这个测试通知我们哪个测试失败了...下面我们需要导入测试客户端类(在之后的tests.py中,我们将使用django.test.TestCase类,它具有自己的客户端,不需要导入这个类): >>> from django.test import...在最坏的情况下,在你的开发过程中,你会发现许多测试变得多余。其实,这不是问题,对测试来说,冗余是一件好事。只要你的测试被合理地组织,它们就不会变得难以管理。

    1.3K60

    DRF系列总结一:DRF是啥?为啥子要用?

    目前组内很多项目都在用Django REST framework(简称DRF)来构建Restful WebApi,并推广到了许多实习生同学和外部服务商的开发同学使用。...对于刚接触DRF的同学,都觉得有点儿懵,搞不懂为什么要用,怎么用才是最好的,于是我想把项目中对DRF的使用经验总结出几篇文章,希望能帮到后面的开发同学。...首先,假设阅读这篇文章的同学使用过Django或开发过蓝鲸应用,然后,我们先来简单了解下Django REST framework(DRF): 一、什么是Django REST framework(DRF...先从项目规模来看,如果是小项目(几个简单的接口和页面),用Django的FBV足矣,简单明了,学习成本低;中大型项目、多人参与的项目,建议使用DRF,虽然学习路线较长,但是长期来看,效率和规范性都更高。...我们可以看两张“糙图”(画的不是很精细): image.png 上面这张图是Django中开发业务逻辑涉及最多的内容,设计好db后,在urls中定义路由,在views中添加视图函数,并编写业务逻辑,

    10.4K114

    Kiwi TCMS 6.11发布 开源测试用例管理系统

    Kiwi TCMS 是一个集测试计划、测试运行和测试用例于一身的管理系统,用 Python 和 Django 编写。...6.11 版本已经发布,这是一个安全和改进版本,它更新了许多内部依赖项,添加了 2 个新的 Telemetry 报告,更新了 TestPlan 和 TestCase 克隆页面,并提供了其他一些改进和错误修复...TP 作者将始终设置为当前用户、克隆的TC 作者将始终设置为当前用户、在克隆时,始终保留测试用例的原始默认测试器、重构为基于类的视图、修复了版本值在 b/c 验证中失败的问题、修复了在 UI 中显示错误版本值的问题...将 Clone TestCase 页面转换为 Patternflix,极大地简化了 UI 和更新行为:允许克隆成多个测试计划、删除“Filter another plan”选项,将改为“Add TP to...这可能会破坏现有的 API 脚本,这些脚本试图通过名称而不是位置传递此参数 Settings  允许 ENV 变量 Kiwi_USE_TZ 和 Kiwi_Timezone 控制设置 Use_TZ 和 Timezone

    1.5K20

    Django rest Framework入门 一 :手工实现常见API

    Django REST Framework Django本身是一个前后端不分离的框架,适合很多相对简单的开发需求,但是现在很多场景比较复杂,尤其是前端比较复杂,而现在很多前端框架都很不错,能极大简化前端开发工作...Django REST Framework就是一个基于Django的前后端分离框架,可以将后端的功能封装成API对外提供服务。.... ├── book——————–Django应用,测试项目主要在这个目录中 ├── db.sqlite3————–数据库文件 ├── demo——————–Django项目目录 ├── docs———...做Web开发的时候常见操作,在View中利用Model对数据库进行增删查改操作,只是最终返回的是数据,而不是通过Template渲染过的页面,这样就和DRF的API能力非常相似 url解释 跟路由(demo...测试 test路径下有个文件:mannual_api.py 里面写了POST和DELETE两种API的测试代码,直接运行即可,会返回测试成功或者失败的提示 $ python .

    47810

    使用 React 和 Django REST Framework 构建你的网站

    在我们最近的工作中,构建网站使用的架构是带有 Django REST Framework(DRF)后端的 React 前端。它们是通过在前端使用 axios(前端库)调用后端 API 来交互的。...注意我假设你已经熟悉了 React,Redux,Django,DRF,NPM 等,本篇不是基础教程哦。...---- 后端(The Backend) 除了简单安装 Django 和 DRF 以及设置数据库以外,后端没有太多的工作要做 $ pip3 install django djangorestframework...现在,你已经拥有了一个后端 DRF API:叫 /auth 的 endpoint,访问它可以获得一个身份验证令牌。让我们先配置一个用户,并运行后端服务器以供测试。...在服务器运行的情况下,你可以使用 curl 快速测试您的 /auth endpoint: $ curl -X POST -d "username=username&password=password"

    8.3K70

    Django中间件自定义开发指南:从原理到实战的深度解析

    本文将以通俗易懂的方式,带你掌握Django中间件的核心原理与开发技巧。...Django中间件的工作机制与此类似:当用户发起HTTP请求时,Django会按照settings.py中MIDDLEWARE列表的顺序,依次执行每个中间件的process_request方法。...性能优化技巧避免数据库查询:在__init__中不要执行数据库操作使用缓存:对频繁访问的数据使用django.core.cache异步处理:耗时操作(如日志记录)改用Celery禁用冗余方法:未使用的方法可直接...response, JsonResponse): return response if hasattr(response, 'json'): # 处理DRF...单元测试示例 使用Django的TestCase测试中间件逻辑:from django.test import TestCase, RequestFactoryfrom myapp.middleware

    44710

    DRF进阶之DRF视图和常用功能

    DRF视图和常用功能 DRF视图 DRF视图类介绍 在DRF框架中提供了众多的通用视图基类与扩展类,以简化视图的编写。...django-project\day2\django_drf>python manage.py startapp myapp 项目主路由配置: django_drf/urls.py 创建项目视图:...浏览器访问测试: http://127.0.0.1:8000/myapp/users1/ Request与Response Request DRF传入视图的request对象不再是Django默认的...,传递python对象 status:状态码,默认200 template_name:模板名称 headers:用于响应头信息的字典 content_type:响应数据的类型 使用方法: return...DRF支持四种认证方式: BasicAuthentication:基于用户名和密码的认证,适用于测试 SessionAuthentication:基于Session的认证 TokenAuthentication

    5.9K10
    领券