### ui_auto_frame框架解释:
### 简介
**UI自动化测试框架:pytest+selenium+allure**
---
### 模块设计
**Base模块封装操作元素的公共方法**
**Check_config_script模块存放环境检查的脚本**
**Common模块是封装的读取配置文件的公共方法,类似于util工具类**
**Conf模块是存放全局配置文件**
**Grid_server模块存放selenium-server(hub和node)启动bat脚本,以及三种selenium三种浏览器命令行参数的入口**
**Logs模块,用于生成日志文件**
**PageObject模块提取页面对象封装公共操作方法**
**Report模块,存放测试报告,以及测试报告的生成模板allure**
**TestCases模块,用于存放测试case**
---
### allure装饰器
- @allure.severity("critical")
- 优先级,包含blocker, critical, normal, minor, trivial几个不同的等级
- 测试用例优先级1:blocker,中断缺陷(客户端程序无响应,无法执行下一步操作)
- 测试用例优先级2:critical,临界缺陷( 功能点缺失)
- 测试用例优先级3:normal,普通缺陷(数值计算错误)
- 测试用例优先级4:minor,次要缺陷(界面错误与UI需求不符)
- 测试用例优先级5:trivial级别,轻微缺陷(必输项无提示,或者提示不规范)'
- @allure.feature("测试模块_demo1")
- 功能块,feature功能分块时比story大,即同时存在feature和story时,feature为父节点
- @allure.story("测试模块_demo2")
- 功能块,具有相同feature或story的用例将规整到相同模块下,执行时可用于筛选
- @allure.issue("BUG号:123")
- 问题标识,关联标识已有的问题,可为一个url链接地址
- @allure.testcase("用例名:测试字符串相等")
- 用例标识,关联标识用例,可为一个url链接地址
---
**整个框架主要分为三层,Base层、PageObject层、TestCase层,采用传统的互联网的垂直架构模式。**
**元素公共操作方法封装存放在Base层**
**页面元素操作存放在第二层PageObject层,后面如果页面元素变化,直接在第二层相应的Page对象修改即可**
**测试case存放在TestCases层,主要做断言等操作**
---
**安装所需要的包,使用pycharm导入项目,打开pycharm的terminal,只要到 requirements.txt 所在的目录下,使用如下命令 ,就能在当前的 python 环境中导入所有需要的包:**
`pip install -r requirements.txt`
---
**环境说明:**
**开发工具:pycharm**
**python版本:python3.8**
**测试case总入口:run.py**
**浏览器:Chrome**
**webdriver请选择对应Chrome版本的driver,并且放入python的安装目录中**
---
**有任何使用问题请联系我:chineseluo**
---
### 环境搭建
- python安装,`version:3.7`
- java环境配置,`version 1.8`,win10系统中配置配置java环境,参考[win10java环境配置](https://www.runoob.com/w3cnote/windows10-java-setup.html)
- allure安装:
- 不同平台安装allure的方法不同,这里仅介绍windows平台下allure的安装步骤。其它平台请阅读[allure官方文档](https://docs.qameta.io/allure/)进行操作
- 官方提供的安装方法可能会受网络环境影响而安装失败,可选择在[GitHub仓库](https://github.com/allure-framework/allure2 )下载文件并安装allure2
- Windows环境下可以用以下步骤进行安装
- 安装scoop,使用**管理员权限**打开powershell窗口,输入命令`Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')`
- 如果安装不成功则运行`Set-ExecutionPolicy RemoteSigned -scope CurrentUser`,运行成功后重新执行第一步
- scoop安装成功后控制台会输出`Scoop was installed successfully!`
- 执行`scoop install allure`进行allure的安装
- allure安装成功后控制台会输出`'allure' (2.13.1) was installed successfully!`
---
**selenium本地分布式启动配置(除了第一步和第三步之外,其他操作已集成脚本中,执行start_server_windows.bat即可):**
**1、配置JDK环境1.8,使用javac 检查java环境是否配置完成**
**2、下载selenium-server-standalone,下载地址:http://selenium-release.storage.googleapis.com/index.html,需要对应自己本地的selenium版本**
**3、下载对应的浏览器的driver,放置到python的安装目录(chrome:https://sites.google.com/a/chromium.org/chromedriver/downloads、firefox:https://github.com/mozilla/geckodriver/releases、ie:http://selenium-release.storage.googleapis.com/index.html?path=3.5/)**
**4、启动hub节点(管理节点负责任务的分发,数据收集统计)java -jar selenium-server-standalone-3.5.0.jar -role hub(ps:端口可以修改)**
**5、启动node节点java -jar selenium-server-standalone-3.5.0.jar -role node -port 5555 -hub http://localhost:4444/grid/register(ps:端口可以修改,需要启用多少个node节点,只需要修改port即可)**
---
**本地启动分布式调试方法**
1、执行start_server.bat,启动hub与node,使用浏览器登录127.0.0.1:4444,点击console看到,三个node的节点信息,表示分布式服务启动成功
2、执行start_run_all_browser,启动三种浏览器执行脚本模式(IE需要进行浏览器设置,否则会执行失败)
---
**docker启动分布式调试方法**
一、拉取selenium的docker镜像
~~~ 镜像拉取
docker pull selenium/hub
docker pull selenium/node-firefox
docker pull selenium/node-chrome
~~~
二、检查镜像是否拉取成功
~~~ 检查镜像
docker images | grep selenium
~~~
三、启动docker镜像
~~~ 启动docker镜像
docker run -p 5555:4444 -d --name hub selenium/hub
docker run -P -d --link hub:hub --name firefox selenimu/node-firefox
docker run -P -d --link hub:hub --name chrome selenimu/node-chrome
~~~
四、检查是否启动成功
使用docker环境宿主机的IP+映射的端口进行访问,查看console,查看与hub节点建立连接的node节点的IP和端口等信息是否正确
五、调试模式(可选)
1、手动
- server+browser调试模式:使用服务端和node集成在一起的镜像
~~~ 镜像
docker pull selenium/standalone-chrome-debug
docker pull selenium/standalone-firefox-debug
~~~
- server+node(browser)调试模式,使用hub+node的方式,镜像使用debug级别日志
~~~ 镜像
docker pull selenium/standalone-chrome-debug
docker pull selenium/standalone-firefox-debug
~~~
~~~ 建立容器链接
docker run -d -p 5900:5900 --link hub:hub selenium/node-chrome-debug
~~~
2、脚本启动
- 可以执行start_server_docker.py脚本直接创建docker服务,脚本会自动检查docker镜像仓库是否含有所需镜像,自动拉取,自动创建所需容器,以前创建的含有selenium名字的镜像会被删除
查看Linux下浏览器运行的图形界面
使用vnc viewer,下载地址:`https://www.realvnc.com/en/connect/download/viewer/windows/`
输入docker所在环境的宿主机IP+映射的端口(5900)进行连接,默认密码:secret
六、本地调试/分布式调试/远程分布式调试等操作
本地调试:
- 全局配置conftest.py文件中启用function_driver方法,在TestCases的每个子功能页面模块进行启用driver传参时,使用function_driver方法
~~~ python
import pytest
from PageObject.login_page import Login_page
@pytest.fixture(scope="function")
def login_page_class_load(function_driver):
login_page = Login_page(function_driver)
yield login_page
~~~
本地分布式调试:
- 全局配置conftest.py文件中启用function_remote_driver方法,在TestCases的每个子功能页面模块进行启用driver传参时,使用function_remote_driver方法
~~~python
import pytest
from PageObject.Login_page.login_page import Login_page
@pytest.fixture(scope="function")
def login_page_class_load(function_remote_driver):
login_page = Login_page(f
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
使用python+pytest+selenium+allure搭建,集成日志处理,数据驱动 (229个子文件)
start_run_all_browser.bat 324B
start_server_windows.bat 312B
selenium_server_node3.bat 134B
selenium_server_node2.bat 134B
selenium_server_node1.bat 134B
selenium_server_hub.bat 82B
run_by_firefox.bat 40B
run_by_chrome.bat 38B
run_by_ie.bat 34B
styles.css 1.6MB
styles.css 394B
suites.csv 818B
behaviors.csv 176B
categories.csv 0B
.gitignore 60B
.gitignore 37B
index.html 657B
mail.html 148B
favicon.ico 15KB
ui_auto_frame_v2.iml 445B
pytest.ini 400B
selenium-server-standalone-3.141.0.jar 10.16MB
app.js 709KB
index.js 4KB
index.js 2KB
index.js 1KB
2dc05fd393d86f53.json 5KB
50cd7a67c76bf1b6.json 5KB
f25a4801eab31157.json 5KB
277e2c10156863f9.json 5KB
87413eeadf30e1ac.json 5KB
c6d21f50ed2ae80e.json 5KB
795b0a8856ab4401.json 4KB
suites.json 3KB
behaviors.json 3KB
packages.json 3KB
timeline.json 3KB
history.json 3KB
status-chart.json 2KB
severity.json 2KB
duration.json 2KB
b1ce55c3-77af-405c-820e-36f81c599cf2-result.json 1KB
f0c86eb9-a720-4e5f-97cb-855ab31f0d44-result.json 1KB
59dacba8-d4db-431e-a25b-21a95c8b883a-result.json 1KB
b9e0066c-9492-4d3d-9ae4-6bf2e6b0b4b4-result.json 1KB
6dd7dc77-5c34-42ae-8c52-6c6d2b617a9c-result.json 1KB
ff4c93f2-7c4d-4018-8944-2c0ca88702e3-result.json 1KB
11888dde-cc51-4f05-b489-4219caa5ce4a-result.json 1KB
suites.json 502B
behaviors.json 502B
environment.json 443B
11d19ebe-a604-443d-b651-4f9a8c49b716-container.json 387B
7bb9d752-3e57-4975-bf75-a3646fd7cc9e-container.json 387B
005f869e-aee5-4c54-a356-fa12550508b9-container.json 387B
b1434c69-8ea1-475b-8d19-9ce114e8b7b5-container.json 387B
99531bc2-7aa9-48b2-9671-7e2ce15a6203-container.json 387B
7b640afb-598f-4852-ab4f-81274869a398-container.json 387B
6ea5c558-de81-4ffd-b83a-811f4a8be807-container.json 381B
c140bf18-635f-41d8-82a7-30c2197628b7-container.json 381B
95e4c14b-8bc0-46f8-b900-5589464493d7-container.json 381B
27d69a25-0b1a-4c37-b378-72ee7b9440a5-container.json 381B
cb64203c-8070-4298-b99f-2b786207a620-container.json 381B
9df0a7d6-95d2-4d9c-9e7b-1238ecbec089-container.json 381B
61ffae43-b872-4585-8477-b20cb5ef4092-container.json 381B
b39e9c20-cc42-42e2-8884-c9af0af6b45a-container.json 369B
ca2696b9-55eb-40a4-8986-b139149a19c4-container.json 369B
4a75b124-10fe-4509-a3de-537bf94db619-container.json 369B
d04d9d55-3d28-4bae-8db6-87a0618031ed-container.json 369B
3831675f-af71-49ee-b9ae-98c0188fcbcb-container.json 369B
2051c7fc-534f-4bae-9c98-176f3ea16b81-container.json 369B
6d5779bd-8f48-4657-9983-3d028e799ec1-container.json 369B
summary.json 364B
d106d08b-44dc-447c-8d7c-0af34dad4d23-container.json 270B
efa57763-41af-445f-8c46-23c41ce4a9b8-container.json 270B
3467cbea-345d-4521-b6c4-4b2bb0b1e4d4-container.json 270B
4a37fbf1-b50e-4c06-968c-6597103f8ea3-container.json 270B
4f1339d3-cdfe-429a-8cfc-0a2904575910-container.json 270B
5d47d90c-9f26-4f87-83ce-5e061016b262-container.json 270B
969d3fe6-301f-41d1-82ed-3f8ab6aeec9b-container.json 270B
history-trend.json 132B
history-trend.json 132B
categories.json 93B
retry-trend.json 55B
retry-trend.json 55B
duration-trend.json 47B
duration-trend.json 47B
categories.json 34B
categories-trend.json 22B
categories-trend.json 22B
executors.json 3B
environment.json 3B
launch.json 3B
lastfailed 342B
log.log 50KB
error.log 0B
all.log 0B
readme.md 12KB
README.md 295B
.name 16B
nodeids 3KB
共 229 条
- 1
- 2
- 3
资源评论
- Maya_he2024-11-06感谢大佬分享的资源,对我启发很大,给了我新的灵感。
好家伙VCC
- 粉丝: 2008
- 资源: 9143
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功