首页 > 编程语言 > 详细

Python_selenium PO模式下 Tesecase 的相同执行代码做成selenium_base_case公共模块及调用

时间:2020-05-08 00:13:13      阅读:112      评论:0      收藏:0      [点我收藏+]

作用:

PO模式下 Tesecase 的相同执行代码做成selenium_base_case公共模块及调用,提高代码简洁度,实现同样效果。

框架结构:

技术分享图片

 

代码简单实践:

common模块下 selenium_base_case.py :

#coding=gbk
import unittest
from common.base_page import BasePage
from common.set_driver import set_driver
from common.config_utils import config

class SeleniumBaseCase(unittest.TestCase):

def setUp(self) -> None:
self.base_page = BasePage(set_driver())
self.base_page.set_browser_max()
self.base_page.implicitly_wait()
self.base_page.open_url(config.get_url)

def tearDown(self) -> None:
self.base_page.close_tab()

 

login模块对该方法进行调用,并希望在自己的初始化中单独增加内容可如下操作:

#coding=gbk
import unittest
from common.set_driver import set_driver
from common.base_page import BasePage
from actions.login_action import LoginAction
from common.config_utils import config
from common.selenium_base_case import SeleniumBaseCase #引入公共模块下的SeleniumBaseCase类

class LoginTest(SeleniumBaseCase):
#希望再增加初始化代码:
def setUp(self) -> None:
super().setUp()
print(‘hello,我是执行公共的setup后再增加执行的‘)

def test_login_success(self):
login_action = LoginAction( self.base_page.driver )
main_page = login_action.login_success(‘admin‘,‘201314ANQIER1‘)
actual_result = main_page.get_username()
self.assertEqual(actual_result,‘admin‘,‘test_login_success用例执行失败‘)

main测试模块调用,直接使用公共初始化即可,那么代码可编写如下:

#coding=gbk
import unittest
from common.set_driver import set_driver
from common.base_page import BasePage
from actions.login_action import LoginAction
from actions.quit_action import QuitAction
from common.config_utils import config
from common.selenium_base_case import SeleniumBaseCase

class QuitTest(SeleniumBaseCase): #直接写案例即可

def test_quit(self):
login_action = LoginAction(self.base_page.driver)
main_page = login_action.default_login()
main_page.wait(3)
print("登录成功")
quit_action = QuitAction( main_page.driver )
login_page = quit_action.quit()
actual_result = login_page.get_title()
print(actual_result)
self.assertEqual( actual_result.__contains__(‘用户登录‘),True,‘test_quit用例不通过‘ )

if __name__==‘__main__‘:
unittest.main()

实现原理:

SeleniumBaseCase   为 所有XX.test.py 的父类类 。

unittest.TestCase   为SeleniumBaseCase   类的父类,所以XX.test.py  通过集成SeleniumBaseCase    类间接也集成了unittest.TestCase  类。

 

Python_selenium PO模式下 Tesecase 的相同执行代码做成selenium_base_case公共模块及调用

原文:https://www.cnblogs.com/123anqier-blog/p/12846805.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!