zoukankan      html  css  js  c++  java
  • python基于selenium的自动化测试

    unittest 单元测试框
    unittest组件:
    Test Fixture(测试夹具) 使用测试夹具,可以定义在单个或多个测试执行之前的准备工作和测试执行之后的清理工作;
    Test Case(测试用例) unittest中执行测试的最小单元,通过验证unittest提供的assert方法来验证一组特定的操作和输入以后得到的响应;
    unittest提供了一个名为TestCase的基础类,可以用来创建测试用例;
    Test Suit(测试套件) 一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行;
    Test Runner(测试执行器)测试执行器负责测试执行调度并且生成测试结果给用户;
    测试执行器可以使用图形界面、文本界面或者特定的返回值来展示测试执行结果;
    Test Report(测试报告) 测试报告展示所有执行用例的成功或者失败状态的汇总;包括失败的测试步骤的预期结果和实际结果,还有整体运行状况和运行时间的汇总;

    searchtest1.py
    from selenium import webdriver
    import unittest
    
    class SearchTest(unittest.TestCase):  测试用例
        @classmethod #相当于标记测试夹具
        def setUpclass(cls):
            cls.driver = webdriver.Chrome(executable_path=r"C:UsersLJ  VS LDNDesktopchromedriver.exe")
            cls.driver.implicitly_wait(10)
            cls.driver.maximize_window()
            cls.driver.get("http://www.baidu.com")
    
        def test_search_by_category(self):
            self.search_field = self.driver.find_element_by_id("kw")
            self.search_field.clear()
            self.search_field.send_keys('ns')
            self.search_field.submit()
    
            products = self.driver.find_elements_by_xpath("//div[contains(@class, 'c-abstract')]")
    
            self.assertEqual(11, len(products))  #断言
    
        def test_search_by_category1(self):
            self.search_field = self.driver.find_element_by_id("kw")
            self.search_field.clear()
            self.search_field.send_keys('ns')
            self.search_field.submit()
    
            products = self.driver.find_elements_by_xpath("//div[contains(@class, 'c-abstract')]")
    
            self.assertEqual(10, len(products))
    
        @classmethod
        def tearDownclass(cls):
            cls.driver.quit()
    
    if __name__ == '__main__':
        unittest.main(verbosity=2)

    searchtest2.py

    #_author:Doraemon Liu
    # -*- coding:utf-8 -*-
    
    import unittest
    from selenium import webdriver
    from selenium.common.exceptions import NoSuchElementException
    from selenium.webdriver.common.by import By
    
    
    class SearchTestHomePage(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
    cls.driver = webdriver.Chrome(executable_path=r"C:UsersLJ  VS LDNDesktopchromedriver.exe")
     cls.driver.implicitly_wait(15) cls.driver.maximize_window() cls.driver.get('http://www.baidu.com') def test_search_by_category(self): self.assertTrue(self.is_element_present(By.ID, "kw")) #检验id为kw的input框是否存在 def test_search_by_category1(self): self.search_field = self.driver.find_element_by_id("kw") self.search_field.clear() self.search_field.send_keys('铜钱贯') self.search_field.submit() products = self.driver.find_elements_by_xpath("//div[contains(@class, 'c-abstract')]") self.assertEqual(10, len(products)) @classmethod def tearDownClass(cls): cls.driver.quit() def is_element_present(self, how, what): """""" try: self.driver.find_element(by=how, value=what) except NoSuchElementException as e: return False return True if __name__ == '__main__': unittest.main(verbosity=2)

    测试套件.py

    import unittest
    from searchtest1 import SearchTest
    from searchtest2 import SearchTestHomePage
    
    search_test = unittest.TestLoader().loadTestsFromTestCase(SearchTest)
    search_test_homepage = unittest.TestLoader().loadTestsFromTestCase(SearchTestHomePage)
    
    smoke_tests = unittest.TestSuite([search_test, search_test_homepage])
    
    unittest.TextTestRunner(verbosity=2).run(smoke_tests)
  • 相关阅读:
    配置文件
    ajax
    网线颜色排序
    cs程序添加初始化加载
    后台设置gridview不换行
    js 经典正则判断 一个字符串是否包含另一个字符串
    窗体关闭事件
    oracle根据视图删除表
    (字符串)哈希
    (字符串)哈希
  • 原文地址:https://www.cnblogs.com/doraemon548542/p/12514403.html
Copyright © 2011-2022 走看看