1.test_register13.py 文件
import unittest
import os
from py30.class_Lesson13.register13 import register
import ddt
file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),'class_login.xlsx')
from openpyxl import load_workbook
wb = load_workbook(file_path)
sh = wb['login']
all_datas = []
titles = []
for item in list(sh.rows)[0]:
titles.append(item.value)
for item in list(sh.rows)[1:]:
values = []
for val in item:
values.append(val.value)
res = dict(zip(titles, values))
res["expected"] = eval(res["expected"])
if type(res['password1']) == int and type(res['password2']) == int:
res['password1'] = str(res['password1'])
res['password2'] = str(res['password2'])
all_datas.append(res)
@ddt.ddt
class Testlogregister(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
print('=========== 测试用例类{}开始执行了'.format(cls))
@classmethod
def tearDownClass(cls) -> None:
print('=========== 测试用例类{}执行结束了'.format(cls))
def setUp(self) -> None:
print('************ 用例{}开始执行了'.format(self))
def tearDown(self) -> None:
print('************ 用例{}执行结束了'.format(self))
@ddt.data(*all_datas)
def test_logster(self,case):
rop = register(case['username'],case['password1'],case['password2'])
try:
self.assertEqual(rop,case['expected'])
except AssertionError as e:
print('报错是{0}'.format(e))
raise e
2.main13.py 文件
import unittest
from py30.class_Lesson13.test_register13 import Testlogregister
s = unittest.TestLoader().discover(r'F:\PyChaer-workspare\py30\class_Lesson13')
print(s)
from BeautifulReport import BeautifulReport
cuto = BeautifulReport(s)
cuto.report('2020-0612作业测试报告','beau.report.html')
3.register13.py 函数文件
users = [{'user': 'python26', 'password': '123456'}]
def register(username, password1, password2):
if not all([username, password1, password2]):
return {"code": 0, "msg": "所有参数不能为空"}
for user in users:
if username == user['user']:
return {"code": 0, "msg": "该账户已存在"}
else:
if password1 != password2:
return {"code": 0, "msg": "两次密码不一致"}
else:
if 6 <= len(username) >= 6 and 6 <= len(password1) <= 18:
users.append({'user': username, 'password': password2})
return {"code": 1, "msg": "注册成功"}
else:
return {"code": 0, "msg": "账号和密码必须在6-18位之间"}
if __name__ == "__main__":
res = register('python14','123456', '123456')
print(res)
'''
用例如下:
1.账号输入为空
预期结果:{"code": 0, "msg": "所有参数不能为空"}
实际结果:
2.密码输入为空
预期结果:{"code": 0, "msg": "所有参数不能为空"}
实际结果:
3.注册成功
预期结果:{"code": 1, "msg": "注册成功"}
实际结果:
4.账号已存在
预期结果:{"code": 0, "msg": "该账户已存在"}
实际结果:
5.两次密码不一致
预期结果:{"code": 0, "msg": "两次密码不一致"}
实际结果:
6.账号长度小于6位,注册失败
预期结果:{"code": 0, "msg": "账号和密码必须在6-18位之间"}
实际结果:
7.账号长度大于18位,注册失败
预期结果:{"code": 0, "msg": "账号和密码必须在6-18位之间"}
实际结果:
8.密码长度小于6位,注册失败
预期结果:{"code": 0, "msg": "账号和密码必须在6-18位之间"}
实际结果:
9.密码长度大于18位,注册失败
预期结果:{"code": 0, "msg": "账号和密码必须在6-18位之间"}
实际结果:
'''
- class_login.xlsx 用例文件