TestCase类:
TestCase属性:[setUp、tearDown、asserTrue等]
setUp():用于测试用例前的初始化工作。比如测试用例前需要登录web,就可以在这里实例化浏览器
tearDown():用于测试用例结束后的收尾工作。比如关闭浏览器,关闭数据库等
TestSuite类
TestSuite属性:[addTest。。。]最常用的一个
addTest():这个方法是将一个测试用例添加到测试套件中
addTests(【,】):将多个测试用例导入套件中
TextTestRunner类
TextTestRunner属性:run最常用的
run():运行测试套件的测试用例
实战:写一个百度输入框的5个用例,并用unitest实现。
比如:1,。测试能否输入汉字
2.能不能输入数字
3.能不能输入汉字和数字组合
4.能不能输入特殊符号
5.能不能实现特殊字符和汉字数字组合
我这里用了四种方法来实现这个测试用例的实现,有点长哈哈。
##导入unnitest模块、time模块、webdriver模块
import time
import unittest
from selenium import webdriver
from cs_9yue.ui_自动化.HTMLTestRunner3_New import HTMLTestRunner #这是一个报告的固定模板
#定义一个百度的类
class Testbd(unittest.TestCase):#这里继承一个测试用例的基本类
def setUp(self) -> None:#相当于初始化函数,也叫开始类
self.driver=webdriver.Chrome()#创建一个浏览器对象
self.driver.get("http://www.baidu.com")
self.driver.maximize_window()
time.sleep(2)#这里设置睡眠是为了更清楚的看到运行情况
def tearDown(self) -> None:#结束类,是在测试用例执行完后进行善后工作的
self.driver.close()
def test_01(self):
self.driver.find_element_by_id('kw').send_keys('这里可以输入汉字')
time.sleep(1)
def test_02(self):
self.driver.find_element_by_id('kw').send_keys('1234563')
time.sleep(1)
def test_03(self):
self.driver.find_element_by_id('kw').send_keys('这里可以输入组合123')
time.sleep(1)
def test_04(self):
self.driver.find_element_by_id('kw').send_keys('@#¥%')
time.sleep(1)
def test_05(self):
self.driver.find_element_by_id('kw').send_keys('这里可以输入汉字和数字##¥的组合')
time.sleep(1)
if __name__ == '__main__':
#第一种测试用例的方法unittest。main()全部测试
# unittest.main()
#第二种通过套件来运行用例
# tj=unittest.TestSuite()#创建一个套件对象
# # tj.addTest(Testbd('test_01'))#将用例传入套件中
# tj.addTests([Testbd('test_01'),Testbd('test_03')])#将多个用例传入套件
# run=unittest.TextTestRunner()
# run.run(tj)
#第三种通过路径的方法进行测试用例
# path=r'C:\Users\Administrator\PycharmProjects\cs_9yue\cs_9yue\ui_自动化'
# lj=unittest.TestLoader().discover(start_dir=path,pattern='ui*')
# run=unittest.TextTestRunner()
# run.run(lj)
#第四种可以通过报告来体现,这里注意的是报告每个项目都是固定的我这里导入一个项目报告模块
path=r'C:\Users\Administrator\PycharmProjects\cs_9yue\cs_9yue\ui_自动化'
lj=unittest.TestLoader().discover(start_dir=path,pattern='ui*')
bglj=r'C:\Users\Administrator\PycharmProjects\cs_9yue\cs_9yue\ui_自动化'#这里是生成报告的路径
time=time.strftime('%y-%m-%d %H-%M-%S')
bgfile_name=bglj+'/'+time+'bg,html'
open_bgfile=open(bgfile_name,'bw')#打开报告文件,并进行写模式,这里bw是以二进制写
run=HTMLTestRunner(stream=open_bgfile,title='显示报告',description='测试情况:')
run.run(lj)