python接口测试

1、请求方法

主要的请求方法有: GET、POST、DELETE、PUT 、HEAD 等方法
最最常用的方法就是: GET方法、POST方法

1.1、GET方法:

●GET方法提交数据不安全,数据置于请求行,浏览器地址栏可见;
●GET方法URL长度每个浏览器限制数量不同,最后在2000字符以内
●GET方法速度快
●默认的请求方法,不需要提交大量数据、无敏感、保密数据时使用
●可能会被缓存
●请求可能会被保留在浏览器历史记录中

1.2、POST方法:

●POST方法提交数据安全,数据置于消息主体内,浏览器地址栏不可见
●POST方法提交的数据大小没有限制
●POST方法速度慢
●需要提交大量数据、有敏感、保密数据时使用
●不会被缓存
●请求不会被保留在浏览器历史记录中
3.4请求/响应头中,重要的参数

(一) Content-Type参数
Content-Type,叫:是Internet Media Type,互联网媒体类型。存在于请求中或响应中:
●如果出现在请求中,则表示:告诉服务端客户端实际发送的数据类型。
●如果出现在响应中,则表示:告诉客户端服务端实际发送的数据类型。
在[请求]中,常见的数据类型有
●application/x-www-form-urlencode-----> 以“键-值”对的方式组织的数据
●application/json ---- JSON字符串格式提交数据
●multipart/form-data----> 一般需要上传文件的表单则用该类型
一、表单格式详解

[urlencoded格式] :又叫form格式, 或者是x-www-form-urlencoded格式。
口诀:表单格式是由键值对组成。键和值之间用=。多个键值对之间用&。例如: name= ZhangSan&age= 16
二、JSON格式详解
[json格式] :
口诀1: JSON有对象、数组两种结构,有字符串、数字、逻辑值、空值四种数据类型
口诀2:用大括号{}表示对象。对象是由属性组成的。属性是由键值对组成的。键和值之间用冒号隔开。属性之间用逗号隔开。键必须用双引号引起来。
口诀3:用中括号[]表示数组。数组由单独的值组成
口诀4: JSON的灵活就灵活在: JSON可以嵌套

在这里插入图片描述

口诀1: params参数,如果传入的是字典,自动编码为表单。一般get请求需要
口诀2: data参数,如果传入的是字典,自动编码为表单。
口诀3: data参数,如果传入的是字符串,按原格式直接发布出去。
口诀4: json参数,如果传入的是字典,自动编码为json字符串。
口诀5: json参数,如果传入的是字符串,按原格式基础上添加双引号发布出去。
口诀6: headers参数, 传递的是字典格式

接口测试基本结构:

import requests
url = 'http://192.168.XX.XX:1000/xxx/xxx/xxx'
head = {"token": "可用的token"}

def login(name,password):
	# 用户的账户密码作为参数传入,具体需要传入什么参数以接口文档为准
	data = {
		"username": name,
		"psd": password
	}

	res = requests.post(url, json=data,headers=head)
	return res.json()

if __name__ == '__main__':
	login('makabaka_222', 123456)

具体使用什么方法参考接口文档
方法:
requests.get
requests.post
requests.put
requests.delete

参数:
url
headers:请求头,看接口文档中是否需要请求头
cookies
params:get方法才有
data,post方法传请求体
json,post方法传json格式的请求体

转化:
字典–>json格式,使用json.dumps(字典)
json格式–>字典,使用json.loads(json格式)

==========================================================================================

获取json文件的数据

def get_data():
	with open('./wechatId.json','r',encoding='utf8')as fp:
		json_data = json.load(fp)
		# print('这是文件中的json数据:',json_data)
	return json_data['RECORDS']

======================================================================

密码需要进行md5加密

import hashlib 

def get_md5(password): 
	#1-实例化加密对象 
	md5 = hashlib.md5() 
	
	#2- 进行加密操作 
	md5.update(password.encode('utf-8')) 
	
	#3- 返回加密后的值 	
	return md5.hexdigest()

======================================================================
处理https警告

requests.packages.urllib3.disable_warnin gs()
def login(): 
	#1- url 
	url = f'{HOST}/XX/XX/XX' 
	#2- 请求体 
	payload = {'username':'makabaka_222','password':'123456'} 
	#3- 请求 
	resp = requests.post(url,data=payload,verify = False)
	#不使用SSL 
	return resp.text
pytest

1、.py测试文件必须以test_开头(或者以_test结尾)
2、测试类必须以Test开头,并且不能有init方法
3、测试方法必须以test_开头
4、断言必须使用assert

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值