博客
关于我
Python接口自动化测试实战系列
阅读量:799 次
发布时间:2023-03-09

本文共 2067 字,大约阅读时间需要 6 分钟。

接口及接口测试

接口的概念

接口(API,Application Programming Interface)是一些预先定义的功能,允许程序与软件或硬件进行交互,而无需深入了解其内部实现细节。简单来说,接口提供了一个标准化的接口,让开发者可以通过调用这些接口来获取信息或实现功能。

接口的特点

  • 程序代码:接口通常以函数或方法的形式提供,允许程序调用。
  • 屏蔽实现细节:接口隐藏了具体实现方式,开发者无需关心内部逻辑。
  • 可访问性:接口提供了访问规则和地址,允许其他程序或系统进行调用。
  • 接口的自述

  • 功能:我有一些功能或接口。
  • 无需了解细节:你无需关心我是如何实现的。
  • 接口地址:我会提供一个地址,供你找到并按照规定的格式发送请求。
  • 请求格式:你需要按照我的格式发送参数或数据。
  • 响应:我会根据请求提供相应的信息或反馈。
  • 接口举例

    以西虹市公考报名为例:

    • 接口名称:报名接口
    • 接口地址:西虹市街口区带莫路3号
    • 接口参数:姓名、身份证号码、专业、报考岗位
    • 响应信息:是否报名成功

    接口测试

    接口测试是为了验证系统组件间接口的稳定性和可靠性,重点检查数据交换、传递和控制管理过程。

    接口测试的意义

  • 发现问题早:及早发现接口问题,降低后续测试成本。
  • 降低依赖性:接口问题通常影响多个系统,测试可以帮助定位问题。
  • 自动化支持:接口较稳定,适合自动化测试。
  • 接口测试岗位

  • 手工测试岗:提测接口,撰写测试用例。
  • 服务端测试岗:审核接口实现逻辑,进行异常流测试。
  • 测试开发岗:开发自动化用例和测试工具。
  • 网络基础知识:IP、域名、DNS及端口

    IP地址

    IP地址是互联网中用于唯一标识网络和主机的逻辑地址。例如:

    • 192.168.1.1:局域网内IP
    • 172.16.254.1:私有IP地址

    查看IP命令

    • Windows:ipconfig
    • Linux:ifconfig
    • Python:可以使用socket库检查IP是否有效。

    端口

    端口是设备与外界通信的出口,共65536个端口分为三类:

  • 公认端口(0-1023):如HTTP(80)、FTP(21)。
  • 注册端口(1024-49151):常见服务端口。
  • 动态端口(49152-65535):用于非服务端口。
  • 查看端口命令

    • Windows:netstat -ano
    • Linux:netstat -ntlp

    域名及DNS

    域名是便于记忆的IP地址别名。例如:

    • www.baidu.com 对应 IP地址 61.135.169.125。

    DNS

    DNS是域名与IP地址的映射系统,通过解析域名找到对应的IP地址。

    OSI七层模型

    OSI模型分为七层:

  • 应用层:文件传输、电子邮件等。
  • 表示层:数据格式化和加密。
  • 会话层:建立和管理会话。
  • 网络层:路由IP包。
  • 传输层:TCP和UDP协议。
  • 数据链路层:帧传输和错误检测。
  • 物理层:数据在物理媒体上传输。
  • TCP与UDP

  • TCP:可靠、面向连接、双向通信。
  • UDP:无连接、尽最大努力交付,适合实时应用。
  • HTTP协议

    HTTP是超文本传输协议,无状态协议,主要包括请求和响应。

    请求

    • 方法:如GET、POST、HEAD。
    • URL:接口地址。
    • 头部:包括Host、Content-Type、Cookie等。
    • 参数:作为查询字符串或体部发送。

    响应

    • 状态码:如200 OK、404 Not Found。
    • 头部:包括Content-Type、Content-Length等。
    • 体部:响应数据,如JSON、XML等。

    URL编码

    • 参数:用&分隔,非ASCII字符用%编码。
    • 示例:https://www.sojson.com/open/api/weather/json.shtml?city=北京编码后为https://www.sojson.com/open/api/weather/json.shtml?city=%E5%8C%97%E4%BA%AC。

    请求方法

    常见方法包括GET、POST、PUT、DELETE等,区别在于请求方式和数据传输方式。

    请求数据类型

  • application/x-www-form-urlencoded:适用于表单数据。
  • application/json:常用于REST接口。
  • multipart/form-data:支持文件上传。
  • Base64编码

    用于将非ASCII字符编码为ASCII,常用于HTTP传输。

    cookie与session

  • cookie:客户端存储的信息,用于辨别用户。
  • session:服务器生成的唯一ID,用于跟踪用户会话。
  • 安全策略

  • Session/Cookie:登录后访问接口。
  • 固定appid:生成唯一ID,适用于公开接口。
  • 动态token:临时生成令牌,提升安全性。
  • OAuth:开放授权协议,适用于第三方应用。
  • 数字签名:加密请求参数,防止篡改。
  • 缓存

    HTTP缓存机制优化性能,但需注意清理和有效期。

    最后

    希望这些内容能帮助您更好地理解接口及相关技术。如果需要进一步的资料或工具推荐,可以随时联系!

    转载地址:http://knlfk.baihongyu.com/

    你可能感兴趣的文章
    Python+SQL实战:京东用户行为数据分析案例解析(下)
    查看>>
    PYTHON+Twisted+sqlanydb=ABORT()
    查看>>
    Python函数之返回值、作用域和局部变量
    查看>>
    Python+统计学 | 探索常用的数据分析统计分布
    查看>>
    python, selenium中用于切换帧的函数
    查看>>
    python函数
    查看>>
    python----线程、进程、协程的区别及多线程详解
    查看>>
    python---5
    查看>>
    python---使用celery分布式系统异步发送短信(云通讯)来验证登录
    查看>>
    python--003--百分号字符串拼接、format
    查看>>
    Python--10、线程
    查看>>
    Python--Redis实战:第四章:数据安全与性能保障:第4节:复制
    查看>>
    python--基本代码规范
    查看>>
    Python--抽象类接口类
    查看>>
    PYTHON--欧拉习题二
    查看>>
    python--高级应用总结
    查看>>
    python-520表白代码,我看谁说程序员不懂浪漫,送你几套表白代码,一步到位
    查看>>
    Python-Asyncio TypeError:无法在‘;等待‘;表达式中使用对象DICT
    查看>>
    Python-AttributeError:‘;dict&39;对象没有属性‘;序列‘;
    查看>>
    Python-ldap:是否可以在不显式写入密码的情况下进行绑定?
    查看>>