第一步:封装代码
#API工具类文件夹
#2020年10月18日21:24:38
import requests
class HTTPRequest:
'''利用request封装get请求和post请求 #写封装时,开头注释
'''
def http_request(self,url,data,method,cookie=None): #method 请求方法
'''url:请求的地址 http://xxxx:post
param:传递的参数 非必填 字典格式传递参数
cookie:请求的时候传递的cookie值
method 请求方式:支持get以及post请求
'''
if method.lower()=="get":
res = requests.post(url, data, cookies=cookie) # 响应结果的消息实体(响应结果包含响应头、响应状态码、cookies、响应正文)
else:
res = requests.post(url, data, cookies=cookie) # 响应结果的消息实体(响应结果包含响应头、响应状态码、cookies、响应正文)
#print("响应正文2:",res.json) #返回为字典类型(dict json) ,一般推荐字典类型,更方便取值 # print("响应正文1:",res.text) #返回类型json,返回为字符串类型(str json) return res #返回一个消息实体
if __name__=='__main__': url = 'https://i.loveloveme.cn/api/token' data = {"email": "mydingyan@qq.com", "password": "5waishenme"} # id定位文本框,name也可以定位 res = HTTPRequest().http_request(url,data,"post") print("登录结果是",res.json())
#post请求 带参数 # # print("响应头:",res.headers) #响应头,可以用requests.get中查看 # print("响应状态码",res.status_code) #打印接口响应状态码 # # print("**打印cookies***:",res.cookies) #打印的值为类字典形式【key:value】 (PHPSESSID=dpdrhoapfl6kjsj51m6v1pc828 为输入的结果等号前为:key,等号后为value) # print("**打印cookies value***:",res.cookies["PHPSESSID"]) #打印的值为类字典形式(取值使用key取值) # # print("响应正文1:",res.text) #返回类型json,返回为字符串类型(str json) # print("响应正文2:",res.json) #返回为字典类型(dict json) ,一般推荐字典类型,更方便取值
#已成功部署,无需安装,请登录修改默认账号密码
第二步:编写测试用例
#1、完成htt_request类的单元测试
#针对http_request类做作业 :登录接口 冲金币接口
#2针对登录接口写4条用例:正常登录、不输入密码、不输入账号一个、输入错误的密码
#充值接口4个:正常充值、不输入账号、不输入金额、输入错误的金额(负数)
#3清利用任何一种方法实现用例的加载并执行
#4生成HTML类的测试报告
#需要在测试类里面加上异常处理和断言
#写测试用例
#第一步:先搭建测试报告
import unittest #单元测试框架
from class_1018.zuoye.http_request import HTTPRequest #调用HTTPRequeset
class TestHttp(unittest.TestCase):
def setUp(self): #self表示可以在函数中被调用
#登录
self.login_url="http://test.lemonban.com/futureloan/mvc/api/member/login"
self.login_data={"mobilephone":"13430510761","pwd":"123456"}
#充值的URL
self.recharge_url="http://test.lemonban.com/futureloan/mvc/api/member/recharge"
#获取登录后的cookies
self.cookies = HTTPRequest().http_request(self.login_url,self.login_data,"get").cookies
print("setup函数里面登录后产生的cookies是{}".format(self.cookies))
def test_login_normal(self): #正常登录
data = {"mobilephone":"13430510761","pwd":"123456"}
res = HTTPRequest().http_request(self.login_url,data,"get")
try:
self.assertEqual("10001",res.json()["code"]) #断言,判断返回值(返回值为json)中的code
except AssertionError as e:
print("test_login_normal‘s error is{}".format(e))
raise e #抛出异常
print(res.json())
def test_login_wrong_pwd(self): #输入错误的密码
data = {"mobilephone":"13430510761","pwd":"75131"}
res = HTTPRequest().http_request(self.login_url,data,'get')
try:
self.assertEqual("20111",res.json()["code"]) #断言,判断返回值(返回值为json)中的code
except AssertionError as e:
print("test_login_normal‘s error is{}".format(e))
raise e #抛出异常
print(res.json())
def test_recharge_normal(self): #正常充值 recharge_data ={"mobilephone":"13430510761","amount":"1000"} res = HTTPRequest().http_request(self.recharge_url,recharge_data,'post',self.cookies) try: self.assertEqual("10001",res.json()["code"]) #断言,判断返回值(返回值为json)中的code except AssertionError as e: print("test_login_normal‘s error is{}".format(e)) raise e print(res.json())
def test_recharge_negative(self):#充值为负数 recharge_data = {"mobilephone":"13430510761","amount":"-500"} res = HTTPRequest().http_request(self.recharge_url,recharge_data,"post",self.cookies) print(res.json())
def tearDown(self): pass
第三步:执行测试用例
#API工具类文件夹
#2020年10月18日21:24:38
import requests
class HTTPRequest:
'''利用request封装get请求和post请求 #写封装时,开头注释
'''
def http_request(self,url,data,method,cookie=None): #method 请求方法
'''url:请求的地址 http://xxxx:post
param:传递的参数 非必填 字典格式传递参数
cookie:请求的时候传递的cookie值
method 请求方式:支持get以及post请求
'''
if method.lower()=="get":
res = requests.post(url, data, cookies=cookie) # 响应结果的消息实体(响应结果包含响应头、响应状态码、cookies、响应正文)
else:
res = requests.post(url, data, cookies=cookie) # 响应结果的消息实体(响应结果包含响应头、响应状态码、cookies、响应正文)
#print("响应正文2:",res.json) #返回为字典类型(dict json) ,一般推荐字典类型,更方便取值 # print("响应正文1:",res.text) #返回类型json,返回为字符串类型(str json) return res #返回一个消息实体
if __name__=='__main__': url = 'https://i.loveloveme.cn/api/token' data = {"email": "mydingyan@qq.com", "password": "5waishenme"} # id定位文本框,name也可以定位 res = HTTPRequest().http_request(url,data,"post") print("登录结果是",res.json())
#post请求 带参数 # # print("响应头:",res.headers) #响应头,可以用requests.get中查看 # print("响应状态码",res.status_code) #打印接口响应状态码 # # print("**打印cookies***:",res.cookies) #打印的值为类字典形式【key:value】 (PHPSESSID=dpdrhoapfl6kjsj51m6v1pc828 为输入的结果等号前为:key,等号后为value) # print("**打印cookies value***:",res.cookies["PHPSESSID"]) #打印的值为类字典形式(取值使用key取值) # # print("响应正文1:",res.text) #返回类型json,返回为字符串类型(str json) # print("响应正文2:",res.json) #返回为字典类型(dict json) ,一般推荐字典类型,更方便取值
#已成功部署,无需安装,请登录修改默认账号密码
第四步:测试用例执行结果
评论已关闭!