WHCSRL 技术网

接口自动化测试的 Python 接口基础

1. 什么是 API 接口?

项目地址:http://api.lemonban.com/futureloan

Server——API接口——>Client(浏览器)

接口定义规则,可在接口文档中查看:

  • 访问地址
  • 请求方法get/post
  • 请求参数

什么是接口测试?

测试接口返回的数据是否符合预期(assert)。可以使用浏览器、postman、jmeter、soupui等界面测试工具,也可以通过代码访问。

2. HTTP 协议

接口需要使用一个协议来完成,使用最广泛的协议是http协议。 HTTP(超文本传输​​协议)用于传输超媒体文档(如html),是一种无色的应用层协议。它专为 Web 浏览器和 Web 服务器之间的通信而设计,但也可用于其他目的。 HTTP 遵循经典的客户端-服务器模型。客户端打开一个连接发出请求,然后等待直到收到服务器的响应。

用户通过客户端访问某个URL地址并向服务器发送请求。服务器收到请求后,解析请求数据,返回响应数据给客户端。

C/S 软件架构

  • 客户端/服务器,浏览器/服务器
  • P2P,点对点

2.1 HTTP 请求

2.1.1 网址

统一资源定位器(Uniform Resource Locator),也叫网址,相当于快递单上的地址。

2.1.2 请求方法

! ! !面试题:有哪些请求方式?

  • get,请求指定资源,使用get的请求用于获取数据
  • post,向服务器发送数据,创建或更新资源
  • put,创建或替换目标资源
  • patch,用于部分修改资源
  • delete,删除资源,请求服务器删除由request-URL(Request the server to delete the page)
  • options,返回服务器对特定资源支持的HTML请求方式或由web服务器发送*Test server函数(允许客户端查看服务器性能)
  • head,对应server请求和get请求,不返回响应体,获取小消息头中包含的原始信息(类似get请求,返回的响应中没有具体内容,用于获取header)

具体来说,接口支持哪种请求方式由后端开发工程师决定(接口提供者/接口文档)。

get请求和post请求的区别

请求正文是正文。

get请求没有消息体,只能携带少量数据,不安全

post请求有消息体,可以携带大量数据,安全

如何在get请求中传递参数

  • URL参数拼接? key1=value1&key2=value2
  • 请求头

如何在post请求中传递参数:

  • URL
  • 请求头
  • 请求正文

GET方式提交的数据最多只能有1024字节,而POST方式没有这个限制。

2.1.3 请求头

标题

2.1.4 内容类型

body参数传递的主要数据格式:

  • json, Content-Type:application/json
  • 表单表单, Content-Type:multipart/form-data

Postman 会根据填充的数据格式自动匹配 Content-Type,jmeter/python 需要手动设置。

2.1.5 请求正文

身体

2.2 HTTP 响应

对应的状态码

  • 1**信息,服务器收到请求,需要请求者继续操作
  • 2** Success,操作被成功接收并处理
  • 3** 重定向需要进一步操作才能完成请求
  • 4** 客户端错误,请求包含语法错误或完成请求的方法
  • 5** 服务器错误,服务器正在处理请求过程中发生错误

响应头

设置 Cookie

服务器返回一个cookie信息给客户端。客户端收到后,会直接将相关数据保存到浏览器中,然后在下次访问请求时自动将cookie信息发送到服务器。

推荐阅读