12 2023 档案
摘要:前言 对于 flask ,有 flask-jwt-extended 插件快速实现生成登录token。fastapi-jwt-auth .它的灵感来自于flask-jwt-extended。 官网教程地址https://indominusbyte.github.io/fastapi-jwt-auth/
阅读全文
摘要:1. 前言 一般对于后端的接口,特别是注册接口而言,密码都不是明文存储的,而是通过加密的方式,存储加密后的密码的。 1.1 环境准备 我们需要下载第三方加密库:> pip install passlib passlib 库里面会用到2个方法 encrypt() - 生成新的值,返回密码哈希 veri
阅读全文
摘要:1. fastapi连接数据库 在app目录下,新建database.py文件,在这里实现数据的连接。 # app/database.py from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker fro
阅读全文
摘要:前言 有些情况需要通过加入用例步骤之间的等待时间,来进行接口的断言或者后置,其次有时候需要根据条件判断用例是否需要执行。 1. 加入sleep等待时间 通过sleep关键字即可实现,在执行用例的过程前添加等待时间。 elif item == 'sleep': try: sleep_value = r
阅读全文
摘要:1. 新建项目结构 首先,创建如下结构的项目的文件,在项目跟路径下,创建主程序main.py文件。 1.routers 目录开发对应模块功能的接口 2.modles.py创建数据库模型 3.database.py 创建 SQLAlchemy 连接数据库 4.static放一下静态文件 5.templ
阅读全文
摘要:前言 前面我们都是在yml文件中写单个用例的去调用,如果后期涉及到业务流程的时候,单个用例就无法满足需要测试的业务流程。如何实现这个功能,我们可以将用例和api进行分离,api层只写单个接口的数据,然后在用例层处理业务流程,不断的调用api的接口,从而可以满足我们的需求。那么这篇将讲如何在yml文件
阅读全文
摘要:前言 说到接口自动化,那肯定少不了参数化,这也是pytest的一个特色之一,相比与unitest实现起来更加方便好用。实验参数化常见的就是使用@pytest.mark.parametrize在测试函数或类中定义多组参数,在用例中实现参数化。 # 参数化方式一 import pytest @pytes
阅读全文
摘要:前言 每一条pytest用例都可以添加fixture的前置功能,只需要在用例的参数中传入在conftest.py文件中写的函数的名称就可以实现每条用例的前置和后置。 1. yaml文件中加入fixture的功能 因为我们实现了动态生成测试用例,所以我们可以直接通过在生成动态用例的时候就传入该fixt
阅读全文
摘要:前言 前面在yaml文件中引用内置函数以及自定义函数和变量时,都是在每个关键字后面进行单独得渲染,为了方便引用,于是我们单独对这块的内容进行封装。 1. 新增自定义函数和变量 在utils下新建自定义函数和变量的文件,my_builtins.py,新增了在接口中需要用到的一些变量和函数。这样,在传入
阅读全文
摘要:1. yaml文件中添加validate进行接口断言 首先我们在utils/validate.py文件添加需要的断言方式 import re def equals(check_value, expect_value): assert check_value == expect_value, f'{c
阅读全文
摘要:1. extract提取请求返回结果的返回值 在进行接口自动化的时候,往往需要提取上一个接口返回的值,传递给下一个接口使用。 创建utils/extract.py import json import re import jsonpath import jmespath from utils imp
阅读全文
摘要:1. pytest内置fixture 的caplog的配置 pytest 自动捕获级别为 WARNING 或以上的日志消息,并以与捕获的 stdout 和 stderr 相同的方式在每个失败测试的各自部分中显示它们。 日志级别如下,级别由低到高 DEBUG INFO WARNING ERROR CR
阅读全文