题目:1)针对YAPI网址写的http_request类做作业
2)提供2个接口:登陆和查询tools
3)针对登陆接口写4个用例:正常登陆,不输入密码,不输入账号,输入错误的密码
4)请利用任何一种方法实现用例的加载并执行
5)生成html的测试报告
注意:请在测试类里加上异常处理以及断言
http_request.py
import requests
import json
class HttpRequest:
"""利用request封装get请求和post请求
"""
def http_request(self, url, method, header=None, params=None, cookie=None):
"""url:请求的地址http://XXX:port
:param:传递的参数 非必填参数 字典的格式传递参数
method:请求方法,支持post和get
cookie:请求的时候传递的cookie值"""
if method=='get':
res = requests.get(url,headers=header,data=params,cookies=cookie,verify=False)
else:
res = requests.post(url,headers=header,data=params,cookies=cookie,verify=False)
return res #返回一个消息实体
if __name__=='__main__':
login_url = '********'
params = {
"email": "********","password": "********"}
header = {
'Content-Type': 'application/json; charset=utf-8'}
res=HttpRequest().http_request(login_url,'post',header,json.dumps(params))
# print(json.dumps(payload))##<class 'str'>
# print(payload)#<class 'dict'>
print("登陆结果是:",res.text)
# print(type(res.json()['errmsg']))#<class 'str'>
# print(type(res.json()['errcode']))#<class 'int'>
# 查询分类
params_fenlei={
'group_id':'207','page': '1','limit': '10'}
fenlei_url ='********'
chaxun_res=HttpRequest().http_request(fenlei_url,'get',params_fenlei,cookie=res.cookies)
print(type(json.dumps(params_fenlei)))
print("查询结果是:",chaxun_res.text)
HttpRequest()
用例的代码:
request_case.py
import unittest
from auto_study.API_AUTO.Tools.http_request import HttpRequest
class api_login(unittest.TestCase):#登陆接口的用例
def setUp(self):
#登陆
self.login_url = '********'
self.login_data = {
"email": "********","password": "********"}
#查看详情的网址
self.fenlei_url= '********'
#登陆后的cookies
self.cookies=HttpRequest().http_request(self.login_url,'post',params=self.login_data).cookies
print("登陆后产生的cookie是:{}".format(self.cookies))
def test_normal_login(self):#输入正确的用户
res=HttpRequest().http_request(self.login_url,'post',params=self.login_data)
print(res.status_code)
print(res.text)
def test_no_password(self):#不输入密码
data =