python 写测试接口

request请求官方文档

https://cn.python-requests.org/zh_CN/latest/search.html?q=suds&check_keywords=yes&area=default

测试总结

https://www.cnblogs.com/superhin/p/12737646.html

postman  learn

https://grey-robot-704518.postman.co/workspace/fcc445a5-2f32-482f-8f74-a41244a68c44/api/3c1abe95-5fb0-4d8b-99ad-60303f1718e5/version/5e741bd7-fcab-413e-933b-bab112e6f24b?tab=overview

url 的名词解释:


名词解释 appId 账号、appSecret 密码、token 令牌 令牌意识是 进入官网的二次确认

名词解释 API

API:   方便使用的交互式的接口代码      根据店家菜谱学做菜      创造
SDK:  封装了多个功能的大型代码包      店家提供的外卖服务      使用模块
常见的接口类型:
http:基于http协议(tcp/ip)协议的一个应用层协议的开发接口,用于定义客户端和web服务器通讯
请求方式主要是 GET\POST\PUT\DELETE     
webservice:是指web上提供的一种服务接口,是需要遵守wsdl(web服务定义你语言)/SOAP(简单请求协议)规范的,本质上也是http协议
 
接口包含的内容:
request
http版本/请求地址url:
请求方法GET(无body)\POST(有body)\PUT\DELETE
请求头:content- type
请求正文:请求参数
请求组成:状态行、消息报头、空行、响应正文
状态码:1xx..... 状态码的意思分解


 
 
 
 
 

if rel.status_code == 200:
account_dict_data = self.data_conversion(rel.text)
try:
return account_dict_data["soap:Envelope"]["soap:Body"]["ns2:queryEntUsersResponse"]["return"]["total"]
except KeyError:
print "xml data error: %s" % account_dict_data
exit(1)

response
状态码 标记响应状态的一个标识  200 ok
响应头:content-type
响应正文:响应码 msg
响应组成:状态行、消息报头、空行、响应正文
 
接口传递的数据格式: (该内容在post的body里面)
application/json    { "name":"tony","pwd":"123456"}
application/x-www-form-urlencoded  提交表单的格式 
text/xml       <name>tony</name>
multipart/form-data  上传文件 content-type:multipart/form-data
 
登陆参数
post证书

request 请求接口的方法
先检查接口有没有问题 可以用测试接口 放到系统上能不能流程走通

post方法  / get方法
import requests
#----------------------------登陆
def login(s,user:"test",psw:"123"): #冒号是参数的注释
'''实现登陆'''

url = "#####"
body = {
"username":user,
"password":psw
}
r = s.post(url,json=body) #发送post 请求
# print(r.text) #打印返回值

#提取token
token = r.json()["token"]
# print(token) #打印token
return token #调用token

#-------------------------- 个人信息
def get_info():
#获取个人信息
url2 = "###########"
h = {
"Authorization":"Token"+token
}
r2 = s.get(url2,headers=h)
# print(r2.text)
return = r2

#---------------------------定义模版化
if _name_ == '_main_':
s = requests.session() #建立会话 相当于打开一次浏览器 通过会话来关联接口
token = login(s) #登陆返回token
#每个接口都可以通过登陆来关联-----------------------------------
r2 = get_info(s,token) #token返回到下面

print(r2.json()) #转为json格式

#在请求完地址后 可以获取返回内容
print(r.status_code)
print(r.text) #文本内容 {“error_code”:“0”,"reason":"success"}
print(type(r.text)) #打印返回数据的类型
print(r.json())#转成python的字典 #如何打印出来的类型是text/html;charset=utf-8类型 就不能转为 json格式;
 
xml数据格式:

soapui完成webservice请求
 
get请求和 post请求展示
格式转换
转python的字典 .json()
import json
#d1是字典个数
d1 = {
"a" :None, "b" :False,"e" :["1",12],"f" :{"a" :None,"b" :False,"e" :["1",12],}
}
print(type(d1)) #<type 'dict'>

d1_js = json.dumps(d1) #字典转json

print(d1_js)
#{"a": null, "b": false, "e": ["1", 12], "f": {"a": null, "b": false, "e": ["1", 12]}}
print(type(d1_js))

js_di = json.loads(d1_js) #json转字典

print(type(d1_js)) #<type 'str'>
print (type(js_di)) #<type 'dict'>
在这里插入图片描述
在浏览器输入URL回车之后发生过程:
看病 挂号 来到科室外 :
已知的网站输入到浏览器的搜索栏里
[挂号过程=url 地址 解析 ip地址叫 DNS过程 , ip地址: 为了方便找指定的服务器]
判断医生是否在房间 :
建立 TCP 连接 ,建立通道
敲门/进门/得到回应: 
TCP 三次握手
进房间后 叙述病情:
发送http请求
描述病情的形式:
请求行/请求头部/空行/请求数据
医生说 你生病了:
响应HTTP请求:状态行 status code 200/响应头部/空行/响应数据
治病疗伤:
解析接收到的HTML/CSS/JAVASCRIPT等文件
   

token
#def login (r):
# 请求响应
# 打印返回报文
# 提取 token
# return token

#def get_info (r,token):
# 请求响应 + token
# 打印返回报文

#定义实例化:
# 将请求的方法
# r = requests.session()
# 调用上面的函数方法
# token = login(r)
# 实现 get_info 函数
# get_info(r,token)
posted @ 2022-07-01 14:41  30度以南  阅读(10)  评论(0)    收藏  举报