python-selenium多浏览器支持测试框架

一. 目录结构

二. 设计模式

基于page-object设计模式

1.lib-base

util--实现读取配置文件

driver_manager--通过type参数启动不同的浏览器driver

test_manager--通过type参数生成不同的类,实现多浏览器支持

2.lib-page

abstract_page实现

读取配置:url、用户信息

登录功能

*:注意单独调试的时候需要在开头加上sys.path.append(r‘D:\test_browser‘),否则from lib.base.util import Util会报错

XXXPage实现每个page页功能,如创建bug、创建文档功能

3.case

test_abstract实现

成员变量type,driver,config_file

在setup和teardown中实现driver启停

截图功能

TestXXXPage实现每个page页测试用例

写用例的时候先写page再写对应的case

三. 配置管理

使用ConfigParser模块

[info]

url=http://127.0.0.1:8888/XXX/

admin_user=admin

admin_pswd=123456

admin_name=管理员

qa_user=test01

qa_pswd=123456

qa_name=测试1

rd_user=test02

rd_pswd=123456

rd_name=测试2

[test]

dir_screenshot=D:/test_browser/data/screenshot

import ConfigParser
config=ConfigParser.ConfigParser()
config.read(‘base.conf‘)
print config.get(‘info‘,‘qa_user‘)

四. 多浏览器

采用类的继承方式生成针对不同浏览器的类,实现多浏览器支持

from new import classobj
Class TestManager:
@staticmethod
def getTest(clz,type):
new_classname=str(clz.__name__)+‘-‘+str(type).capitalize() #驼峰式写法,首字母大写
new_clz=classobj(new_classname,(clz,),{‘type‘:type})
return unittest.makeSuite(new_clz)
时间: 2024-08-01 07:27:39

python-selenium多浏览器支持测试框架的相关文章

python 几种常见的测试框架

1. unittest 参考文档: https://docs.python.org/3/library/unittest.html The unittest unit testing framework was originally inspired by JUnit and has a similar flavor as major unit testing frameworks in other languages. It supports test automation, sharing

python+selenium自动化测试——浏览器驱动

selenium控制浏览器需要下载对应版本的驱动,并把下载好的驱动解压然后拷贝到python的安装目录. 1.chrome 驱动对应版本及下载地址;https://npm.taobao.org/mirrors/chromedriver/ 2.firefox 驱动下载地址 ;https://github.com/mozilla/geckodriver/releases/ 3.IE 驱动下载地址;http://www.cr173.com/soft/195732.html IE的启用保护模式 打开IE

Python+selenium+unittest的GUI自动化框架实现

框架设计说明图: 框架实现前的准备工作: 1.Python版本为2.7.11的Windows下的安装. 2.命令行下的selenium最新版本(编者使用版本为2.53.0,可兼容最新火狐.IE.chrome等浏览器版本)pip安装. 3.版本为Version: Mars.1 Release (4.5.1)的eclipse安装(编者Python开发使用工具),jdk1.7. 4.eclipse下Python开发插件PyDev 4.5.1(高版本不一定兼容当前eclipse版本与Java版本,高版本

python+selenium打开浏览器

Firefox(高版本要安装换火狐驱动,47版本以下可不安装) GoogleChrome(需要安装浏览器的驱动插件,驱动到selenium官网下载,目前该浏览器的驱动只有32位的,所以Google安装最好安装32位版本浏览器) IE(需要安装浏览器的驱动插件,若IE是32位驱动也要32位的若IE是64位的则驱动也要64位的) 驱动均到selenium官网上下载,下载后把驱动包复制到python根目录和pythonw.exe的目录下 Firefox,GoogleChrome浏览器若启动不了可换一个

Selenium页面对象+数据驱动测试框架

工程的目录结构: pom.xml文件: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apach

关于Python+selenium 定位浏览器弹窗元素

链接:https://www.jianshu.com/p/4c3330c1cdb5 (1)div弹窗 (2)新标签页弹窗 (3)alert弹窗 一,div弹窗 div弹窗是浏览器中比较好定位的弹窗,定位的方法与普通的元素一样.不过这里会有一个坑,明明可以找到这个按钮,但是就是定位不到.这个就是因为当前有div弹窗弹出的时候,需要设置一下等待时间,等页面元素加载完毕,再去做其他操作. 二,新标签页弹窗 新标签页弹窗,则需要进行窗口的切换.此处第一个窗口打开百度首页,在打开一个新窗口打开京东首页,在

Python+selenium之跳过测试和预期失败

在运行测试时,需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败.unittest单元测试框架提供了实现这些需求的装饰器. 1.unittest.skip(reason) 无条件地跳过装饰的测试,说明跳过测试的原因 2.unittest.skipIf(condition,reason) 如果条件为真时,跳过装饰的测试. 3.unittest.skipUless(condition,reason) 跳过装饰的测试,除非条件为真 4.unittest.expe

Python selenium 启动浏览器有无界面执行

有界面运行: # 引入库 from selenium import webdriver # 有界面 # 打开谷歌浏览器,建立会话.启动Chromedriver.exe 打开Chrome driver = webdriver.Chrome() # 启动谷歌浏览器 # 访问百度首页 driver.get("http://www.baidu.com") 无界面运行 # 引入库 from selenium import webdriver # 无界面 chrome_options = webd

(转)让所有浏览器支持HTML5 video视频标签

转自http://www.zhangxinxu.com/wordpress/?p=661 一.前面的唠叨 我记得就是前几个月吧,有条消息说YouTube支持了HTML5视频嵌入标签video,好吧,我听说而已,因为我不是个擅长FQ的人,到底如何我也不得而知. 与主题不相关的HTML5方面的东西我就不多说了,对于video标签,获取大家都听说了,这个标签的功能如同现在HTML语言中的img标签,就现在,比如要链接并显示一张图片,可以这样子: <img data-src="http://ima