unittest(5):openpyxl结合request练习

接口测试用例实战

以下,我们以登录接口进行实战。

封装的requests请求类,每个用例都要调用,可以放在公共模块里。

① 在项目下新建一个文件夹common,放入请求模块requests_handler.py

 

 requests_handler.py

import json
from common.requese_exception import requestException
class requestHandle(object):
def __init__(self):
self.session=requests.session()
def visvit(self,method=None,url=None,parmas=None,data=None,headers=None,json=None):
try:
result = self.session.request(method, url=url, params=parmas, data=data, headers=headers,json=json)
urlcopy = url
if result.status_code==200:
print('code正确')
else:
raise requestException(urlcopy)
except requestException(urlcopy) as e:
print('发现问题')
finally:
print('requestHandle结束')
# print(result.content.decode('utf-8'))
return result.content.decode('utf-8')
def close(self):
self.session.close()

requests_handler.py

import unittest
import urllib.parse
from common.request_handle import requestHandle
from common.excel_handle import ExcelHandler
import ddt
@ddt.ddt
class TestF(unittest.TestCase):
'''
@ddt.data(*case_data)传递的参数不能在setup里实例化
'''
case_data = ExcelHandler('case1.xlsx', 'Second').get_data()
print(case_data)

def setUp(self) -> None:
self.request=requestHandle()

def tearDown(self) -> None:
self.request.close()

@ddt.data(*case_data)
def testCaseF(self,items):
'''
当请求方式是"Content-Type":"application/x-www-form-urlencoded"
传入的数据需要进行转换formdata=urllib.parse.urlencode(parmes)
:return:
'''
header={"key":"Content-Type",
"Content-Type":"application/x-www-form-urlencoded"
}
# print(items[0])
re_method='post'
re_method=str(items['method'])
re_url=str(items['URL'])
'''
从excel读取的数据要加eval恢复成原类型数据或者str也可以
'''
parmes=eval(items['payload'])
print(parmes)
formdata=urllib.parse.urlencode(parmes)
result=self.request.visvit(method=re_method,data=formdata,url=re_url,headers=header)
return result
posted @ 2021-07-12 15:42  Tester-**  阅读(53)  评论(0编辑  收藏  举报