-------笔记:
"""
定义测试类,继承unitest.TestCas
每一个测试用例函数需用test_开头
在类上面运行,则运行全部用例
在函数上运行,则只运行当前函数的用例
编写用例:
1、测试数据
2、测试步骤
3、断言:预期结果与实际结果的比对
slef.AssertXXXXX(实际结果,预期结果)
4、前置后置
setUp在用例执行之前执行
tearDown在用例之后执行

setupClass 类里面的第一个用例执行之前
teardownClass 类里面的第一个用例执行后
"""
=========开始=========
#1、准备:定义用例功能判断规则(练习用,请以真实测试环境,本次只是为写后续的测试用例做准备)(login.py)
def login_check(username=None, passwd=None):
if username != None and passwd != None:
if username == 'python' and passwd == '123456':
return ({'code': 0, 'msg': '登录成功'})
else:
return ({'code': 1, 'msg': '账号或密码不正确'})
else:
return ({'code': 1, 'msg': '用户名或密码均不能为空!'})

#2、编写测试用例(test_login.py)

import unittest
from www.test_case.login import login_check
from ddt import ddt, data
datas = [
{'user': 'python', 'passwd': '123456', 'check': {'code': '0', 'msg': '登录成功'}},
{'user': 'python', 'passwd': '12345', 'check':{'code':'1','msg':'用户名或密码不正确'}},
{'user': 'pythonnnnn', 'passwd': '123456', 'check':{'code':'1','msg':'用户名或密码不正确'}}
]
@ddt
class Test_login(unittest.TestCase):

@data(*datas) # 接收列表数据 ,此时已经进行了拆包,传到下面参数 case
def test_login(self, case):
res = login_check(case['user'], case['passwd'])
self.assertEqual(res, case['check'])

@classmethod
def setUpclass(cls):
print('开始类之前........')

@classmethod
def tearDownClass(cls):
print('结束类之后.......')

def setUp(self):
print('开始用例之前....')

def tearDown(self):
print('结束用例之后.......')
#3、执行用例+生产测试报告
import unittest
from HTMLTestRunnerNew import HTMLTestRunner
# 常利用discover() 从指定目录开始搜索测试用例:
# 1、指定目录
# 2、过滤用例文件,以文件名匹配, 如:test*.py 表示所有以test开头,.py 结尾的用例
res = unittest.TestLoader().discover('D:\pycharm\python3\webapp\www')   #收集用例
with open('report.html','wb') as fs:
runner = HTMLTestRunner(fs,title='My report')
runner.run(res)
posted on 2022-11-24 15:41  给天使看的戲  阅读(28)  评论(0编辑  收藏  举报