# webTest框架介绍
### 简介
本框架基于Python3+selenium3+unittest组成,用户以Page Object的模式编写用例。
元素的定位和操作按照页面划分,达到Web端自动化回归测试的目的,
并生成测试报告。浏览器兼容性暂时未完善。
本例子展示了一个必应首页搜索"龙珠超"的测试用例,比较简陋。
列举一下相关的亮点:
- ❤️ 支持xmind文件转为测试用例,目前存在部分问题
- 💛 支持chrome驱动自动下载
- 💚 支持用例重跑及自动错误截图
- 💙 使用antd美化html报告
- 💜 采用po模式,定位元素与实际操作分离,同一个页面的操作代码可复用
- 🖤 优化api,智能等待用例,拒绝代码中time.sleep等待元素
- 💔 其他(可在下方留言或github issue提需求)
### 运行日志
![image.png](http://upload-images.jianshu.io/upload_images/6053915-6b49d999bd81fd03.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 过程截图
![image.png](http://upload-images.jianshu.io/upload_images/6053915-2f1cb468358719c9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 效果展示
![image.png](https://upload-images.jianshu.io/upload_images/6053915-792a2f538e5e2bb7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 快速上手
- 从远程仓库拉取代码
```git clone https://github.com/wuranxu/webTest.git```
![image.png](http://upload-images.jianshu.io/upload_images/6053915-535641f29e7df072.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 安装依赖包
进入下载好的webTest目录,并在此目录运行安装依赖, 需要安装好pip(默认自带的就行)
mac/Linux/windows: ```pip3 install -r requirements.py -i https://pypi.douban.com/simple```
- 运行demo
在webTest目录输入命令(确保chrome浏览器已安装, 驱动会自行下载):
```python3 start_test.py```
![image.png](http://upload-images.jianshu.io/upload_images/6053915-3698662b1b177b18.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 配置说明
见config.py,大部分说明都有对应的描述,RETRY是全局重试次数。可以参考XmindTest.py文件里面的retry字段,设置单个用例的重试次数。
### 环境配置
##### 注: 无桌面版Linux目前只做到支持firefox
- os: Windows/Mac os x/Linux
- Python3.x
- Chrome浏览器
### 目录结构
```
project
└───error
|
└───database
|
└───logs
|
└───xmind
|
└───page
|
└───report
|
└───tests
| | base_case.py
|
└───templates
| | report_templates.html
└───result
| | report_templates.html
| | generator.py
| | text_test_result.py
|
└───chromedriver
│ │ chromedriver.exe
|
└───util
| | chrome.py
| | decorator.py
| | driver.py
| | utils.py
| | logger.py
| | web_tool.py
|
│ README.md
│ run_case.py
| requirements.txt
│ config.py
| webdriver_test.log
```
### 内容介绍
- chromedriver
存放chromedriver驱动, 若本机未安装chromedriver则自动匹配本机chrome版本下载对应驱动。
- database
存放Mysql和Mongodb的连接类
- error
异常分类
- screenshot
存放出错截图, 目前根据用例名称创建文件夹并存放。
- logs
存放所有日志文件, 目前只有webdriver_test.log, 主要目的是将日志区分开来。
- page
页面目录, 可扩展, 针对不同模块的页面可设计不同目录结构。一般存放该页面的操作(Action)以及元素(Location), 用例具体断言不建议写于此处(因人而异)。
- Report
存放测试报告,为html形式,可右键通过浏览器打开,使用chrome效果尤佳。
- templates
存放html模板,传入测试结果以生成测试报告。
- result
- generator.py
是组织测试结果, 生成测试报告, 填入数据至html报告模板的方法。
- text_test_result.py
继承自unittest.TextTestResult类, 存放测试结果。
- tests
测试套件目录, 可扩展, 子目录为某个测试集。测试集中存放测试用例。
- base_case.py
存放基础测试用例。
- util
- chrome.py
用于更新/下载chromedriver, 目前只支持mac os和windows系统。
- decorator.py
用于存放自动截图/重跑等装饰器, 主要是为测试函数添加错误截图以及重跑等功能。
- driver.py
继承自WebDriver类, 主要用于简化原生api以及添加切换frame/handle等api。
- logger.py
记录日志的功能函数。
- web_tool.py
用于Web自动化测试的工具类, 包括截图、获取用例等方法。
- xmind_reader.py
用于解析xmind文件,暂时不支持过于复杂的xmind。用例的大概编写方式如下图。
![image](http://upload-images.jianshu.io/upload_images/6053915-4f08935ff9ddff18.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- xmind
存放Xmind文件, xmind文件用于编写测试用例。
- config.py
用于存放绝大部分配置。继承于BaseConf类, 可拥有自己的配置。
- requirements.txt
用于存放本框架所需库。
- start_test.py
存放组织用例, 生成测试套件, 运行测试用例等函数。
- webdriver_test.log
存放测试用例执行时候的有关操作和错误信息等。
#### 注: 以上目录结构/命名可能并不合理, 还望海涵。
---
### 使用手册
##### 以下内容若已安装, 可跳过。
- 安装Python3
[Python3.6下载地址](https://www.python.org/downloads/release/python-364/)
下载对应操作系统的Python版本并安装。
- 下载IDE(非必须)
推荐Pycharm
[Pycharm下载地址](https://www.jetbrains.com/pycharm/)
- 安装必须的库
目录中有install.py, 安装好Python之后, 在终端窗口中输入如下命令:
Linux/mac: ```python3 install.py```
windows: ```python install.py```
注意: 安装时需要带上install.py路径或者进入该文件所在目录。
- Pycharm配置(若有)
- 第一步: 配置项目Python环境
File->Open
![image.png](http://upload-images.jianshu.io/upload_images/6053915-01ed844c0870d6c7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
选择webTest目录, 点击窗口右下角的Open
![image.png](http://upload-images.jianshu.io/upload_images/6053915-cd6a91df8687e4c0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
打开Preferences, 在Project Interpreter里选择刚才安装Python的地址, 点击OK
![image.png](http://upload-images.jianshu.io/upload_images/6053915-e4ad74e6fc94703b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 第二步: 配置start_test.py
点击Edit Configurations
![image.png](http://upload-images.jianshu.io/upload_images/6053915-7e2c8d7c3be8afb3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果没有Python配置的话, 点击图中"+"图标, 然后选择Python并添加
![image.png](http://upload-images.jianshu.io/upload_images/6053915-5036e9d36e54da08.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![image.png](http://upload-images.jianshu.io/upload_images/6053915-92391a98b0d090c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
配置脚本
![image.png](http://upload-images.jianshu.io/upload_images/6053915-9bb907d9d3df9026.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 第三步: 运行用例
右击start_test.py, 选择Run则为运行模式, Debug则为调试模式
![image.png](http://upload-images.jianshu.io/upload_images/6053915-9eae73a79ef61182.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 用例编写规则
Python:
- 可参考Search.py编写用例(最好用例的类名不重复)
- 用例需要写在TestSuite/测试集/这种目录下
- 用例需要继承base_case.py
- 用例需要以test开头如test_bmp
- 用例的test函数需要带上screenshot的装饰�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
github地址: https://github.com/wuranxu/webTest 基于Python的webUI自动化测试框架,支持多平台~ 支持xmind文件转为测试用例,目前存在部分问题 支持chrome驱动自动下载 支持用例重跑及自动错误截图 使用antd美化html报告 采用po模式,定位元素与实际操作分离,同一个页面的操作代码可复用 优化api,智能等待用例,拒绝代码中time.sleep等待元素 其他(可在下方留言或github issue提需求)
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/HTML.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/HTML.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/TXT.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/HTML.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/HTML.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 59 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- 简甜XIU091610272023-07-25件中的示例代码清晰易懂,展示了如何使用该框架进行测试,并给予了足够的灵活性以适应不同的场景。
- shashashalalala2023-07-25使用这个框架进行测试时,我们发现它能够提高测试效率,并帮助我们发现了一些潜在的问题,相比于手动测试来说更加可靠和稳定。
- 三山卡夫卡2023-07-25个框架的设计简洁明了,使得测试人员能够迅速上手,并通过简单的操作实现完整的自动化测试流程。
- 曹将2023-07-25文件提供了一个高效且易于使用的Python3网页界面自动化测试框架,对于需要快速实施自动化测试的开发者来说是个很好的选择。
- 透明流动虚无2023-07-25测试框架的良好扩展性使得开发者可以根据自身需求进行定制,同时提供了丰富的文档和支持,为用户提供了很好的使用体验。
![avatar](https://profile-avatar.csdnimg.cn/ed2300e5d03d4afbb0d273f586f0d881_qq_25677929.jpg!1)
米洛丶
- 粉丝: 441
- 资源: 4
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 打包和分发Rust工具.pdf
- SQL中的CREATE LOGFILE GROUP 语句.pdf
- C语言-leetcode题解之第172题阶乘后的零.zip
- C语言-leetcode题解之第171题Excel列表序号.zip
- C语言-leetcode题解之第169题多数元素.zip
- ocr-图像识别资源ocr-图像识别资源
- 图像识别:基于Resnet50 + VGG16模型融合的人体细胞癌症分类模型实现-图像识别资源
- C语言-leetcode题解之第168题Excel列表名称.zip
- C语言-leetcode题解之第167题两数之和II-输入有序数组.zip
- C语言-leetcode题解之第166题分数到小数.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)