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接口自动化测试之pytest与unittest区别