什么是接口自动化
接口:是系统的数据服务的渠道。
足浴城:系统
朋友:用户提出请求
大堂经理:请求的传递,响应结果的传递。
技师部:请求发送的最终地点,系统的接口
技师:系统运算的结果,响应结果
接口中核心需要懂得的内容:
1.URL:统一资源定位符
网络协:/IP:PORT/path?args1-=xxx&args2=aaa
htps://ww. baidu.com/s?ie=utf{ I
8&f=8&rsv_ _bp=1&rsv_ idx=1 &tn=baidu&wd=xuzhu&fenlei=256&rsv_ _pq=d5bd4652000135e1&rsv_ t=b279PRlc%2BurntMol5OZ%2Bg0tSLhFoKu56h5ylykreGtHwEDKF1PbR%2FBmSCew&rqlang=cn&rSv_ enter=1&rsv_ _dl=tb&rSv_ sug3=6&rSv_ sug1=3&rSV_ sug7=100&rSv_ sug2=0&rSv_ btype=i&prefixsug=xuzhu&rsp=5&inputT=768&rSv_ sug4=1640
2.网络协议:市场最为核心的叫做HTTP
3.请求方法:
GET:所有的参数都是在url中明文显示,主要用于数据的展示。
POST:所有的参数不会在ur中显示,主要用于数据的提交.修改、删除相关操作。
4.请求:
请求头(header) :用于规范化,用于添加附加数据内容,一般是cookie
请求体:传递本次请求的参数。
5.响应:
响应状态:状态码
200 请求成功
301 重定向
404 接口路径未找到
500 服务器内部异常
响应头:用于规范化,定义需要被保存到cookie的值
响应体:返回本次的响应数据
#接口请求demo :
#1.准备测试数据
#2. 发送请求
#3.解析响应并断言校验
import requests
#准备测试数据
data = {
"username": ”admin"
"password": "123456"
}
urL = 'http://127.0. 0.1:5000/api/login'
#发送请求,响应结果的接收
res = requests. post(url=url, json=data)
#解析并断言
#有状态码进行断言只是说明请求成功了,返回的数据并不能校验到,用文本断言更加准确
print(res.status_code)
print(res. text)
#关键字驱动:将接口测试中常用的内容进行二次封装,作为自定义类进行调用
class key:
#get
def get(self,url,params=None,**kwargs)
return requests.get(url=url, params=params, **kwargs)
#post
def post(self,url,data=None,**kwargs)
return requests.get(url=url, data=data, **kwargs)
#文本获取:断言校验的时候是需要先获取响应文本,然后进行断言,推荐使用jsonpathdef get txt(self, text, key):
try:
text = json. loads (text)
values = jsonpath. jsonpath(text, '$.. {}'.format(key))
# jsonpath获取的结果是以list格式保存,如果没有获取到返回False
if values:
if len(values) == 1:
return values[0]
else:
return values
return values
except Exception as е:
print(e)
return False