关键词不能为空

当前您在: 主页 > 英语 >

selenium自动化项目总体框架

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 05:38
tags:

-

2021年2月28日发(作者:广渠路)


1


、项目总体框架




auto_project


:存放项目的脚本。包括三个部分:



data


:存放项目的测试数据



report


:存放项目的测试报告,包括


HTML


报告以及


images


图片



testcase :


存放测试用例、


测试页面。


其下的


models


存 放一些公共的模块以及配置函数


等。


Page_obj


存放测试用例页面对象。



driver



< br>用于存放浏览器驱动等。方便后面的项目迁移,部署,直接将驱动复制到环境变


量 的路径下。



package:


存放工具包,方面后面项目的迁移和部署。



2


、代码




1



models/basetest


定义一个


unittest


的基类,继 承


se


类。实现


setUp()



tearDown


方法。



from


auto_


import


driver


import


unittest




class


BaseTestCase(se):



#


定义


BaseTestCase


类,继承


TestCase,


后续不需 要再考虑


setUp he tearDown


这样的方


法了







def


setUp


(


self


) ->


None


:



self


.driver = _browser()



self


.ze_window()



self


.itly_wait(


30


)




def


tearDown


(


self


) ->


None


:



print


(



测试结 束



)



self


.()


< br>(


2



models/


定义浏览器驱动函数。


该函数可以进行配置,根据需求,


配置用例再


不同主机以及浏览器下运行。



from


ver


import


Remote


from


selenium


import


webdriver




def


remote_browser


():



#


使用远程机器执行测试用 例,使用


Remote


类启动浏览器驱动;使用时候需要启动< /p>


selenium-server- standalone


服务







#


使用远程



机器执行用例,可以使得用例运行过程中不影响做其他事情







#


也可做成配置化,使用多个浏览器,多个平台







host =


'localhost:4444/wd/hub'



dc = {


'platform'


:


'WINDOWS'


,


'browserName'


:


'chrome'


}


driver = Remote(host


,


dc)



return


driver



def


local_browser


():



#


本地机器执行测试用例







#


可做成配置化,使用与多个浏览器







driver = ()



return


driver


#


用法:



if


__name__ ==


'__main__'


:


driver = remote_browser()


(



)


()



3



page_obj/


定义一个页面对象的基类,实现一些页面操作的公共方法,后


续 每个页面对象继承该类。



from


abc


import


abstractmethod


from



import


By




class


BasePage(


object


):





页面基础类,用于所有页面的继承





bbs_url =


'/'




def

< br>__init__


(


self


,


driver


,


base_url=bbs_url


,


parent=


None


):



self


.driver = driver



self


.base_url = base_url



self


._validate_page(driver)



self


.parent = parent




@abstractmethod



def


_validate_page


(


self


,


driver):



#


定义一个抽象方 法,后续集成该类的时需要实现该方法,用于校验也没是否已经加载完












return



def


_open


(


self


,


url):



#


单个下划线开头 的变量或方法仅供内部使用


,


只是做一个区分而已











#


打开指定连接


,


校验也没是否正常加载











url =


self


.base_url+url



self


.(url)



assert


self


._vali date_page(


self


.driver)




def

< br>open


(


self


):



#


打开

< p>
bbs


地址











sel f


._open(


self


.base _url)




def


find_element


(


self


,


type


,


value):





重定义单个元素查找定位




:type


value: object



:param


type:



:param


loc: *loc:by,value



:return


: web element




if


type ==



:



return


self


._element(


,


value)



if


type ==



:



return


self


._element(


,


value)



if


type ==



:



return


self


._element(


,


value)



if


type ==



:



return

self


._element(_NAME


,


value)



if


type ==



:



return

self


._element(_SELECTOR


,


value)



if


type ==



:



return

self


._element(_TEXT


,


value)



if


type ==



:



return

self


._element(L_LINK_TEXT


,


value)



if


type ==



:



return

self


._element(_NAME


,


value)



return





def


find_elem ents


(


self


,


*loc):





重定义多个元素查找定位




:param


loc: *loc:by,value



:return


: web elements[]




return


self


._elements(*loc)




def

< br>script


(


self


,


src):





重定义


JavaScript


代码调用方法




:param


src: JavaScript


代码




:return


:




return


self


.e(src)




4



page_ob j/


创建登陆页面对象。对登录页面的用户名、密码输入框、登录

按钮和提示信息等元素的定位进行封装。



from


.basepage


import


BasePage


from


time


import


sleep




class


LoginPage(BasePage):




def


_validate _page


(


self


,


driver):



pass




url =


'/'



bbs_login_loc =


-


-


-


-


-


-


-


-



本文更新与2021-02-28 05:38,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/678987.html

selenium自动化项目总体框架的相关文章