什么是接口测试?
接口(API): 用于前后端的交互的
接口的分类:
接口分类
自动化测试流程
练习的项目:外卖系统
项目描述:本项目基于spring boot和vue的前后端分离技术架构。功能完善,包含:后端API、用户H5手机端、管理员WEB端、商户WEB端。主要功能包括:我的商铺(卖家商铺信息管理),食品管理(商铺食品的常规操作),订单管理(订单信息管理)等
项目框架:
前端:vue.js
后端:Spring Boot
数据库层:mysql+monggodb
数据库连接池:Druid
缓存:Ehcache
image.png
HTTP请求:
image.png请求报文格式:四个部分
第一部分:请求行。独占一行的。由:请求方法、请求路径、请求协议/版本组成。
第二部分:请求头。从第二行到第N行。由键值对 组成。可以有1对,也可以有N对。key:value
第三部分:空行。独占一行的。由回车换行组成。
第四部分:请求正文(请求消息体)。
常见请求头含义:
1、User-Agent:告诉服务器客户端的相关信息(如果是浏览器会有版本,内核等信息)
2、referer:告诉服务器,此请求是从哪个页面上发出来(防盗链)
3、X-Requested-With:告诉服务器这个是一个ajax请求
4、Cookie:带给服务器的cookie信息
5、content-type:告诉服务器消息体的数据类型
application/x-www-form-urlencoded
multipart/form-data
application/json
text/xml
HTTP响应报文
响应报文格式:四个部分组成
第一部分:状态行,独占一行。由协议/协议的版本、状态码、状态描述符组成
第二部分:响应头,从第二行到第N行。由键值对组成。
第三部分:空行。独占一行的。由回车换行组成。
第四部分:响应的正文
常见响应头含义:
1、location:告诉浏览器跳到哪里
2、content-length:告诉浏览器回送数据的长度
3、content-type:告诉浏览器回送数据的类型
image.png
简单接口测试流程
1、确定请求方法(post,get,put,delete)
2、确定接口url
3、请求体
4、请求头
不需要写头的情况:这个接口没有特殊的头数据,或只要求写content 他type
需要写头的情况:这个请求头里有其他接口(如:登录接口)给的数据。如:token,cookies
5、响应
说明:以上数据通过接口文档或抓包课获取
import requests
HOST = 'http://121.41.14.39:8082' # 常量用全大写 :协议+ip+端口+路径
def login(data):
# 1 URL
url = f'{HOST}/account/sLogin'
# 2 请求体
payload =data
# 3 请求头 (此处不需要)
# 4 发请求
res = requests.post(url,data=payload) # data 为表单,json为json
# 5 响应体
print(res.text)
if __name__ == '__main__':
test_data={'usernane':'test001','password':'ahuy5gshcbdmappwy88'}# password为加密后数据
login(test_data)
requests库的请求类型:
image.png
请求相关信息:
image.png
image.png
https协议代码
#https协议
HOST = 'https://120.55.190.222'
import requests
#处理https警告
requests.packages.urllib3.disable_warnings()
def login():
#1- url
url = f'{HOST}/api/mgr/loginReq'
#2- 请求体
payload = {'username':'auto','password':'sdfsdfsdf'}
#3- 请求
resp = requests.post(url,data=payload,verify = False)#不使用SSL
return resp.text
if __name__ == '__main__':
res = login()
print(res)
网友评论