zoukankan      html  css  js  c++  java
  • selenium3+python3学习——构建测试套件

    1、按顺序执行

    from selenium import webdriver
    import unittest
    import time
    
    class BaiduTest(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Chrome()
            cls.driver.maximize_window()
            url = 'http://www.baidu.com'
            cls.driver.get(url)
            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()
           url = self.driver.current_url
           self.assertEqual(url,'http://news.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__':
        suite = unittest.TestSuite()  # TestSuite类实例化
        suite.addTest(BaiduTest('test_baidu_map')) # 调用TestSuite类中addTest方法,将测试用例添加到测试套件中
        suite.addTest(BaiduTest('test_baidu_news'))
        unittest.TextTestRunner().run(suite)

    2、按测试类执行

    from selenium import webdriver
    import unittest
    import time
    
    
    class BaiduTest(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Chrome()
            cls.driver.maximize_window()
            url = 'http://www.baidu.com'
            cls.driver.get(url)
            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()
           url = self.driver.current_url
           self.assertEqual(url,'http://news.baidu.com/')
    
        def test_baidu_map(self):
            self.driver.find_element_by_link_text("地图").click()
            self.driver.get("http://www.baidu.com")
    
        def test_baidu_feiyan(self):
            self.driver.find_element_by_link_text("抗击肺炎").click()
            self.driver.get("http://www.baidu.com")
    
    
    if __name__ =='__main__':
        # suite = unittest.TestSuite()
        # suite.addTest(BaiduTest('test_baidu_map'))
        # suite.addTest(BaiduTest('test_baidu_news'))
        # unittest.TextTestRunner().run(suite)
        suite = unittest.TestSuite(unittest.makeSuite(BaiduTest))    # 调用了makeSuite
        unittest.TextTestRunner().run(suite)

    3、加载测试类

    from selenium import webdriver
    import unittest
    import time
    
    
    class BaiduTest(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Chrome()
            cls.driver.maximize_window()
            url = 'http://www.baidu.com'
            cls.driver.get(url)
            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()
           url = self.driver.current_url
           self.assertEqual(url,'http://news.baidu.com/')
    
        def test_baidu_map(self):
            self.driver.find_element_by_link_text("地图").click()
            self.driver.get("http://www.baidu.com")
    
        def test_baidu_feiyan(self):
            self.driver.find_element_by_link_text("抗击肺炎").click()
            self.driver.get("http://www.baidu.com")
    
    
    if __name__ =='__main__':
        # suite = unittest.TestSuite()
        # suite.addTest(BaiduTest('test_baidu_map'))
        # suite.addTest(BaiduTest('test_baidu_news'))
        # unittest.TextTestRunner().run(suite)
        # suite = unittest.TestSuite(unittest.makeSuite(BaiduTest))
        suite = unittest.TestLoader().loadTestsFromTestCase(BaiduTest)       # 使用TestLoader类来加载测试类
        unittest.TextTestRunner().run(suite)

    4、按测试模块执行

    from selenium import webdriver
    import unittest
    import time
    
    
    class BaiduTest(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Chrome()
            cls.driver.maximize_window()
            url = 'http://www.baidu.com'
            cls.driver.get(url)
            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()
           url = self.driver.current_url
           self.assertEqual(url,'http://news.baidu.com/')
    
        def test_baidu_feiyan(self):
            self.driver.find_element_by_link_text("抗击肺炎").click()
            self.driver.get("http://www.baidu.com")
    
    
    class BaiduMap(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Chrome()
            cls.driver.maximize_window()
            url = 'http://www.baidu.com'
            cls.driver.get(url)
            cls.driver.implicitly_wait(30)
        @classmethod
        def tearDownClass(cls):
            cls.driver.quit()
    
        def test_baidu_map(self):
            self.driver.find_element_by_link_text("地图").click()
            self.driver.get("http://www.baidu.com")
    
    
    if __name__ =='__main__':
        # suite = unittest.TestSuite()
        # suite.addTest(BaiduTest('test_baidu_map'))
        # suite.addTest(BaiduTest('test_baidu_news'))
        # unittest.TextTestRunner().run(suite)
        # suite = unittest.TestSuite(unittest.makeSuite(BaiduTest))
        # suite = unittest.TestLoader().loadTestsFromTestCase(BaiduTest)       # 使用TestLoader类来加载测试类
        suite = unittest.TestLoader().loadTestsFromModule('dd.py')            # 两个测试类在同一个模块下
        unittest.TextTestRunner().run(suite)

    5、优化测试套件(将测试套件写成一个方法来调用)

    from selenium import webdriver
    import unittest
    
    
    
    class BaiduTest(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Chrome()
            cls.driver.maximize_window()
            url = 'http://www.baidu.com'
            cls.driver.get(url)
            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()
           url = self.driver.current_url
           self.assertEqual(url,'http://news.baidu.com/')
    
        def test_baidu_feiyan(self):
            self.driver.find_element_by_link_text("抗击肺炎").click()
            self.driver.get("http://www.baidu.com")
    
        @staticmethod
        def suite(testCaseClass):
            suite = unittest.TestLoader().loadTestsFromTestCase(testCaseClass)
            return suite
    
    
    if __name__ == '__main__':
        unittest.TextTestRunner().run(BaiduTest.suite(BaiduTest))
  • 相关阅读:
    Node 之 Express 4x 骨架详解
    Express中app.use()用法 详解
    纯手打AJAX,还有一个对象转查询字符串的小方法obj=>url
    简单node服务器demo,麻雀虽小,五脏俱全
    node环境下多种方式“get数据解析”
    module.exports与exports,export与export default的区别
    2019年9月Github上最热门的JavaScript开源项目
    基于Node 的http转发demo,项目中请使用express+http-proxy-middleware
    HTTP/2 新特性总结
    TensorFlow 8 bit模型量化
  • 原文地址:https://www.cnblogs.com/yuer02/p/12661503.html
Copyright © 2011-2022 走看看