接口自动化request + pytest
requests
requests定义
requests响应
发送无参数的get请求
发送有参数的get请求
模块总览
将读取的数据存放到列表中
requests请求接口返回状态码,并使用断言
requests
requests定义
requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到,Requests是Python语言的第三方的库,专门用于发送HTTP请求
requests响应
r.status_code 响应状态码
r.heards 响应头
r.cookies 响应cookies
r.text 响应文本
r. encoding 当前编码
r. content 以字节形式(二进制)返回
最常用的是根据响应状态码判断接口是否连通,经常用于做接口中断言判断
发送无参数的get请求
import requests
class Baidu():
def methon(self):
r = requests.get(“http://apis.juhe.cn/mobile/get?phone=13611130750&type=&key=e051969849556bb1bc1e19c73c813d52”)
print®
baidu = Baidu()
baidu.methon()
发送有参数的get请求
import requests
class Baidu():
def methon(self):
ps = {“phone”: 13611130750, “key”: “e051969849556bb1bc1e19c73c813d52”}
# 将参数传到ph里面
ph = requests.get(“http://apis.juhe.cn/mobile/get”, params=ps)
print(ph.text)
# 获取状态码
status = ph.status_code
print("------------")
print(status)
baidu = Baidu()
baidu.methon()
模块总览
dataDemo(存放数据)>> readDemo(读取数据)
useRequests(发送请求)>>testDemo(生成报告)
将读取的数据存放到列表中
接口
url,params,methon
http://japi.juhe.cn/qqevaluate/qq,{“qq”:“2962863689”,“key”:“9aaf2d20b591e6e94edf97c1c64d290e”},post
http://apis.juhe.cn/mobile/get,{“phone”:“13611130750”,“key”:“e051969849556bb1bc1e19c73c813d52”},get
import csv
class Resd_Csv():
def resd_csv(self):
item = []
r = csv.reader(open("…/dataDemo/testdemo.csv",“r”))
# 循环获取csv中的数值,并添加到item中
for i in r:
item.append(i)
# 获取下标值为 1 的值和他后面的数据
item = item[1:]
return item
r = Resd_Csv()
a = r.resd_csv()
print(a)
requests请求接口返回状态码,并使用断言
接口
url,params,methon
http://japi.juhe.cn/qqevaluate/qq1324,{“qq”:“2962863689”,“key”:“9aaf2d20b591e6e94edf97c1c64d290e”},post
http://apis.juhe.cn/mobile/get,{“phone”:“13611130750”,“key”:“e051969849556bb1bc1e19c73c813d52”},get
from readDemo.resd_csv import Read_Csv
import requests
r = Read_Csv()
aa = r.read_csv()
print(aa)
class RequestsClass():
def requests_method(self):
item = []
for j in aa:
if j[2] == “get”:
rr = requests.get(url=j[0], params=j[1])
item.append(rr.status_code)
else:
rr = requests.post(url=j[0], data=j[1])
item.append(rr.status_code)
return item
r = RequestsClass()
ee = r.requests_method()
print(ee)
from useRequests.requestsuse import RequestsClass
import pytest
查看传过来的状态码是否正常
r = RequestsClass()
a = r.requests_method()
print(a)
创建一个类,进行断言
class TestClaa():
def test_one(self):
# 循环取出数据并进行断言
for i in a:
assert i == 200
if name == ‘main’:
pytest.main([“test_one.py”])