什么是接口文档?
在项目期间,前后端是分离开发的,为了前后有连贯性,就必须由前后开发工程师共同定义接口、写接口文档再根据接口文档去开发,一直到项目结束。
没有接口文档,想做接口测试的话,自己实践过以下2种方式:
1。 通过抓包的方式,根据业务流获取到对应的接口,然后整理成相关文档,如果有不清楚的字段,将问题汇总后找开发咨询,然后在进行接口测试。(抓包工具charles)
2。可以通过 jmeter 的代理录制功能,将接口逐一录制下来形成接口文档,然后再逐一进行接口测试。
一般在项目开发阶段,接口文档基本上是必备产物了,一般由后端开发人员提供,作为和前端人员进行前后端接口联调的桥梁,或者与别的项目模块进行交互提供指导等等,接口文档的准确性,实时性,详细与否等,都会极大的影响联调工作。(或者是开发推演阶段,开发会定好接口名称、入参、出参等,维护在接口文档里边,有更新的话,会及时通知相关人员)
目前经历过的公司,都会有接口文档,有差异的地方 就是平台不一样,常见的有swagger、DOClever、sosapi,如果面试过程中遇到该问题,上述的2种回答可供参考,另外可根据具体项目上的情况再聊聊。
接口文档规范
也就是我们常写的新增,删除,修改,查询
调用方法,一般是从前端调后端的方法地址
一般分五列:字段、说明、类型、备注、是否必填
1、如果只返回接口调用成功还是失败(新增、删除、修改等),则只有一个结构体:
code和message两个参数;
2、如果要返回某些参数,则有两个结构体:
是code/mesage/data;
是data里写返回的参数,data是object类型;
3、如果要返回列表,那么有三个结构体,
是code/mesage/data,data是object,里面放置page/size/total/totalPage/list 5个参数,其中list是Arrary类型,list里放object,object里是具体的参数。
了解目的
- 用户登录
- 用户注册
- 树形菜单
- 文章查询
- 文章新增
- 文章修改
- 文章删除
用户登录:
接口调用and请求
http请求方式: POST (一般有两种get/post) https://xxx.xxx.xxx:8080/项目命名/vue/userAction_login.action
字段 | 说明 | 类型 | 是否必填 |
uname | 名字 | String | 是 |
pwd | 密码 | String | 是 |
登录成功返回JSON数据包:
{
"msg":"登录成功",
"result":{
"uname":"用户名",
"pwd":"密码"
},
"code":1
}
用户或者密码为空返回JSON数据包:
{
"msg":"用户或者密码为空",
"result":{
"uname":"用户名",
"pwd":"密码"
},
"code":0
}
用户或者密码错误返回JSON数据包:
{
"msg":"用户或者密码错误",
"result":{
"uname":"用户名",
"pwd":"密码"
},
"code":0
}
参数 | 说明 |
msg | 提示消息 |
result | 返回登录的用户名和密码 |
code | 状态 0:登录失败 1:登录成功 |
用户注册
接口调用
https://xxx.xxx.xxx:8080/项目命名/vue/userAction_reg.action
字段 | 说明 | 类型 | 是否必填 |
uname | 名字 | String | 是 |
pwd | 密码 | String | 是 |
注册返回JSON数据包:
{ "msg":"用户注册成功", "code":1 }
用户注册失败返回JSON数据包:
{ "msg":"用户注册失败", "code":0 }
参数 | 说明 |
msg | 提示消息 |
code | 状态码 0:失败 1:成功 |
树形菜单
调用接口
https://xxx.xxx.xxx:8080/项目命名/vue/treeNodeAction.action
返回的json数据表如下:
{
"msg": "操作成功",
"result": [
{
"treeNodeId": 1,
"treeNodeName": "系统管理",
"treeNodeType": 1,
"url": null,
"position": 1,
"icon": "el-icon-setting",
"children": [
{
"treeNodeId": 2,
"treeNodeName": "用户管理",
"treeNodeType": 2,
"url": "/sys/VuexPage1",
"position": 2,
"icon": "el-icon-user",
"children": []
},
{
"treeNodeId": 3,
"treeNodeName": "角色管理",
"treeNodeType": 2,
"url": "/sys/VuexPage2",
"position": 3,
"icon": "",
"children": []
},
{
"treeNodeId": 4,
"treeNodeName": "密码修改",
"treeNodeType": 2,
"url": null,
"position": 4,
"icon": null,
"children": []
}
]
},
{
"treeNodeId": 5,
"treeNodeName": "论坛管理",
"treeNodeType": 1,
"url": null,
"position": 5,
"icon": "el-icon-reading",
"children": [
{
"treeNodeId": 6,
"treeNodeName": "文章管理",
"treeNodeType": 2,
"url": "/sys/Articles",
"position": 6,
"icon": null,
"children": []
}
]
}
],
"code": 1
}
参数 | 说明 |
msg | 提示消息 |
result | 返回树形菜单结果集 |
code | 状态 0:失败 1:成功 |
Result树形菜单结果集
参数 | 说明 |
treeNodeId | 菜单id |
treeNodeName | 菜单名 |
treeNodeType | 菜单类型 1:父菜单2:跳转菜单 |
url | 路由地址 |
icon | 菜单图标 |
children | 子菜单集,如果没有则为一个空json数组 |
文章查询
调用接口
https://xxx.xxx.xxx:8080/项目命名/vue/articleAction_list.action
参数 | 是否必填 | 说明 |
page | 否 | 当前页码,默认为1 |
rows | 否 | 一页展示多少条数据,默认为10 |
title | 否 | 按文章标题查询 |
返回json数据包说明:
{
"result":[{"id":1,"title":"文章标题","body":"文章内容"],
"pageBean":{
"page":1,
"rows":10,
"total":100,
}
}
result结果集
参数 | 说明 |
id | 文章id |
title | 文章标题 |
body | 文章内容 |
pageBean 分页对象说明
参数 | 说明 |
page | 当前页码 |
rows | 一页展示的条数 |
total | 总条数 |
文章添加
调用接口
https://xxx.xxx.xxx:8080/项目命名/vue/articleAction_add.action
参数 | 是否必填 | 说明 |
title | 是 | 文章标题 |
Body | 否 | 文章内容 |
添加成功返回JSON数据包:
{"msg":"新增成功","result":[],"code":1}
添加失败返回JSON数据包:
{"msg":"新增失败","result":[],"code":0}
参数 | 说明 |
msg | 提示消息 |
code | 状态码 0:失败 1:成功 |
文章修改
调用接口
https://xxx.xxx.xxx:8080/项目命名/vue/articleAction_edit.action
参数 | 是否必须 | 说明 |
id | 是 | 文章id |
title | 否 | 文章标题 |
body | 否 | 文章内容 |
修改成功返回JSON数据包:
{"msg":"修改成功","code":1}
修改失败返回JSON数据包:
{"msg":"修改失败","code":0}
参数 | 说明 |
msg | 提示消息 |
code | 状态码 0:失败 1:成功 |
文章删除
调用接口
https://xxx.xxx.xxx:8080/项目命名/vue/articleAction_del.action
参数 | 是否必须 | 说明 |
id | 是 | 文章id |
删除成功返回JSON数据包:
{"msg":"删除成功","code":1}
删除失败返回JSON数据包:
{"msg":"删除失败","code":0}
参数 | 说明 |
msg | 提示消息 |
code | 状态码 0:失败 1:成功 |
这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!