我的软件测试资源小站:www.qabujiaban.com-
项目总览:代码目录/报告
- 代码总览
项目准备:
1.导入:HTMLTestRunnerNew.py
import HTMLTestRunnerNew
2.导入其它包
- 工具类:public_excel.py
# -*- coding:utf-8 -*-
# @Time :2021/2/4 15:02
# @Author :wangjinhao
# @Email :wbxztoo@163.com
# @File :public_excel.py
import openpyxl
class PublicExcel:
def __init__(self,filename,sheetname):
'''
:param filename: excel文件的全程
:param sheetname: sheet表单的名称
'''
self.filename = filename
self.sheetname = sheetname
def read_excel(self):
#获取excel
wb = openpyxl.load_workbook(self.filename)
#获取sheet
sheet = wb[self.sheetname]
#
sheet_list=[]
for n in range(2,sheet.max_row+1):
sheet_dic={}
sheet_dic['url']=sheet.cell(n,2).value
sheet_dic['data']=eval(sheet.cell(n,3).value)#eval() 数据原类型,否则excel获取的数据为字符串类型
sheet_dic['method']=sheet.cell(n,4).value
sheet_list.append(sheet_dic)
#返回读取数据的列表形式
return sheet_list
- 工具类:public_request.py
# -*- coding:utf-8 -*-
# @Time :2021/2/2 15:59
# @Author :wangjinhao
# @Email :wbxztoo@163.com
# @File :public_request.py
import requests
#工具类
class PublicRequest:
def __init__(self,url,data,method=None):
'''
:param url: 请求地址
:param data: 请求参数
:param method: 请求方法
'''
self.url = url
self.data = data
self.method=str(method).lower()
def http_request(self):
if self.method=='get':#判断请求凡是
return requests.get(self.url,self.data,self.method).json()
elif self.method=='post':
return requests.post(self.url,self.data,self.method).json()
else:
return '请求方式method错误...'
- 工具类:H5接口测试用例.xlsx
**
- test_request.py
**
```python
# -*- coding:utf-8 -*-
# @Time :2021/2/4 14:39
# @Author :wangjinhao
# @Email :wbxztoo@163.com
# @File :test_request.py
import unittest
#工具
from com.tools.public_request import PublicRequest
#导入excel包
import openpyxl
#导入ddt
from ddt import ddt,data,unpack
#导入excel封装类
from com.tools.public_excel import PublicExcel
'''excel'''
test_data = PublicExcel('H5接口测试用例.xlsx','登录接口').read_excel()
@ddt
class TestRequest(unittest.TestCase):
def setUp(self) -> None:
pass
@data(*test_data)
def test_login(self,data):
res = PublicRequest(data['url'],data['data'],data['method']).http_request()
print(res)
self.assertEqual(1,res['status'])
def tearDown(self) -> None:
pass
# if __name__ == '__main__':
# unittest.main()
**
- log_request.py
**
# -*- coding:utf-8 -*-
# @Time :2021/2/4 14:54
# @Author :wangjinhao
# @Email :wbxztoo@163.com
# @File :log_request.py
import unittest
import HTMLTestRunnerNew
from com.testloginapi.test_request import TestRequest
suite = unittest.TestSuite()
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestRequest))
with open('login_API.html','wb') as file:
runner = HTMLTestRunnerNew.HTMLTestRunner(stream=file, verbosity=2,title='这里是标题...',description='这里是描述...',tester='某某某')
runner.run(suite)