本文介绍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用来放置测试用例。

web自动化测试框架相关推荐

  1. 基于python的界面自动化测试-基于Selenium+Python的web自动化测试框架

    一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...

  2. python selenium po_python+selenium基于po模式的web自动化测试框架

    一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...

  3. java web典型模块大全_python+selenium基于po模式的web自动化测试框架

    一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...

  4. 使用 Python+Selenium + 第三方库实现的简单的 web 自动化测试框架 源码

    使用 Python+Selenium + 第三方库实现简单的 web 自动化测试框架,为 web 自动化测试编写更加便利和可维护. 一.配置(config) 1.1 说明 设置自动化案例运行时的属性值 ...

  5. 【万字长文】2022年最全的搭建Web自动化测试框架教程

    测试框架的设计有两种思路,一种是自底向上,从脚本逐步演变完善成框架,这种适合新手了解框架的演变过程.另一种则是自顶向下,直接设计框架结构和选取各种问题的解决方案,这种适合有较多框架事件经验的人.本章和 ...

  6. 【自动化测试】Web自动化测试框架01

    目录 测试框架 PageObject 项目介绍 测试代码结构 项目源代码 common PageObject.py SendEmail.py Url.py Page searchPage.py tes ...

  7. Web 自动化解决方案 [开源项目] 基于 Selenium 的 Web 自动化测试框架完美版

    欢迎查阅Selenium(Web自动化测试框架体系) Selenium ) Selenium是一个用于Web应用程序的自动化测试工具,直接运行在浏览器中,就像真正的用户在操作一样• 支持的浏览器包括I ...

  8. 从0开始搭建Web自动化测试框架

    前言: 测试框架的设计有两种思路,一种是自底向上,从脚本逐步演变完善成框架,这种适合新手了解框架的演变过程.另一种则是自顶向下,直接设计框架结构和选取各种问题的解决方案,这种适合有较多框架事件经验的人 ...

  9. python的web自动化框架实例_Selenium基于Python web自动化测试框架 -- PO

    关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的概念和理解: PO就是一个设计思想,将代码以页面为单位进行组织,针对这个页面上的所有信息.相关操作都放到一个类中,从而使 ...

最新文章

  1. Android性能优化之运算篇
  2. java排队叫号_java多线程(4)模拟排队叫号程序,不能出现交替执行的结果
  3. HBase数据压缩编码探索
  4. 火币网的macd怎么算的_黄金投资中MACD的计算方式
  5. Scrapy_XPath选择器
  6. HTML+CSS实现弹跳球效果
  7. 每日算法系列【LeetCode 233】数字 1 的个数
  8. 11.20日个人工作总结
  9. 常见排序算法之基数排序
  10. 社交APP软件开发流程解析
  11. linux清理垃圾缓存文件在哪,Linux系统需要清理垃圾文件和优化系统吗?
  12. vosk实时语音识别
  13. HEVC解码器HM源码阅读(三)读取一个NALU
  14. 20221226编译Toybrick的TB-RK3588X开发板的Android12系统2-SDK预处理
  15. 胡笨笨硕士期间项目心得之项目三气象知识图谱的构建及区域积水地区预测
  16. 2022ICPC杭州 F. Da Mi Lao Shi Ai Kan De codeforces gym 104090F
  17. 世界上第一台通用计算机用途,世界上第一台计算机的作用?
  18. 计算机中的物理知识点总结,有关初中物理电磁波章节知识点总结
  19. CTS测试中Camera FOV Calibration标准测试环境搭建
  20. IDEA安装Tomcat

热门文章

  1. Django实战—— Web可视化漏洞扫描器
  2. Siki_Unity_7-4_高自由度沙盘游戏地图生成_MineCraft_Uniblocks插件(可拓展)
  3. #(四)、(五)拟合数学方法的发展简介
  4. 利用 Sony Vegas 制作消音伴奏教程
  5. 化学计量学中一些重要的概念
  6. CentOS (Community Enterprise Operating System)是什么?
  7. Group by 分组详解
  8. 网上招 投标管理系统
  9. Android专用Log开源项目——KLog - 泡在网上的日子
  10. stdafx.h与Afx.h了解