import unittest
from selenium import webdriver
import time
from ddt import data,ddt
'''
1.TestCase : 测试用例,所有的用例都是直接继承于它
2.TestFixture : SetUp 和 Teardown ,前置条件和后置条件,可用 @class将其装饰为类方法,则在类调用时会调用(否则会在每个用例执行时调用)
3.TestSuite : 测试套件
4.TestRunner : 测试运行器,一般和 测试套件配套使用
5.断言:
6.所有的功能测试函数都是以 test_ 开头
'''
@ddt
class case001(unittest.TestCase):
def setUp(self) -> None:
print('用例开始执行')
@data(('美国疫情'),('刘亦菲'),('素素'))
def test_01(self,data):
print(data)
self.bro = webdriver.Chrome(executable_path='./chromedriver.exe')
self.bro.get('https://www.baidu.com/')
time.sleep(5)
self.bro.find_element_by_id('kw').send_keys(data)
time.sleep(5)
self.bro.find_element_by_id('su').click()
time.sleep(5)
def tearDown(self) -> None:
self.bro.close()
print('用例执行结束')
使用读取文件方式
import unittest
from selenium import webdriver
import time
from ddt import data,ddt,unpack
def read_file():
result = []
with open('./info.txt','r',encoding='utf-8') as f:
for li in f.readlines():
result.append(li.strip())
return result
@ddt
class case001(unittest.TestCase):
def setUp(self) -> None:
print('用例开始执行')
@data(('清纯妹妹'),('刘亦菲'),('素素'))
def test_01(self,data):
print(data)
self.bro = webdriver.Chrome(executable_path='./chromedriver.exe')
self.bro.get('https://www.baidu.com/')
time.sleep(2)
self.bro.find_element_by_id('kw').send_keys(data)
time.sleep(2)
self.bro.find_element_by_id('su').click()
time.sleep(2)
@data(*read_file())
def test_02(self,text):
self.bro = webdriver.Chrome(executable_path='./chromedriver.exe')
self.bro.get('https://www.baidu.com/')
time.sleep(2)
self.bro.find_element_by_id('kw').send_keys(text)
time.sleep(2)
self.bro.find_element_by_id('su').click()
time.sleep(2)
def tearDown(self) -> None:
self.bro.close()
print('用例执行结束')
if __name__ == '__main__':
unittest.main()