Jmeter API文档分析


目标

  • 学会看项目API文档
  • 学会根据API文档整理出接口清单
  • 学会对API文档中有不清楚的业务该如何在API接口清单内体现

为什么要分析API文档?

回顾

首先回顾下之前讲过的API文档由来和作用图

API文档由来:

API文档由来

API文档作用:

API作用


项目API文档下载


1. API文档解析:

1.1 href节点:

作用:href节:为资源的请求地址;-(请求资源集合时的请求地址要与**href相符**)  
      "href":" http://127.0.0.1:8000/api/departments/"

1.2 items节点:

作用:为服务器响应数据时返回的资源属性;
         (请求接口时,返回的资源属性要与items里的属性相符)
"items": [
              {
                "href": "/T01",
                "data": {
                            "dep_id": "T01",
                            "dep_name": "Test学院",
                            "master_name": "Test-Master",
                            "slogan": "Here is Slogan"
                        }
             }
         ]

1.3 Links节点:

作用:为在当下资源下能连接到的直属下一资源
    (比如:A资源直接包含或关联着B、C两个资源,如果访问到A资源时,Links应定为到B和C)   
"links": [
            {
            "rel":"classes",
            "href":"http://127.0.0.1:8000/api/departments/T01/classes/ ",
            "prompt": "班级集合"
            }
         ]

1.4 templates节点:

作用:为新增和更新资源时所需要的属性
      (新增和更新资源时所需要的JSON报文属性)
"templates": {
                "data": [
                          {
                            "dep_id": "T01",
                            "dep_name": "Test学院",
                            "master_name": "Test-Master",
                            "slogan": "Here is Slogan"
                          }
                        ]
              }

1.5 queries节点:

作用:为资源支持的查询列表参数名和查询条件
      (资源支持哪些属性可以list查询;支持做查询条件的属性)   
"queries": [
             {
                "rel": "search",
                "href":" http://127.0.0.1:8000/api/departments/",
                "prompt": "列表查询",
                "data": [
                            {
                                "name": "$dep_id_list",
                                "value": ""
                            },
                            {
                                 "name": “$dep_name_list”,
                                 "value": ""
                             },
                             {
                                "name": "$master_name_list",
                                "value": ""
                              },
                              {
                                "name": "$slogan_list",
                                "value": ""
                              }
                        ]
                },
                   {
                    "rel": "condition",
                    "href":" http://127.0.0.1:8000/api/departments/",
                    "prompt": "条件查询(名称、简称)",
                    "data": [
                                {
                                    "name": " dep_name",
                                    "value": ""
                                },
                                {
                                    "name": " master_name",
                                    "value": ""
                                },
                                {
                                    "name": " slogan",
                                    "value": ""
                                 }
                              ]   
                }
            ]
1). 总结list列表查询
调用格式如:href/?$def_if_list=id1,id2
1. $dep_id_list
2. $dep_name_list
3. $master_name_list
4. $slogan_list   
2). 总结条件查询
调用格式如:href/?dep_name=name&master_name=masterName&slogan=slogan
dep_name
master_name
slogan   
(注:查询条件支持单个使用和组合使用)

1.6 error节点作用说明:

出现错误时,返回的报文格式和属性
(如果请求资源有误,在响应数据时应在error节内体现)   
"error": {
            "status_code": "",
            "detail": ""
         }

接口清单整理:

一、 接口清单(学院)示例:

一、查询
    1.1学院-查询所有
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/
    1.2学院-查询指定
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T02/
        (注:1为学院ID;)
    1.3学院-List-$dep_id_list查询
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/?$dep_id_list=T01,T02,T03 
        (注:$dep_id_list:为参数名称;T01,T02,T03为:学院ID;)
    1.4学院-List-$master_name_list查询
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/?$master_name_list=Java-Master,Test-Master
        (注:$master_name_list:为参数名称;a,b,c为:院长名称;)
    1.5学院-List-$slogan_list查询
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/?$slogan_list=Here is Slogan
        (注:$slogan_list:为参数名称;a,b,c为:学院口号;)
    1.6学院-List-$dep_name_list
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/?$dep_name_list=Test学院,Java2学院
        (注:$dep_name_list为参数名称;Test学院为:学院名称;)
    1.7学院-模糊 -BUG
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/?blur=1&dep_name=C
        (注:blur:为开启模糊查询参数1为开启;name:为参数名称;C:学院名称包含字符;)
    1.8学院-组合
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/?slogan=Here is Slogan&master_name=Test-Master&dep_name=Test学院
        (注:dep_name:学院名称;master_name:为院长名称;slogan:学院口号;三个条件可随意组合或单独使用)

        1.以上方法是否有遗漏?
        答:

        2.以上请求资源格式和参数格式是否正确?
        答:
二、新增
    2.1学院-新增
        1) 请求方法:POST
        2) 请求地址:http://127.0.0.1:8000/api/departments/
        3) 请求JOSN报文:
        4) 调用传入的json串如下(可新增多条,之间用,隔开):
            {
                "data": [
                        {
                            "dep_id": "T01",
                            "dep_name": "Test学院",
                            "master_name": "Test-Master",
                            "slogan": "Here is Slogan"
                        }
                  ]
            }

        1.以上请求新增资源URI是否正确?
        答:

        2.以上JSON报文格式是否正确?
        答:
三、更新
    3.1学院-更新
    1). 请求方法:PUT
    2). 请求地址:http://127.0.0.1:8000/api/departments/T03/
        (注:1:为学院ID)
    3). 请求JOSN报文:
            {
                "data": [
                        {
                            "dep_id": "T03",
                            "dep_name": "C++/学院",
                            "master_name": "C++-Master",
                            "slogan": "Here is Slogan"
                        }
                  ]
            }

    1.以上更新资源URI是否正确?
    答:

    2.以上更新JSON报文格式和属性是否正确?
    答:

四、删除
    4.1学院-删除单个
    请求方法:DELETE
    请求地址:http://127.0.0.1:8000/api/departments/T03/
    (注:10为学院ID)
    4.2学院-删除多个
    请求方法:DELETE
    请求地址:http://127.0.0.1:8000/api/departments/?$dep_id_list=8,9,11
    (注:$dep_id_list:为参数名称;8,9,11:为学院ID)

    1.以上删除资源URI是否正确?
    答:

    2.以上删除方法是否有遗漏?

二、接口清单(班级)示例:

一、查询
    1.1班级-查询所有
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T01/classes/
        (注:T01:为班级ID)
    1.2班级-查询指定
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2017T01C02/
        (注:TO1:为班级ID;2017T01C02为班级ID;)
    1.3班级-List-$cls_id_list查询
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T01/classes/?$cls_id_list=2017T01C03,2017T01C04
        (注:T01:为班级ID;$cls_id_list:为参数名称;2017T01C03,2017T01C04为:班级ID;)
    1.4班级-List-$master_name_list查询
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T02/classes/?$master_name_list=Master15,Master16
        (注:T02:为班级ID;$master_name_list:为参数名称;Master15,Master16为:班主任名称;)
    1.5班级-List-$cls_name_list查询
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T01/classes/?$cls_name_list=2017级Test学院T01班,2017级Test学院T02班
        (注:T01:为班级ID;$cls_name_list:为参数名称;2017级Test班级T01班,2017级Test班级T02班为:班级名称;)
    1.6班级-List-$slogan_list查询
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T02/classes/?$slogan_list=slogan15,slogan16
        (注:T02:为班级ID;$slogan_list:为参数名称;slogan15,slogan16为:班级口号;)
    1.7班级-组合
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T01/classes/?cls_name=2018级Test学院T01班&master_name=Master&slogan=sloganSlogan&dep_name=Test班级
        (注:T01:学院ID;cls_name,master_name,dep_name:为参数名称;)

        1.以上方法是否有遗漏?
        答:

        2.以上请求资源格式和参数格式是否正确?
        答:
二、新增
    2.1班级-新增
        1) 请求方法:POST
        2) 请求地址:http://127.0.0.1:8000/api/departments/T02/classes/
                    (T02:为学院ID)
        3) 请求JOSN报文:
        4) 调用传入的json串如下(可新增多条,之间用,隔开):
             {
                "data": [
                            {
                                "cls_id": "2018T01C015",
                                "cls_name": "2018级Test学院T10班",
                                "master_name": "Master15",
                                "slogan": "slogan15"
                            }
                        ]
              }


        1.以上请求新增资源URI是否正确?
        答:

        2.以上JSON报文格式是否正确?
        答:
三、更新
    3.1班级-更新
    1). 请求方法:PUT
    2). 请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2017T01C05/
        (注:T01:学院ID;2017T01C05:为班级ID)
    3). 请求JOSN报文:
             {
                "data": [
                            {
                              "cls_id":"2017T01C05",
                              "dep_id":"T01",
                              "cls_name":"2018级Test学院T01班",
                              "master_name":"Master",
                              "slogan":"slogan"
                            }
                        ]
              }


    1.以上更新资源URI是否正确?
    答:

    2.以上更新JSON报文格式和属性是否正确?
    答:

四、删除
    4.1班级-删除单个
    请求方法:DELETE
    请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2018T01C08/
    (注:T01:为学院ID;2018T01C08:为班级ID)
    4.2班级-删除多个
    请求方法:DELETE
    请求地址:http://127.0.0.1:8000/api/departments/T01/classes/?$cls_id_list=2018T01C010,2018T01C011
    (注:T01:学院Id;cls_id_list:为参数名称;2018T01C010,2018T01C011:为班级ID)

    1.以上删除资源URI是否正确?
    答:

    2.以上删除方法是否有遗漏?

三、 接口清单(学生)示例:

一、查询
    1.1学生-查询所有
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2017T01C01/students/
    1.2学生-查询指定
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2017T01C01/students/2017T01C01001/
        (注:TO1:学院ID;2017T01C01:班级Id;2017T01C01001:学生id)
    1.3学生-List-$stu_id_list查询
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2017T01C01/students/?$stu_id_list=2017T01C01001,2017T01C010013
        (注:TO1:学院ID;2017T01C01:班级Id;$stu_id_list:参数名称;2017T01C01001,2017T01C010013:学生id)
    1.4学生-List-$stu_name_list查询
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2017T01C01/students/?$stu_name_list=张三,李四
        (注:TO1:学院ID;2017T01C01:班级Id;$stu_name_list:参数名称;张三,李四:学生姓名)
    1.5学生-条件
        请求方法:GET
        请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2017T01C01/students/?stu_name=学生姓名
        (注:TO1:学院ID;2017T01C01:班级Id;stu_name:参数名称;学生姓名:参数值(学生姓名))

        1.以上方法是否有遗漏?
        答:

        2.以上请求资源格式和参数格式是否正确?
        答:
二、新增
    2.1学生-新增
        1) 请求方法:POST
        2) 请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2017T01C01/students/
                    (注:TO1:学院ID;2017T01C01:班级Id;)
        3) 请求JOSN报文:
        4) 调用传入的json串如下(可新增多条,之间用,隔开):
            {
                "data": [
                        {
                               "stu_id": "2017T01C01002",
                               "stu_name": "王二New",
                               "gender": "0",
                               "birthday": "2018-01-01",
                               "native": "北京",
                               "phone_number": "",
                               "address": "",
                               "zipcode": "",
                               "email": "",
                               "note": ""
                         }

                  ]
            }

        1.以上请求新增资源URI是否正确?
        答:

        2.以上JSON报文格式是否正确?
        答:
三、更新
    3.1学生-更新
    1). 请求方法:PUT
    2). 请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2017T01C01/students/2017T01C01001/
                    (注:TO1:学院ID;2017T01C01:为班级Id;班级Id;2017T01C01001:学生id)
    3). 请求JOSN报文:
            {
                "data": [
                        {
                          "stu_id":"2017T01C01001",
                          "dep_id":"T01",
                          "cls_id":"2017T01C01",
                          "stu_name":"王二",
                          "gender":false,
                          "birthday":"2018-01-01",
                          "native":"北京",
                          "phone_number":"",
                          "address":"",
                          "zipcode":"",
                          "email":"",
                          "note":""
                        }
                  ]
            }

    1.以上更新资源URI是否正确?
    答:

    2.以上更新JSON报文格式和属性是否正确?
    答:

四、删除
    4.1学生-删除单个
    请求方法:DELETE
    请求地址:http://127.0.0.1:8000/api/departments/T01/classes/2017T01C01/students/2017T01C010016/
                (注:TO1:学院ID;2017T01C01:为班级Id;2017T01C010016:学生id)

    1.以上删除资源URI是否正确?
    答:

    2.以上删除方法是否有遗漏?