web自动化测试框架
创始人
2024-01-15 13:03:47
0

本文介绍web自动化测试框架 

 ●Base:用来对Selenium API进行二次封装。

对Selenium API进行二次封装的目的是简化一些复杂的操作,但是千万不要为了封装而封装。

封装好后,其他页面类可以集成basepage,调用这些方法。

from selenium.webdriver.support.ui import WebDriverWait
'''
这里我们定义一个名为"Base"的类,对Selenium WebDriver提供的API进行二次封装
'''class Base(object):def __init__(self, driver):'''调用该类的时候给其传递一个driver:param driver:'''self.driver = driverdef split_locator(self, locator):'''分解定位表达式,如"id,kw",拆分后返回定位器"id"和定位器的值"kw":param locator: 定位方法+定位表达式组合字符串,如"id,kw":return: locator_dict[by], value:返回定位方式和定位表达式'''if len(locator.split(',')) == 3:by = locator.split(',')[0]  # 定位器value = locator.split(',')[1] + ',' + locator.split(',')[2]else:by = locator.split(',')[0]  # 定位器value = locator.split(',')[1] # 定位器值# 这里是为了方便,所以简写了定位器locator_dict = {'id': 'id','name': 'name','class': 'class name','tag': 'tag name','link': 'link text','plink': 'partial link text','xpath': 'xpath','css': 'css selector',}if by not in locator_dict.keys():raise NameError("Locator Err!'id',only 'name','class','tag','link','plink', 'xpath','css' can be used.")return locator_dict[by], valuedef get_element(self, locator, sec=20):"""获取一个元素:param locator: 定位方法+定位表达式组合字符串,用逗号分隔,如"id,kw":param sec: 等待秒数:return: 如果元素可找到则返回element对象,否则返回False"""by, value = self.split_locator(locator)try:element = WebDriverWait(self.driver, sec, 1).until(lambda x: x.find_element(by=by, value=value))return elementexcept Exception as e:raise edef get_elements(self, locator, sec=20):"""获取一组元素:param locator: 定位方法+定位表达式组合字符串,用逗号分隔,如"id,kw":return: elements"""by, value = self.split_locator(locator)try:elements = WebDriverWait(self.driver, 60, 1).until(lambda x: x.find_elements(by=by, value=value))return elementsexcept Exception as e:raise eif __name__ == '__main__':from selenium import webdriverfrom time import sleepdriver = webdriver.Chrome()driver.get('https://www.baidu.com/')a = "id1,kw"bp = Base(driver)bp.get_element(a).send_keys('11111')# bp.get_element("plink,地图").click()sleep(2)driver.quit()

 

●Common:用来放置一些公共的函数或方法文件,如前面封装的解析YAML文件、解析CSV文件的函数。

●Config:用来放置测试项目中的配置信息文件,如系统的IP地址、端口。

测试配置分离--使用yaml文件写入配置信息,在测试用例中读取配置,需要有对应的解析文件函数。

websites:host: localhost:81

 

 

●Data:用来放置CSV文件,内容是测试用例参数化用到的数据,也可以放置其他类型的数据文件,如Excel和JSON文件。

测试数据分离---将测试数据放在csv/yaml文件中,在测试用例文件读取测试数据进行参数化传入数据。

●Report:用来放置测试执行的报告。

●Test:用来测试相关文件,其中子目录PageObject用来存放页面对象,子目录TestCase用来放置测试用例。

相关内容

热门资讯

实习证明英文 实习证明英文  在平日的学习、工作和生活里,大家都写过证明,肯定对各类证明都很熟悉吧,证明是核验一个...
破坏王自我介绍作文800字 破坏王自我介绍作文800字  超级破坏王,超级破坏王……你们知道超级破坏王是谁嘛?不知道。哈哈哈,当...
聘用的协议书 聘用的协议书范本(通用5篇)  在发展不断提速的社会中,很多地方都会使用到协议,签订协议能够最大程度...
文艺晚会开场白 文艺晚会开场白(精选25篇)  在社会发展不断提速的今天,越来越多的场景需要大家掌握一些开场白,开场...
年会主持人串词范文 年会主持人串词范文  一、年会策划场地  一、 年会活动场地的选择,室内还是室外。  二、年会现场控...
创建书香校园倡议书 创建书香校园倡议书三篇  培养书香少年,打造书香家庭,建设书香校园。让我们倡导学生们积极参与到书香行...
通知格式 通知格式范文(精选10篇)  在日新月异的现代社会中,我们都不可避免地要接触到通知,通知一般由标题、...
房屋证明是怎样的 房屋证明是怎样的  篇一:房产证明样本  房产证明  兹有我辖区居民 ,身份证号码: ,居住于 ,现...
端午节楼盘短信 端午节楼盘短信  1、你是我生命中最要的人,要珍惜你;你是我端午节的贵客,要热情招待;请你吃粽子,喝...
对公司发展的意见和建议 对公司发展的意见和建议精选  一段时间的工作在不知不觉间已经告一段落了,回顾坚强走过的这段时间,取得...
酒店行业的五项服务礼仪规范 酒店行业的五项服务礼仪规范  (1)着装规范。  上班时按规定着工作制服,男女员工都应做到端庄大方,...
河南洛阳简介欢迎词 河南洛阳简介欢迎词  各位游客朋友大家好,欢迎光临古都洛阳。现在向各位介绍一下洛阳市的概况。  洛阳...
写给老师的一封信 写给老师的一封信范文400字(精选16篇)  在学习、工作或生活中,大家都接触过书信吧,书信是人们是...
出行安全倡议书 出行安全倡议书  在现在的社会生活中,倡议书对我们的作用越来越大,倡议书一般由标题、称呼、正文、结尾...
住址证明 住址证明范本  住址证明范本应该怎么写?住址证明是指我国公民在日常居住环境中的一种证明文件。下面小编...
学生代表大会倡议书 学生代表大会倡议书  学生代表大会倡议书一:  全校青年朋友们:  在全党、全国人民深入贯彻学习党的...
愚人节表白短信 愚人节表白短信(14篇)  在生活、工作和学习中,要用到短信的地方还是很多的,短信可以加强我们与亲朋...
院系意见() 院系推荐意见范文(大全)  1.该生在校期间严格要求自己,自觉遵守国家法规及校纪校规,没有受过任何处...
欢迎外国友人英文欢迎词 欢迎外国友人英文欢迎词(精选25篇)  在当下社会,我们都可能会用到欢迎词,使用正确的写作思路书写欢...
生日答谢词 关于生日答谢词范文(精选11篇)  在现在社会,答谢词起到的作用越来越大,答谢词是为了表示感激之情而...