1.test fixture:代表了执行用例前的准备工作和用例执行后的清理工作
2.test case:测试用例,是测试的最小单位,一般检查一组输入的相应是否符合预期,用TestCase来帮助实现
3.test suite:经常被翻译成‘测试套件’,是测试用例或者测试套件的集合,一般用来把需要一起执行的用例组合到一起;
4.test runner:用来执行测试用例并输出测试结果的组件。可以是图形界面或者命令行界面
运行流程:
代码:
import unittest
class Test1(uinttest.TestCase):
def setUp(self):
print('hello')
def tearDwon(self):
print('by')
def test_001(self):
print('001')
def test_002(self):
print('002')
def test_003(self):
print('003')
if _name_ == '_main_':
unittest.main()
1.创建套件
2.定义测试列表
3.向测试套件中添加测试用例
4.行测试用例,verbosity=2为每一个测试用例输出报告,run的参数是套件
代码:
import unittest
class Test1(uinttest.TestCase):
def setUp(self):
print('hello')
def tearDwon(self):
print('by')
def test_001(self):
print('001')
def test_002(self):
print('002')
def test_003(self):
print('003')
if _name_ == '_main_':
# 套件的执行方法
# 创建套件
suit = unittest.TestSuit()
#定义一个测试列表
case_list = ['test_001', 'test_002', 'test_003']
for case in case_list:
suit.addTest(Test1(case))
# 向测试套件中添加测试用例
suit.addTest(Test1)
# 运行测试用例,verbosity=2为每一个测试用例输出报告,run的参数是套件
uinttest.TextTestRunner(verbosity=2).run(suit)
1.断言是测试的核心,我们使用assertEqual()来判断预期结果,用assertTrue()和assertFalse来做是非判断。
2.unittest支持命令行接口,我们可以在命令行指定运行具体的测试用例。
代码:
import unittest
class Test(uinttest.TestCase):
def setUp(self):
print('start')
def tearDwon(self):
print('end')
# 判断预期值和实际值是否相等
def test_001(self):
self.assertEqual('1', '1')
print('001')
def test_002(self):
self.assertEqual('1', '2')
print('002')
def test_003(self):
print('003')
if _name_ == '_main_':
unittest.main()
from 自动化测试1 imoprt Common
class Login(Common):
def login(self, user, pwd):
#跳转到号店
self.open_url('http://www.yhd.com')
#定位到登录按钮进行点击,点击之后进入一号店登录界面
self.click('class', 'hd_login_link')
#定位并输入账号密码
self.input_data('id','un', user)
self.input_data('id', 'pwd', pwd)
#点击登录
self.click('class', 'hd_login_link')
if _name_ == '_main_':
log = Login()
log.login('hack_ai_buster', 'lajfadjf')
import unittest
from 登录模块.Login import Login
class Testcase(unittest.TestCase):
def setUp(self):
print('start')
def tearDown(self):
print('end')
# 登录成功的情况
def test_001(self):
log = Login()
# 正确账号密码登录
log.login('hack_ai_buster', 'lajfadjf')
# 获取登录后的用户名
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('dfawfa', '')
# 获取登录后的用户名
data = log.get_text('id', 'error_tips')
# 进行断言判断
self.assertEqual('请输入密码', data)
def test_004(self):
log = Login()
# 正确账号密码登录
log.login('dfawfa', '')
# 获取登录后的用户名
data = log.get_text('id', 'error_tips')
# 进行断言判断
self.assertEqual('请输入密码itcast', data)
if _name_ == '_main_':
unittest.main()
import unittest
from 测试用例 import Testcase
class Test(unittest.TestCase):
def test_suit(self):
# 创建测试套件
mysuit = unittest.TestSuit()
# 向测试套件中添加测试用例
case_list = ['test_001', 'test_002', 'test_oo3', 'test_004']
for case in case_list:
mysite.addTest(Testcase(case))
# 使用runner运行测试用例
unittest.TextTestRunner(verbosity=2).run(mysuit)
if _name_ == '_main_':
unittest.main()
import unittest
from 测试用例 import Testcase
import HTMLTestRunner
class Test(unittest.TestCase):
def test_suit(self):
# 创建测试套件
mysuit = unittest.TestSuit()
# 向测试套件中添加测试用例
case_list = ['test_001', 'test_002', 'test_oo3', 'test_004']
for case in case_list:
mysite.addTest(Testcase(case))
# 使用runner运行测试用例
# unittest.TextTestRunner(verbosity=2).run(mysuit)
#生成html格式的测试报告文件
with open('路径/report.html', 'wb') as f:
HTMLTestRunner(
stream = f, # 设定数据写入哪个文件
title = '第一个测试报告', # 标题
description = 'itcast软件测试', #描述
verbosity = 2
).run(mysuit)
if _name_ == '_main_':
unittest.main()