ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

selenium3+python3学习——构建测试套件

2020-04-10 13:03:05  阅读:279  来源: 互联网

标签:baidu self driver 套件 selenium3 suite unittest python3 cls


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))

 

标签:baidu,self,driver,套件,selenium3,suite,unittest,python3,cls
来源: https://www.cnblogs.com/yuer02/p/12661503.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有