unittest单元测试框架

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%]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值