• 周日. 5月 26th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

测试平台系列(26) 编写用例详情页(1)

admin

11月 28, 2021

回顾

上一节我们已经编写了用例树的雏形,但是具体的用例页面还没有去编写,加上笔者停更了几天,所以进度就更缓慢了。

不过我们在此之前,我们先改一下antd pro的全局配置,那就是: 字体。

修改字体

在对应的目录下,新增这样一个参数: font-size-base,因为12px会显得太小,而14px而会显得文字比较大,虽然不符合设计逻辑(偶数像素),但是感觉13px效果也挺不错。

编写用例后端部分

编写参数校验方法

在此之前呢,我们需要先新增一个装饰器,用来校验参数,这边不打算采用pydantic,打算用jsonschema了,虽然感觉前者更好,但是我只是这个接口想用了,说白了,就是玩儿!

为什么我们需要这个方法呢,因为我们对于一个TestCase对象来说,对每个参数进行校验,实在是太麻烦了,所以这里我受不了了。

app/utils/decorator.py

这个方法呢,先获取json数据,如果没获取到则直接抛出异常,否则调用jsonschema库的validate方法,也就是校验参数。

不过这个方法有一个弊端就是,只能校验json数据,说的很对!如果有url参数怎么办,那是不支持的,算了后续再说吧,毕竟我现在主要要解决的不是这个。

pip3 install jsonschema

别忘了安装这个新库哦,如果是新玩家,直接按照requirements.txt安装即可。

编写新增用例的方法

  • 修改用例model

因为之前新增了目录优先级2个字段,所以需要在__init__方法中加入这2个字段。

  • 新增insert方法

TestCaseDao.py

如果项目id和名字都一样,则认为这个用例已存在,不允许用户继续添加。

这边对于权限限制的不是很死,没有再校验用户是否能够为项目添加用例

  • 添加接口

    编辑app/controllers/testcase/testcase.py

注意这里我们引入了json_validate装饰器,是用来校验咱们的json参数的。

  • testcase数据
testcase = {
    "type": "object",
    "properties": {
        "id": {
            "type": "integer",
        },
        "name": {
            "type": "string",
        },
        "request_type": {
            "type": "integer",
        },
        "url": {
            "type": "string",
        },
        "request_method": {
            "type": "string",
        },
        "request_header": {
            "type": "string",
        },
        "params": {
            "type": "string",
        },
        "body": {
            "type": "string",
        },
        "project_id": {
            "type": "integer",
        },
        "tag": {
            "type": "string",
        },
        "status": {
            "type": "integer",
        },
        "priority": {
            "type": "string",
        },
        "catalogue": {
            "type": "string",
        },
        "expected": {
            "type": "string",
        },
    },
    "required": ["expected", "catalogue", "priority", "status", "project_id", "request_type", "url", "name"]
}

其实json_schema就是一个描述json数据结构的一串json,也许这个很绕口,但是看图中可以看出:

  • type

    type是json串的类型,object代表的是一个对象,其实JSON为什么叫JSON,因为她的全名是: JavaScript Object Notation,简单的说她就是来描述JSON对象的。除此之外,还有integer, string等等。

  • properities

    就是这个对象里面的属性,即字段。

  • required

    一个数组,存放数组必须的字段。

测试一下

  • 去掉一个必须字段catalogue

json schema还有控制数字范围等校验,这里我就不多讲了,大家有兴趣可以自行查阅。

今天内容不多,多了怕消化不良。改天可能研究一下httprunner,毕竟这个也是业界主流项目,合适的话就给兼容了吧,这样平台受众面也会比较大。

《测试平台系列(26) 编写用例详情页(1)》有一个想法
  1. Wow, superb blog format! How long have you ever been blogging for?
    you made blogging glance easy. The total look of your site is excellent, as neatly as the content!

    You can see similar here e-commerce

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注