当前位置: 首页 > article >正文

关于接口|常见电商API接口种类|接口数据类型|接口请求方法

常见接口种类#

Http/Https接口: 通过http/https协议传送接口数据(通常按字符串/二进制传输), 如常见的网页表单, https安全性更好

RESTful Api: REST表述性状态传递. 一种设计风格,基于http/https协议, 把一切接口视为资源, 接口要分版本,在统一的域名下管理, 不同的方法(get/post..)做不同的事,通常请求及响应使用json格式

Web Service: SOAP简单面向对象协议, 基于http实现的一种RPC方案.接口返回一些对象,可以直接通过操作对象,实现我们需要的业务处理.使用xml格式传输数据

RPC接口: RPC为远程方法调用, 有不同的实现方案,基于TCP/Http协议的都有. RPC可以想我们本地导入和调用对象一样使用. Dubbo接口也是一种RPC接口.

常见电商接口数据类型#

请求数据类型(Content-Type):application/x-www-form-urlencoded: 常规只有文本的网页表单application/json: RESTful Api常用格式, 结构清晰, 含有多层嵌套multipart/form-data: 既有文本,又有上传文件或富文本框的混合数据表单text/xml: xml格式, RPC接口常用格式

响应数据类型string/html: 返回字符串或网页源码json: RESTful Api常用响应格式, 结构清晰xml: RPC接口常用格式

常见接口安全验证方式#

Auth_1.0/Auth_2.0: 通用接口授权方式

Session依赖: 需要登录之后才能进行接口操作

Token验证: 先要使用自己的appid/appsecret通过获取token接口验证身份获取一个token(令牌,有一定有效期), 然后带着token访问接口

数字签名: 将原本的参数按一定规则进行组合,配合时间戳或appsecret, 通过加密算法生成一个签名sign, 携带签名进行接口请求

常见接口请求方法#

GET: 获取资源

POST: 修改资源

PUT: 上传资源

DELETE: 删除资源

HEAD: 只请求页面首部

PATCH: 补丁

OPTIONS: 运行客户端查看服务器性能
......

常见状态码(RESTful规范)#

  • 200系: 成功200 OK - [GET]:获取资源成功201 CREATED - [POST/PUT/PATCH]:创建/修改成功202 Accepted - [*]:任务接受204 NO CONTENT - [DELETE]:删除成功

  • 300系: 重定向301 Moved Permanently: 永久重定向302 Found: 临时重定向

  • 400: 资源错误400 INVALID REQUEST - [POST/PUT/PATCH]:用户请求错误401 Unauthorized - [*]:没有权限(鉴权失败, 接口层)403 Forbidden - [*] 资源禁止访问(服务器层,没有访问权限)404 NOT FOUND - [*]:资源不存在405 Method Not Allowd: 访问的方法不允许, 如用POST访问只支持GET请求的接口406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)410 Gone -[GET]:资源被永久删除422 Unprocesable entity - [POST/PUT/PATCH] 当创建对象时,发生验证错误

  • 500系: 服务器内部错误(接口崩溃或有Bug)500 INTERNAL SERVER ERROR - [*]:服务器发生错误

接口业务类型#

  • 返回数据型接口: 只从数据库读取数据

  • 业务操作型接口: 需要写数据库(接口测试需要要涉及参数化或环境清理)

快速上手接口测试#

获取接口文档#

Wiki

Word文档

Postman导出

抽象接口定义

接口管理平台

接口文档分析#

  • 功能分析: 是否能满足业务(是否缺少某个前端需要的参数), 是否能满足所有业务场景(是否有漏开发接口, 比如只开发了单品接口,没开发套餐接口)

  • 设计分析: 是否有不规范字段(如,nickname, passwd);不规范格式(如sex,用男,女而不是1,2);是否有易混淆字段(如amount和total);是否有单词拼错;是否有和数据库字段对应但名称不一样的(易错)

  • 接口分析: 协议类型(http要考虑安全);请求方法(是否规范);请求编码格式(表单/Json/xml, 很多接口文档不声明,导致测试调试不通);接口授权方式;接口业务类型(关系到是否需要做参数化或环境清理); 返回值类型及结构(关系到怎么断言)

  • 接口依赖: 需要什么环境准备和业务场景, 依赖那些接口, 有那些动态数据, 预备环境怎么保障

  • 参数分析: 各个参数的参数类型,组成规则,是否允许不传,是否可以为空, 是否允许多传参

  • 业务分析: 如price字段必须和数据库中的商品的price字段一致,才能校验通过

  • 非功能性: 接口的技术实现方案是否合理, 能否满足高并发的性能要求, 边界值/极限值的处理是否合适, 是否前后端都有数据格式校验等(如精确度为秒级的订单号生成器,在高并发下会导致生成同一订单号的问题)

  • 其他: 如反爬,对headers的一些限制和校验, ip等限制

编写接口用例#

Excel/TestLink/禅道

  • 单接口用例: 正常数据/边界数据/异常数据(健壮性)/并发(一致性)/性能/安全性(抓包截取伪造/SQL注入/跨域请求)

  • 场景用例: 列出常见的用户场景, 用接口进行覆盖, 业务场景压测(寻找某个环节的性能瓶颈)

TestCase

Url

Method

DataType

a

b

Excepted

Actual

Status

test_add_normal

/api/add/

GET

Url

3

5

8

test_add_zero

/api/add/

POST

FORM

0

0

0

test_add_negetive

/api/add/

POST

FORM

-3

5

2

test_add_float

/api/add/

POST

FORM

3.2

5.2

8.4

test_add_null

/api/add/

POST

FORM

0

执行接口测试#

  • Postman: 功能调试

  • Jmeter: 性能

补充:

如果有需要Python自动化测试跟教学视频的小伙伴,记得关注我私。

测试管理之组长经理总裁班课程      淘宝店铺购买:


http://www.kler.cn/a/105967.html

相关文章:

  • day-17 反转字符串中的单词
  • python+Django+MySQL+echarts+bootstrap制作的教学质量评价系统,包括学生、老师、管理员三种角色
  • 深度学习基础练习:代码复现transformer重难点
  • esp32c3开发板通过micropython的mqtt库连MQTT物联网消息服务器
  • 机器学习(1)
  • nuget 管理全局包、缓存和临时文件夹
  • OpenText 安全取证软件——降低成本和风险的同时,简化电子取证流程
  • 【反射】Java反射机制 -- 常用构造器与方法
  • componentDidMount只执行一次的解决方法
  • 【软件测试】超细HttpRunner接口自动化框架使用案例,一篇策底打通...
  • 更换网络ip地址怎么设置
  • Pytorch使用torchvision.datasets.ImageFolder读取数据集,数据集的内容排列状况
  • 如何使用SpringBoot处理全局异常
  • MySQL不常用查询
  • Linux下的文件操作和文件管理
  • 微信小程序获取数据的方法——iBeacon蓝牙
  • Adversarial attacks and defenses on AI in medical imaging informatics: A survey
  • Easysearch 容量规划建议
  • OkHttp网络框架深入理解-SSL握手与加密
  • 雪糕冰淇淋经营配送小程序商城效果如何
  • 【Python机器学习】零基础掌握VotingClassifier集成学习
  • 在线设计数据库表用Itbuilder,极简易用真香!!!
  • 基于Jsp+Servlet+MySql的汉服网站的设计与实现-源码+毕业论文
  • 算法工程师-机器学习-数据科学家面试准备4-ML系统设计
  • git 版本管理
  • InterfaceWave 架构图