示例代碼
module.py
class baidumodule():
def __init__(self,driver,):
self.dr = driver #不能在類中再次導入webdriver 兩邊的driver等於兩個窗口,直接讓調用方傳入driver即可
def login(self,values):
login_dr = self.dr
login_dr.get("https://www.baidu.com/")
login_dr.find_element_by_xpath("//*[@id='kw']").send_keys(values)
login_dr.find_element_by_xpath("//*[@id='su']").click()
def login_out(self):
self.dr.quit()
baidu.py
# _*_ coding:utf-8 _*_
import csv,unittest #導入csv模塊
from time import sleep
from selenium import webdriver
from module import baidumodule
class baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()#最大化窗口
self.driver.implicitly_wait(10)#隱式等待
self.search = baidumodule(self.driver) #將driver傳給aidumodule這個類
with open("file.csv","r") as name:
self.lines = name.readlines()#以行讀取整個文件
def tearDown(self):
self.search.login_out()
def test_search(self):
search = self.search
lines = self.lines
driver = self.driver
search.login(lines[0])
sleep(1)
title = driver.title
self.assertEqual(title,'selenium_百度搜索2')
sleep(2)
def test_search1(self):
search = self.search
lines = self.lines
driver = self.driver
search.login(lines[1])
sleep(1)
title = driver.title
self.assertEqual(title,'selenium2_百度搜索')
sleep(2)
def test_search2(self):
search = self.search
lines = self.lines
driver = self.driver
search.login(lines[2])
sleep(1)
title = driver.title
self.assertEqual(title,'selenium3_百度搜索')
sleep(2)
def test_search3(self):
search = self.search
lines = self.lines
driver = self.driver
search.login(lines[3])
sleep(1)
title = driver.title
self.assertEqual(title,'webdriver_百度搜索')
sleep(2)
class counttest(unittest.TestCase):
def setUp(self):
self.b = 2
self.c = 3
def test_add(self):
d = self.b + self.c
self.assertEqual(d,5)
if __name__ == "__main__":
unittest.main()
如上我們有可能擁有n多條測試用例,我們現新增了一條test_add,我們只需要單獨執行這條即可稍微改動一下if __name__ == "__main__":
的代碼即可
# _*_ coding:utf-8 _*_
import csv,unittest #導入csv模塊
from time import sleep
from selenium import webdriver
from module import baidumodule
class baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()#最大化窗口
self.driver.implicitly_wait(10)#隱式等待
self.search = baidumodule(self.driver) #將driver傳給aidumodule這個類
with open("file.csv","r") as name:
self.lines = name.readlines()#以行讀取整個文件
def tearDown(self):
self.search.login_out()
def test_search(self):
search = self.search
lines = self.lines
driver = self.driver
search.login(lines[0])
sleep(1)
title = driver.title
self.assertEqual(title,'selenium_百度搜索2')
sleep(2)
def test_search1(self):
search = self.search
lines = self.lines
driver = self.driver
search.login(lines[1])
sleep(1)
title = driver.title
self.assertEqual(title,'selenium2_百度搜索')
sleep(2)
def test_search2(self):
search = self.search
lines = self.lines
driver = self.driver
search.login(lines[2])
sleep(1)
title = driver.title
self.assertEqual(title,'selenium3_百度搜索')
sleep(2)
def test_search3(self):
search = self.search
lines = self.lines
driver = self.driver
search.login(lines[3])
sleep(1)
title = driver.title
self.assertEqual(title,'webdriver_百度搜索')
sleep(2)
class counttest(unittest.TestCase):
def setUp(self):
self.b = 2
self.c = 3
def test_add(self):
d = self.b + self.c
self.assertEqual(d,5)
if __name__ == "__main__": #如果直接執行將執行以下代碼,調用不執行以下代碼
# unittest.main()
#構造測試集
suit = unittest.TestSuite()
suit.addTest(counttest("test_add"))#把這個類中需要執行的測試用例加進去,有多條再加即可
#suit.addTest(counttest("test_add2"))#從上到下先后順序
runner = unittest.TextTestRunner()
runner.run(suit)#運行測試用例
這樣就只會執行我們指定的用例了