Merge branch 'master' of gitee.com:shi_yin_yi/xiaobei_selenium_automation into test828

Signed-off-by: shiyinyi <6508077+shi_yin_yi@user.noreply.gitee.com>
This commit is contained in:
shiyinyi 2023-11-17 07:21:12 +00:00 committed by Gitee
commit 69e8782e1a
4 changed files with 46 additions and 19 deletions

View File

@ -36,27 +36,54 @@
#### 参与贡献 #### 参与贡献
# 小北原创UI自动化高阶框架selenium+pytest+allure+各种高级工具函数
## 免费开源的高级selenium的UI自动化框架开箱即用复用性高可适用任何web项目中
## 原创作者:小北
## 微信xiaobei_upup 扫码可添加作者答疑
![输入图片说明](screenshots/888f3f9e1e8bd0a003aac3d204afaa8.jpg)
# 软件架构
selenium+pytest+allure+各种工具函数
# 小北原创高级UI自动化框架亮点
1、使用pytest-xdist多线程并发执行测试用例显著缩短用例执行时间
2、使用pytest-rerunfailures的库实现失败用例重跑的功能
3、使用cv2和numpy和pillow实现组件的颜色识别功能能够完成一些跟颜色相关的用例覆盖
4、使用pywinauto库来实现文件上传中识别文件资源管理器的功能
5、使用ddddocr库和PIL库来图片来做验证码识别免费开源的库可识别复杂验证码
6、使用python描述符封装元素定位的类实现传入键值对出发get方法可以实现定位对元素赋值出发set方法可以输入字符串
7、使用fixture装饰器和生成器可以实现执行测试用例前自动登录执行测试用例后自动登出
8、使用fixture装饰器和生成器在conftest文件中全局管理driver
9、使用@pytest.mark可以标记执行冒烟还是回归还是所有用例
10、使用pytest.ini文件可以全局管理pytest的运行逻辑达到一键运行pytest所有的配置项
11、使用requirement.txt文件管理所有的库实现安装配置一键化运行pip3 install -r requirement.txt即可安装所有依赖
12、使用.gitignore文件可以控制哪些内容是需要git跟踪的哪些不用git跟踪方便管理自动化代码
13、重新封装断言库让断言库更加详细和高效能看见实际值和希望指的区别
14、重新封装time库中的函数让使用更方便
15、封装了一个判断数据是否处于刷新状态的函数在验证股票实时刷新阶段特别好用
16、封装了一个发送邮件的函数可以运行完不借助jenkins发送邮件到邮箱一般真实场景中是用jenkins插件来实现发送邮件测试报告的
17、封装了一个截图的工具函数能够快速截图遇到报错的时候就触发截图操作方便后续allure观察报告
18、使用asyncio和aiohttp实现异步操作
19、封装了一个滑动的工具函数方便实现滑动操作
20、后续持续更新
# 框架安装使用说明
1、第一步先安装对应的库只需要一键运行 pip3 install -r requirement.txt 即可安全所有依赖库 【注意网络不好容易报错,报错之后重新安装即可】
2、第二步再下载对应的webdriver浏览器驱动 https://registry.npmmirror.com/binary.html?path=chromedriver/
3、再配置浏览器驱动解压文件夹的环境变量
4、【运行测试用例】这里是列表文本pycharm中运行项目即可或者项目目录下命令行输入pytest即可运行
5、【运行含有allure测试报告的测试用例】使用pytest运行allure测试报告只需要使用pytest即可因为pytest.ini文件中已经配置好了allure的配置参数
6、【查看allure测试报告】启动浏览器去查看allure测试报告使用 allure serve ./reports
7、【选择哪些用例去执行】运行哪些测试用例冒烟?回归还是所有用例在pytest.ini文件中修改addopts中的-m参数-m "smoke" 即为冒烟!
# 参与贡献
后续可以进行对本仓库的贡献,不过现在暂时未开放全面的贡献机制
1. Fork 本仓库 1. Fork 本仓库
2. 新建 Feat_xxx 分支 2. 新建 Feat_xxx 分支
3. 提交代码 3. 提交代码
4. 新建 Pull Request 4. 新建 Pull Request
# 捐赠小北喝瓶水 :sunglasses:
#### 特技 ![输入图片说明](screenshots/%E6%94%AF%E4%BB%98%E5%AE%9D%E6%94%AF%E4%BB%98%E7%A0%81.jpg)
![输入图片说明](%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E7%A0%81.jpg)
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
# run testcases
pytest
# run allure report
pytest --alluredir ./reports testcases/pytest/test_search_baidu_index.py
# start up serve to browse report
allure serve ./reports
# run pytest to choose which you want to run
pytest -m test

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

BIN
微信支付码.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB