首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    teprunner测试平台用例前置模块开发

    编写好后,迁移到数据库: python manage.py makemigrations python manage.py migrate 新建teprunner/serializers.py文件,新增序列化器...数据库字段的命名是用的下划线,接口返回前端和前端传参是用的驼峰,所以这里通过source这种方式给env_config、project_id、env_name、creator_nickname进行了序列化器的重命名...from django.db.models import Q支持多种过滤条件,这在后面的代码中还能看到,比如模糊匹配。...Fixture有个creatorNickname字段,新增fixture时使用的是当前登录用户的昵称,修改fixture时需要用已保存的创建者,重写update方法来实现这个处理。...@click.native指在点击打开时获取数据。然后用v-for遍历列表展示下拉选项。

    1.7K20

    ​Pytest 高效测试 Python 代码

    pytest+requests); 4、pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成...这样,就可以在将来编写新的测试时,迅速确定是否要使用它。 何时使用 Fixture Fixture适用于提取在多个测试中使用的相同的数据或对象,但并不适合于需要对数据进行轻微变化的测试。...当发现自己在整个项目中反复使用某个fixture时,我们可以将fixture从测试模块移动到更通用的fixture相关模块中。这样就可以将它们导入到任何需要它们的测试模块中。...pytest-django[4]插件提供了一个django_db标记。任何没有这个标记的测试在试图访问数据库时都会失败。第一个试图访问数据库的测试将触发Django测试数据库的创建。...我们在本文的前面看到了django_db标记,而rf fixture提供了对Django的RequestFactory[10]实例的直接访问。

    42220

    FastAPI 之自动化测试数据库接口

    需要说明的是,后端服务基本是离不开关系型数据库的,我之前是使用 Django,Django 的 ORM 太优秀了,以至于我从 Django 转 FastAPI 有点很不适应。...在 ORM 领域,可以说除了 Django 的 ORM,就是 SQLAlchemy 了。...所以不用 Django,就必须会用 SQLAlchemy,要快速了解,看看廖雪峰的官方网站的使用 SQLAlchemy[1] 来快速入门。...FastAPI 涉及数据库的接口写起来并不难,跟着官方文档sql_databases[2],5 分钟,我们就可以生成关于数据库的增删改查的 Restful 风格的 API,难的是如何自动化的测试, 通常情况下...,我们会使用 pytest 进行自动化单元测试,根据数据库的记录数来断言,但是,每测试一次,数据库中的记录就保存了下来,你下次测试时如果不手动清理,那测试仍然可能失败。

    1.3K20

    pytest内核测试平台落地初体验

    tep startproject project_name 运行用例时,判断项目目录是否存在,如果不存在就调用tep startproject project_name创建项目脚手架。...更新conf.yaml中env 把前端传的当前运行环境更新到conf.yaml文件中: env: qa 动态生成或更新fixture_env_vars.py文件 根据环境变量功能模块的数据,动态生成fixture_env_vars.py...fixtures目录下所有文件 根据fixtures功能模块的数据,动态生成fixture_login.py等所有文件: from tep.client import request from tep.fixture...动态生成或更新tests某个test_文件 从数据库拿到用例代码,动态生成test_文件。...小结 本文介绍了我第一次做的测试平台的使用和原理,技术栈为Vue+Django+Django REST Framework+JWT+MySQL+pytest+Git+BitBucket+Drone+Nginx

    1.2K40

    野生的Python装饰器案例

    在函数使用相同参数执行第二次时,检测到函数已经执行过,会跳过执行函数,直接返回缓存值。...Django使用装饰器验证用户是否通过身份验证。如果通过验证,则返回正常的网页;否则返回登陆页面。...如果没有,pydantics 会引发错误。 3. call-throttle 是一个用于速率限制代码的库,它允许您将函数限制为每秒调用的次数。如果达到限制,则原始函数根本不会运行。...当用户浏览 URL 时,关联的函数会生成网页。...1. tenacity 的装饰器将函数设置为在失败时重试。您可以指定异常、失败次数、重试前的延迟以及各种策略。对于自然会出现暂时性错误(如网络调用)的操作很有用。 2.

    11610

    python测试开发django-177.启动项目添加初始化数据(fixtures的使用)

    前言 当启动 django 项目的时候,有些表需要添加一些初始化数据,比如省份需先添加到数据库里面。 可以使用django 的fixtures 来初始化表的数据。...数据的准备可以使用 manage.py dumpdata 命令生成,参考前面一篇https://www.cnblogs.com/yoyoketang/p/15692968.html 这里有一个简单的yoyo.person...你可以将配置项 FIXTURE_DIRS 设为一个 Django 需要额外寻找的目录列表。...manage.py loaddata 时,你也能指定一个到固定内容文件的路径,这将会覆盖查找常规目录的行为。...,用于 Django 需要额外寻找的目录列表 FIXTURE_DIRS = ('/path/to//fixtures/',) 方式3: manage.py loaddata 时,你也能指定一个到固定内容文件的路径

    90630

    再谈 API 的撰写 - 子系统

    我们看一些例子: 创建某些 skeleton - rails / django 都有新建项目,新建 model / controller 等的 CLI 获取系统的信息。...生成某些信息或者模拟某些行为。当你调试你的系统时,每次生成某种状态很烦人,比如说登录,可以通过 CLI 一键完成。 ... 这些例子大部分都需要系统的自省的能力,比如说下面这个 CLI: ?...这也印证了我之前的文章 里所述的将「编译时」和「运行时」分开的重要性。...比如你有一个 API 是 PUT /feature/:id,要测试这个 API 是否工作正常,你大概会考虑这些测试例: PUT 正确的数据到一个错误的 id,测试是否会出错; PUT 错误的 etag,...需要运行一个 temporary server 需要发送请求到 temporary server 上 需要检测 status code,以及 response header / body 来确认是否出现期待的结果

    78850

    善用 pytest fixture factory 构建结构优秀的单元测试

    对于 Python 应用,当项目逻辑复杂度较高时,单纯使用原生的 unittest 或者是 Django 提供的 TestCase 都会遇到一个恼人的问题:测试代码大部分工作在构建各种用例。...幸好有 pytest 提供的 fixture 机制,可以较好的解决这个问题。...固然能够足够强大,但是并不能完全解决问题:因为 fixture 在这里的用法是 静态 的,而对于我们理想的状态,用例中的输入输出,都应该是动态指定的。...一个简单的实践 所以,我们需要利用 fixture factory 来实现 # fixture 依旧保留了复用性 @pytest.fixture def make_fake_resp(): def...factory 动态生成测试用例 _patch.side_effect = make_fake_resp(input) if type(expected

    515100

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

    另外,为了方便使用和理解API,我们还可以使用Django REST框架提供的文档工具来自动生成API文档。...数据序列化与性能优化在处理大量数据时,有效地序列化和反序列化数据对性能至关重要。Django REST框架提供了丰富的序列化和性能优化功能,可以帮助我们提高应用程序的性能和效率。...定制化API响应与错误处理在开发API时,定制化API响应和错误处理是非常重要的,它可以提高用户体验并使API更加易于使用。...错误处理在API开发中,处理错误是非常重要的,它可以帮助我们及时发现问题并向用户提供友好的错误信息。Django REST框架提供了丰富的错误处理功能,包括内置的异常类、自定义异常处理器等。...API文档Django REST框架提供了内置的API文档功能,可以自动生成API的文档,并提供给开发者参考和使用。

    40920

    teprunner测试平台Django引入pytest完整源码

    fixture_env_vars.py里面存放了tep的环境变量,Django这里每次都从数据库的env_var表中获取数据,动态更新到文件里面。...pull_tep_files是写环境变量,写fixture文件,写conf文件三步的集合,复用代码。...pull_case_files通过yield定义为了生成器,它和list的区别是不会一次把所有数据产生到内存中,而是每次用的时候产生一次,节约内存开销。...红框的代码跟run接口类似,区别在于目录换成了export_temp_dir(),且不包含测试用例,生成zip文件后会把导出临时目录删掉,防止冲突。...批量运行用例的情况略有不同,当批量运行用例时,前端只会有一个浏览器发起一次请求,让后端拿多个Case来运行,Django只会分配一个线程来处理这个请求!

    1.1K40

    第 9 篇:实现分类、标签、归档日期接口

    url_name:接口名,主要用于通过接口名字反解对应的 URL。...如果我们设置 detail 为 True,那么生成的接口路由就是 /posts//archive/dates/,生成的 URL 中就会多一个 pk 路径参数。...用法也很简单,实例化序列化字段,调用其 to_representation 方法,将需要序列化的值传入即可(其实序列化器在序列对象的多个字段时,内部也是分别调用对应序列化字段的 to_representation...我们通过列表推导式生成一个序列化后的归档日期列表,这个列表是可被序列化的。...对于这样的场景,我们可以在请求 API 时加上查询参数,django-rest-framework 解析查询参数,然后从全部文章列表中过滤出查询所指定的文章列表再返回。

    2.6K30

    drf序列化器之反序列化的数据验证

    验证失败,可以通过序列化器对象的errors属性获取错误信息,返回字典,包含了字段和字段的错误提示。...如果是非字段错误,可以通过修改REST framework配置中的NON_FIELD_ERRORS_KEY来控制错误字典中的键名。...验证成功,可以通过序列化器对象的validated_data属性获取数据。 在定义序列化器时,指明每个字段的序列化类型和选项参数,本身就是一种验证行为。...4、validate验证 在序列化器中需要同时对多个字段进行比较验证时,可以定义validate方法来验证 def validate(self, data): """验证多个字段时,方法名必须为...表明该字段是否允许传入None,默认False validators 该字段使用的验证器 error_messages 包含错误编号与错误信息的字典 label 用于HTML展示API页面时,显示的字段名称

    2.1K30

    DRF JWT认证(二)

    目录 DRF JWT认证(二) django中快速使用JWT 如何签发? 如何认证?.../ django中快速使用JWT 导入:pip3 install djangorestframework-jwt 如何签发?...源码中签发校验都在序列化类中完成,这种写法确实比较常用,我们来使用这种方式自定义,将上面视图的校验逻辑写到序列化类中,这个序列化类只用来做反序列化,这样我们就可以利用 反序列化 的字段校验功能来帮助我们校验...是序列化类和视图类沟通的桥梁 自定义认证类 auth.py import jwt from django.utils.translation import ugettext as _ from rest_framework...从上面可以看到,除 CONTENT_LENGTH 和 CONTENT_TYPE 之外,请求中的任何 HTTP 首部转换为 META 的键时, 都会将所有字母大写并将连接符替换为下划线最后加上 HTTP

    1.1K20
    领券