unittest与selenium
unittest与selenium
Testcase目录存放测试用例
测试用例testcase .py
testcase .py
from Business.Login import Login
import unittest
class Test(unittest.TestCase):
def setUp(self):
print('hello')
def tearDown(self):
print('bye')
# 定义正确登陆的测试用例
def test_001(self):
log = Login()
# 用账号密码登录
log.login('hack_ai_buster','1qaz2wsx#EDC')
# 获取登录之后的用户名
data = log.get_text('class','hd_login_name')
# 断言,判断登录后的用户名是否和预期用户名相同
self.assertEqual('hack_ai_buster',data)
# 账号密码都不输入,直接登录
def test_002(self):
log = Login()
# 用账号密码登录
log.login('', '')
# 获取登录之后的用户名
data = log.get_text('id','error_tips')
# 断言,判断登录后的用户名是否和预期用户名相同
self.assertEqual('请输入账号和密码',data)
# 只输入账号不输入密码,直接登录
def test_003(self):
log = Login()
# 用账号密码登录
log.login('sdfsdadfa', '')
# 获取登录之后的用户名
data = log.get_text('id', 'error_tips')
# 断言,判断登录后的用户名是否和预期用户名相同
self.assertEqual('请输入密码', data)
# 只输入账号不输入密码,直接登录
def test_004(self):
log = Login()
# 用账号密码登录
log.login('sdfsdadfa', '')
# 获取登录之后的用户名
data = log.get_text('id', 'error_tips')
# 断言,判断登录后的用户名是否和预期用户名相同
self.assertEqual('请输入密码itcast', data)
if __name__ == '__main__':
unittest.main()
注意:此时该py文件无法运行,因为运行选项中没有该文件
- 点击导航栏中的 run 一栏,选择编辑结构(Edit Configurations…)
- 将原有文件全部删除
- 选择python类型文件
- 选择对应的文件
运行该文件,运行了4个测试用例
其中,第四个用例失败,第三个是警告,资源警告,并非报错
测试套件运行测试用例
同样需要使用上面的方式运行该文件
testsuit .py
import unittest
from Testcase.testcase import Test
class SuitTest(unittest.TestCase):
def test_suit(self):
case_list = ['test_001','test_002','test_003','test_004']
# 创建测试套件
mysuit = unittest.TestSuite()
# 循环将测试用例放到测试套件中
for case in case_list:
mysuit.addTest(Test(case))
# 创建测试运行器,设置为每一个测试用例生成测试报告,运行测试套件中的测试用例
unittest.TextTestRunner(verbosity=2).run(mysuit)
if __name__ == '__main__':
unittest.main()
运行结果,测试套件中第四个测试用例失败,和上面运行的结果一致
生成html格式测试报告
import unittest
from Testcase.testcase import Test
# 导入HtmlTextRunner,用于生成html的测试报告
from Commonlib.HTMLTestRunner import HTMLTestRunner
class SuitTest(unittest.TestCase):
def test_suit(self):
case_list = ['test_001','test_002','test_003','test_004']
# 创建测试套件
mysuit = unittest.TestSuite()
# 循环将测试用例放到测试套件中
for case in case_list:
mysuit.addTest(Test(case))
# 创建测试运行器,设置为每一个测试用例生成测试报告,运行测试套件中的测试用例
# unittest.TextTestRunner(verbosity=2).run(mysuit)
# 生成html测试报告
with open('report.html','wb')as f:
HTMLTestRunner(
stream=f, # 相当于f.write(报告)
title='第一个测试报告',
description='第一个测试报告',
verbosity=2 # 为每个测试用例生成测试报告
).run(mysuit)
if __name__ == '__main__':
unittest.main()
运行该文件,Testcase目录下就多出一个html文件
点开本地文件夹,查看该html文件