from selenium import webdriver
import unittest
from selenium.webdriver.common.by import By
class BaiduTest(unittest.TestCase):
def setUp(self):#测试前的初始化工作
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.get("http://www.baidu.com")
self.driver.implicitly_wait(30)
def tearDown(self):#测试后的清理工作
self.driver.quit()
def test_baidu_news(self):#测试用例1
self.driver.find_element(By.LINK_TEXT,'新闻').click()
def test_baidu_map(self):#测试用例2
self.driver.find_element(By.LINK_TEXT,'地图').click()
if __name__=='__main__':
unittest.main(verbosity=2)#verbosity>=2,可以输出每个用例执行的详细信息
结果:
Testing started at 16:44 ...
D:\pycharm\PyCharm 2021.3.3\plugins\python\helpers\pycharm\_jb_pytest_runner.py:8: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import iter_entry_points
Launching pytest with arguments D:/softwaretest/unit/test01.py --no-header --no-summary -q in D:\softwaretest\unit
============================= test session starts =============================
collecting ... collected 2 items
test01.py::BaiduTest::test_baidu_map
test01.py::BaiduTest::test_baidu_news
============================= 2 passed in 17.53s ==============================
Process finished with exit code 0
PASSED [ 50%]PASSED [100%]
说明:以上代码测试百度页面的中的新闻和地图链接是否能正常打开
存在问题:两个用例,需要打开和关闭浏览器两次-----浪费时间
改进:将setup()和tearDown()改为setUpClass()和tearDownClass(),这两个测试固件是类方法,需要在方法上面加装饰器@classmethod
from selenium import webdriver
import unittest
from selenium.webdriver.common.by import By
class BaiduTest(unittest.TestCase):
@classmethod
def setUpClass(cls):#所有测试方法运行前进行
cls.driver=webdriver.Chrome()
cls.driver.maximize_window()
cls.driver.get("http://www.baidu.com")
cls.driver.implicitly_wait(30)
@classmethod
def tearDownClass(cls):所有测试方法运行结束后执行
cls.driver.quit()
def test_baidu_news(self):
self.driver.find_element(By.LINK_TEXT,'新闻').click()
self.driver.get("http://www.baidu.com")
def test_baidu_map(self):
self.driver.find_element(By.LINK_TEXT,'地图').click()
self.driver.get("http://www.baidu.com")
if __name__=='__main__':
unittest.main(verbosity=2)
结果:
Testing started at 17:23 ...
D:\pycharm\PyCharm 2021.3.3\plugins\python\helpers\pycharm\_jb_pytest_runner.py:8: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import iter_entry_points
Launching pytest with arguments D:/softwaretest/unit/test01.py --no-header --no-summary -q in D:\softwaretest\unit
============================= test session starts =============================
collecting ... collected 2 items
test01.py::BaiduTest::test_baidu_map
test01.py::BaiduTest::test_baidu_news
============================== 2 passed in 5.58s ==============================
Process finished with exit code 0
PASSED [ 50%]PASSED [100%]