前言
本章主要讲述【测试用例】增删改查的实现
环境
- flask
- python3.6
- mysql5.7
一、具体代码实现
1、controller层/testcase_controller.py
测试用例控制层,这里用了Swagger
-
问题一:Swagger是什么?
简单来说: 他是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的 Web 服务;你可以简单理解他就是一个API调用工具,方便前后端进行调试,和postman作用差不多 -
问题二、如何集成flask+Swagger?
如果之前没有用过Swagger的话可以详细看下下面这篇博客,我就不写了
https://blog.csdn.net/irving512/article/details/106272440
"""
测试用例控制层,即路由层
接收前端请求,返回后端结果
"""
from flask import request
from flask_restx import Namespace, Resource
from do.testcase_entity import TestCaseEntity
from app import api
from service.testcase_service import TestcaseService
from utils.log_utils import logger
# 命名空间
case_ns = Namespace("case", description="用例管理")
testcase_service = TestcaseService()
@case_ns.route("")
class TestCaseController(Resource):
get_paresr = api.parser()
get_paresr.add_argument("id", type=int, location="args")
@case_ns.expect(get_paresr)
def get(self):
"""
查询测试用例(单个/所有)
:return:
"""
# 拿到请求参数用例id
case_id = request.args.get("id")
logger.info(f"接收到的参数 <===== {
case_id}")
if case_id:
# 若传参用例id,则根据id查
# as_dict()作用: 把python对象转换成前端可以使用的json
testcase_datas = [testcase_service.get(case_id).as_dict()]
else:
# 否则查询所有
datas = testcase_service.get_list()
# 注意,返回的要是一个字典结构,否则前端接收不了
testcase_datas = [data.as_dict() for data in datas]
return {
"code": 0, "msg": {
"data": testcase_datas}}
post_paresr = api.parser()
post_paresr.add_argument("id", type=int, required=True, location="json")