conftest.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. '''
  4. @File : conftest.py
  5. @Time : 2024/11/06 16:24:10
  6. @Author : dulip3ng
  7. @Version : 1.0
  8. @Desc : None
  9. '''
  10. import pytest
  11. from playwright.sync_api import expect
  12. from utils.config import config
  13. from pages.locator.login_page_locator import LoginPageLocator
  14. from pages.locator.home_page_locator import HomePageLocator
  15. from pages.locator.list_page_locator import ListPageLocator
  16. from pages.locator.filter_page_locator import FilterPageLocator
  17. from pages.locator.push_page_locator import PushPageLocator
  18. from pages.locator.head_page_locator import HeadPageLocator
  19. from pages.locator.body_page_locator import BodyPageLocator
  20. from pages.locator.generate_bill_page_locator import GenerateBillPageLocator
  21. from pages.login_page import LoginPage
  22. from pages.home_page import HomePage
  23. from pages.head_page import HeadPage
  24. from pages.body_page import BodyPage
  25. from pages.list_page import ListPage
  26. from pages.filter_page import FilterPage
  27. from pages.push_page import PushPage
  28. from pages.generate_bill_page import GenerateBillPage
  29. from utils.oracle_helper import OracleHelper
  30. expect.set_options(timeout=30000)
  31. @pytest.fixture(scope="session")
  32. def orcl_helper():
  33. db = OracleHelper(username=config.get("db_username"), password=config.get("db_password"), dsn=config.get("dsn"))
  34. db.connect()
  35. yield db
  36. db.disconnect()
  37. @pytest.fixture(scope="module")
  38. def page(browser):
  39. # 为每个测试用例提供一个新的页面实例
  40. context = browser.new_context(viewport= {"width": 1920, "height": 1080})
  41. page = context.new_page()
  42. yield page
  43. page.close()
  44. context.close()
  45. @pytest.fixture(scope="module")
  46. def login_page(page):
  47. return LoginPage(page, LoginPageLocator)
  48. @pytest.fixture(scope="module")
  49. def home_page(page):
  50. return HomePage(page, HomePageLocator)
  51. @pytest.fixture(scope="module")
  52. def head_page(page):
  53. return HeadPage(page, HeadPageLocator)
  54. @pytest.fixture(scope="module")
  55. def body_page(page):
  56. return BodyPage(page, BodyPageLocator)
  57. @pytest.fixture(scope="module")
  58. def list_page(page):
  59. return ListPage(page, ListPageLocator)
  60. @pytest.fixture(scope="module")
  61. def filter_page(page):
  62. return FilterPage(page, FilterPageLocator)
  63. @pytest.fixture(scope="module")
  64. def push_page(page):
  65. return PushPage(page, PushPageLocator)
  66. @pytest.fixture(scope="module")
  67. def generate_bill_page(page):
  68. head_page = HeadPage(page, HeadPageLocator)
  69. body_page = BodyPage(page, BodyPageLocator)
  70. return GenerateBillPage(page, GenerateBillPageLocator, head_page, body_page)
  71. @pytest.fixture(scope="module", autouse=True)
  72. def login(page, login_page, home_page):
  73. page.goto(config.get("url"))
  74. login_page.login(config.get("db"), config.get("user_name"), config.get("pass_word"))