7.接口安全、接口文档和用例设计

接口安全、接口文档和用例设计

接口安全

数据加密

为了安全

  1. 对称加密

    概念:加密和解密使用同一个密钥的加密算法

    优点:加解密的速度快

    缺点:安全性相对较低

    常用算法:AES,DES

    1. 非对称加密

      概念:加密和解密使用不同密钥的加密算法。双方要进行数据交换,先交换公钥,使用的一方用对方的公钥加密,另一方使用私钥解密。公钥是可以公开的,但是私钥必须自己保留。

      优点:安全性相对较高

      缺点:加解密速度比对称加密慢很多

      常用算法:RSA,DSA

    3.哈希加密

概念:一种单项算法,根据目标信息生成一串固定长度的唯一哈希值,但是通过这个哈希值是无法反推出目 标信息

使用场景:1. 不可还原的密码存储 2. 数据完整性校验

常用算法:MD5,SHA

 4. 对称加密和非对称加密的对比
      1. 对称加密只有一个密钥,非对称加密有两个密钥,一个公钥用作加密,一个私钥用作解密
      2. 对称加密加解密速度快,非对称加密速度相对较慢
      3. 对称加密安全性较低,非对称加密安全性相对较高
用户认证
  1. 基本认证(Basic Auth):用户发送请求时同时发送账号和密码,这是最基本的认证方式

  2. 摘要认证(Digest Auth):密码不使用明文传输,而是使用摘要算法进行加密,通常使用MD5加密算法。服务器接收到加密密码之后,通过相同算法计算出摘要值进行比对认证

  3. OAuth:用户允许第三方应用程序访问用户在某一网站的私密信息(头像,地址,图片,视频),而不用将账号和密码发送给第三方

    OAuth过程:四个角色:用户,客户端(第三方程序),认证服务器,资源服务器

    1. 用户使用客户端,客户端要求授权
    2. 用户同意授权
    3. 客户端通过上一步的授权,向认证服务器申请令牌(access_token)
    4. 认证服务器在确认过客户端身份之后,同意发放令牌
    5. 客户端使用令牌,向资源服务器申请获取资源
    6. 资源服务器确认令牌有效,同意向客户端开放资源
数字签名

服务器给客户端一个字符串,以后每次客户端的请求都需要携带这个字符串(http://www.baidu.com/s?kw=2&232=23&sign=签名字符串).服务器每次接收到客户端的请求,都会去验证这个签名字符串,如果说签名字符串不存在或者错误,那么就不处理这个请求。数字签名起到一个鉴权的作用,保证请求来自合法客户端。

接口文档和用例设计

为什么说接口测试比UI测试重要?
  1. 可以更早发现问题:后端开发完成提测之后,接口测试就可以开始;但UI测试需要等到前后端对接完成才能开始测试
  2. 能发现更加底层的问题:可以构造不同的测试数据和测试条件进行测试,覆盖面更广
  3. 稳定性更高:接口在开发完成后不会轻易改变,方便接口自动化工作的开展;UI测试稳定相对较差,因为面临着前端页面频繁的改动
接口文档
  1. 接口描述:说明接口的功能
  2. 请求的URL
  3. 请求的方式
  4. 请求参数(查询参数,请求正文)
    1. 名称
    2. 类型
    3. 是否必填
    4. 描述
  5. 请求头
    1. 名称
    2. 类型
    3. 是否必填
    4. 描述
  6. 返回值
    1. 数据结构:字符串,HTML,JSON
    2. 示例数据
    3. 错误码:错误描述信息
  7. 其他
接口文档来源

通常是由产品和后端开发人员提供

测试的重点
  1. 测试接口的功能
  2. 测试接口的容错性和健壮性
  3. 测试接口的安全
  4. 测试接口的性能
接口用例设计
  1. 编号
  2. 标题
  3. 请求方式
  4. 请求URL
  5. 请求参数
  6. 响应码
  7. 响应正文
接口测试工具
  1. 接口测试工具:模拟发送HTTP请求,获取响应结果,人工去验证结果
    1. fiddler:创作者标签
    2. postman
  2. 接口自动化测试工具:可以批量执行,对结果进行断言,生成测试结果报告
    1. requests + unittest
    2. JMeter
  3. 接口性能测试工具:测试高并发场景下接口的性能
    1. JMeter
    2. loadrunner
一般的测试方法
  1. 输入参数测试
    1. 输入参数合法
    2. 输入参数不合法
    3. 输入参数为空
    4. 输入参数超长
  2. 返回值测试:不同参数条件下接口的返回值是否与文档描述一致
  3. 关注重点
    1. 协议:HTTP,Socket,TCP
    2. 请求方式:GET/POST/PUT/DELETE
    3. 数据格式:XML/JSON/form-data
  4. 实现方法:
    1. 工具
    2. 代码
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值