Python-接口自动化测试之接口基础

Posted 胖困困

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-接口自动化测试之接口基础相关的知识,希望对你有一定的参考价值。

1.什么是API接口?

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

服务端—API接口—>客户端(浏览器)

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

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

什么是接口测试?

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

 2.HTTP协议

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

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

 C/S软件架构

  • Client/Server,Brower/Server
  • P2P,peer to peer

2.1 HTTP请求

2.1.1 url

 统一资源定位符(Uniform Resource Locator),它也被称为web地址,相当于快递单上的地址。

2.1.2 请求方法

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

  • get,请求指定的资源,使用get的请求用于获取数据
  • post,发送数据给服务器,创建或者更新资源
  • put,创建或者替换目标资源
  • patch,用于对资源进行部分修改
  • delete,删除资源,请求服务器删除request-URL所标示的资源(请求服务器删除页面)
  • options,返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)
  • head,与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)

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

get请求和post请求的区别 

请求主体就是body 。

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

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

get请求传递参数的方式

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

post请求传递参数的方式:

  • URL
  • 请求头request headers
  • 请求体 body

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

2.1.3 请求头

Headers

2.1.4 Content-Type

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

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

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

2.1.5 请求体

Body

2.2 HTTP响应

相应状态码

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

响应头

Set-Cookie

服务端返回给客户端一个cookie信息,当客户端接收到之后,直接会把相关数据保存到浏览器本地,然后下次再访问这个请求时,会把cookie的信息自动传给服务器。

以上是关于Python-接口自动化测试之接口基础的主要内容,如果未能解决你的问题,请参考以下文章

Python接口自动化之登录接口测试

Python接口自动化之登录接口测试

Python接口自动化之unittest单元测试

Python接口自动化测试之pytest与unittest区别

Python接口自动化测试之pytest与unittest区别

软件测试进阶之自动化测试——python接口测试实例