web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架

简介: web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架

基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架

 



1、 开发环境

win7 64

 

PyCharm 4.0.5

 

setuptools-29.0.1.zip

下载地址:http://pan.baidu.com/s/1mhMSAkK

官方下载地址:https://pypi.python.org/pypi/setuptools#downloads

 

python 3.3.2

 

mysql-connector-python-2.1.4-py3.3-win64

下载地址:http://pan.baidu.com/s/1cDtP1O

官方下载地址:http://dev.mysql.com/downloads/connector/python/

 

selenium-3.0.2

下载地址1http://pan.baidu.com/s/1bFfY4Q

官方下载地址:https://pypi.python.org/pypi/selenium

 

 

火狐浏览器:47.0.2

 

geckodriver-v0.11.1-win64.zip

下载地址1http://pan.baidu.com/s/1jI0SHTG

官方下载地址:https://github.com/mozilla/geckodriver/releases

 

IE8

 

IEDriverServer

下载地址:http://pan.baidu.com/s/1bHhOC2

 

Chrome浏览器 54.0.2840.59 m

下载地址:http://pan.baidu.com/s/1kUOreMr

 

chromedriver_win32 2.2.5

下载地址1http://chromedriver.storage.googleapis.com/index.html?path=2.25/

下载地址2http://pan.baidu.com/s/1slGn5hV

 

PHP版本:Apache+PHP5.3

 

ftp服务器

 

2、 基本配置

安装完Python后,把chromedriver.exegeckodriverIEDriverServer.exe浏览器驱动,放到python安装目录(例:D:\Program Files\python33)下,如下



如果火狐浏览器不是安装在默认安装目录下,(例:D:\Program Files (x86)\Mozilla Firefox\),需要在path中添加firefox.exe所在的安装目录,否则会报错,类似如下:

Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line

然后重启浏览器和pycharm

 

3、 主要功能逻辑介绍

 

4、 框架功能简介

1、框架采用PHP web页面,管理页面对象,测试计划,测试用例,用例步骤,支持界面元素操作,支持函数执行

 

2、可通过配置文件灵活配置运行模式:

l 支持按测试计划运行:一次运行单个、多个指定的测试计划;

l 支持按测试用例运行:一次运行单条测试用例

l 支持按照执行流水编号运行:每启动一种浏览器,每执行一次都会生成一个执行编号,按流水编号运行,会自动选择上次执行的浏览器,重复运行该计划对应的测试用例(注意:目前计划创建后,其拥有的测试用例保持不变,即无法删,减)

 

3、可通过配置文件,配置需要运行的浏览器,支持自由扩展

 

4、可通过配置文件灵活选择测试需要的web site,和数据库

 

5、可自动生成HTML可视化接口测试报告

 

6、可根据配置在测试完成后,自动发送测试报告邮件,邮件发送支持SSL加密发送和非SSL加密发送,同时支持往多个邮箱发送邮件

 

7、支持文件、控制台的日志打印,可分别控制开关

 

8、可集成Jenkins自动运行脚本

参考文章:Jenkins添加Windows Slave远程执行python项目脚本

 

5、 服务端部署

参考Web自动化测试-服务端测试环境部署.doc”文件

 

6、 框架模块详细介绍

a)  config

db_evn.conf包含不同环境的测试数据库,应用数据库的配置信息(目前仅用到了测试数据库

 

web_site包含不同环境的web站点信息,包括web url,帐号,密码,验证码(目前只用到了url

 

browser.conf提供浏览器类型配置,即需要进行测试的浏览器

 

ftp.conf:提供ftp站点配置信息,包括host,port,用户,密码

 

 

log.conf包含日志配置信息,具体如下:

 

mail.conf包含邮件发送配置信息,如下,

注:不同类型的邮箱(发件人邮箱),需要修改配置文件为对应邮件服务器的host和端口

smtp.163.com:25

smtp.qq.com:465

 

report.conf包含测试报告文件配置信息,如下

 

runmodeconfig.conf包含运行模式配置信息

 

screenshot.conf:提供截图配置信息

 

test_env_swith:提供环境切换



b)  publicpkg

broserconf.py浏览器配置类

 

database.py提供数据库初始化配置,封装数据库操作,增删改查等

 

ftp.py实现ftp上传下载,封装ftp操作

 

mail.py实现邮件发送

 

runmode.py运行模式配置类

 

web.py浏览器配置类

 

othertools.py:工具类,实现其它功能,比如批量创建目录,转换php页面存储的数据,递归遍历指定目录下的特征文件

 

globalvar.py主要提供全局变量,全局实例等

注意:这里使用了__all__控制import *能导入的名称(全局变量,全局实例等

 

seleniumutil.py主要是封装了selenium的一些基础操作,及极少部分的py函数,支持自由扩展

 

 

c)  web_auto_test

 

说明:

1、提供程序入口,测试计划,测试用例,测试步骤,测试报告类

2、因时间仓促及其他原因等,对象定义、设计上或多或少存在一些不合理的地方

 

7、 页面元素管理

 

8、 用例管理

注:

1、目前“操作”仅支持元素操作,执行函数

2、时间关系,仅实现了小部分操作

3、关于步骤断言的想法:这块可把断言看成是步骤,步骤失败则断言失败,用例也失败,否则成功

4、用例依赖:用例之间最好互不依赖,如果是按计划执行,可考虑调整计划中的用例执行顺序,如果是按照单个用例的执行,可在runmode.conf配置文件中按顺序添加全局初始化用例

5、我的感觉:ui自动化这块用例之间或多或少会存在依赖,因为元素的查找依赖页面,不同操作会打开不同的页面,如 果某个操作在某个页面失败了,没返回到另一个用例查找元素需要的页面,这会执行另一个页面的操作时是否也就意味着失败呢,除非每个用例之间做到了互不依 赖?时间关系,没来得及拿本框架去做更多实验,这块待研究

 

9、 测试计划管理

 

 

10、运行结果


 

11、源码下载

下载地址:暂不打算开源,如果开源,仅在QQ群(群号:7156436)内分享

 

下载后解压,用pycharm导入项目即可

 

12、说明

1、时间有限,精力有限,暂且就到这吧,有需要的可以自己扩展、修改框架。

2PHP页面非本人编写,部分代码实现设计受其约束

pdf版本下载:[授客]基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架.pdf

目录
相关文章
|
5月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
223 11
|
27天前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
203 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
5月前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
101 11
|
5月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
424 61
自动化微信朋友圈:Python脚本实现自动发布动态
|
3月前
|
数据采集 Web App开发 API
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
本文介绍了如何使用FastAPI和Selenium搭建RESTful接口,访问免版权图片网站Pixabay并采集图片及其描述信息。通过配置代理IP、User-Agent和Cookie,提高爬虫的稳定性和防封禁能力。环境依赖包括FastAPI、Uvicorn和Selenium等库。代码示例展示了完整的实现过程,涵盖代理设置、浏览器模拟及数据提取,并提供了详细的中文注释。适用于需要高效、稳定的Web数据抓取服务的开发者。
167 15
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
|
2月前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
4月前
|
SQL 缓存 PHP
PHP框架详解 - symfony框架
Symfony框架凭借其灵活性、高性能和强大的社区支持,成为PHP开发领域的重要工具。无论是初学者还是资深开发者,都可以通过Symfony快速构建高质量的Web应用程序。通过深入理解Symfony的核心组件和最佳实践,开发者可以充分发挥其优势,提升开发效率和代码质量。
93 24
|
5月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
193 31
Selenium IDE:Web自动化测试的得力助手
|
5月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
390 17
Selenium:强大的 Web 自动化测试工具
|
4月前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
211 15