# simlpe_automation_framework
[![Downloads](https://pepy.tech/badge/xiaobaisaf)](https://pepy.tech/project/xiaobaisaf)
[![Downloads](https://pepy.tech/badge/xiaobaisaf/month)](https://pepy.tech/project/xiaobaisaf/month)
[![Downloads](https://pepy.tech/badge/xiaobaisaf/week)](https://pepy.tech/project/xiaobaisaf/week)
[![Downloads](https://img.shields.io/badge/xiaobaisaf-ππ-green)](https://img.shields.io/badge/xiaobaisaf-success-green)

### 介绍
    simple_automation_framework(简称：SAF)
    使用最简单的模式就可以实现需要功能和测试效果，也是xiaobaiauto2的简化版
    SAF继承了selenium、requests/httpx、appium、loguru、xiaobaiauto2
    SAF拥有飞书机器人、钉钉机器人、企业微信机器人、禅道提单、JIRA提单、Allure报告等功能

### 版本注意
    建议Python >= 3.9 版本
    建议selenium >= 4.0 支持代码自动执行无需关注浏览器驱动问题，可以自行下载
    防止某些库出现不兼容问题，导致功能不可使用

### 安装教程
```cmd
pip[3] config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 默认安装（仅核心功能）
pip[3] install xiaobaisaf

# 安装所有依赖
pip[3] install xiaobaisaf[all]

# 按需安装
pip[3] install xiaobaisaf[dev]         # 开发依赖
pip[3] install xiaobaisaf[template]   # 模板功能
pip[3] install xiaobaisaf[monitor]    # 监控功能
pip[3] install xiaobaisaf[device]     # 设备功能
pip[3] install xiaobaisaf[tools]     # 工具功能

# 组合安装
pip[3] install xiaobaisaf[dev,template,monitor,device,tools]
```

### 使用说明

#### 命令行工具 (xiaobaicmd)

`xiaobaicmd` 是 SAF 的命令行工具，支持子命令模式：

```cmd
# 查看帮助
xiaobaicmd --help

# 简写: xiaobaicmd -h
```

##### 1. 模板命令 (template/t)

创建自动化项目模板

```cmd
xiaobaicmd template web                    # 创建 WEB 项目模板
xiaobaicmd template api                    # 创建 API 项目模板
xiaobaicmd template app                    # 创建 APP 项目模板
xiaobaicmd t web -d D:/myproject          # 简写 + 指定目录
```

##### 2. 监控命令 (monitor/m)

监控 Android 设备相关功能

```cmd
xiaobaicmd monitor gui                     # GUI 监控界面
xiaobaicmd monitor cli                     # CLI 监控模式
xiaobaicmd monitor power                   # 电量监控
xiaobaicmd monitor memory                  # 内存监控
xiaobaicmd monitor cp                      # 剪贴板监控（fetch 转 requests）
xiaobaicmd m gui                          # 简写
```

##### 3. 设备命令 (device/d)

设备界面监控

```cmd
xiaobaicmd device 1                        # 监控设备 1
xiaobaicmd device                          # 默认监控设备 1
xiaobaicmd d 2                            # 简写，监控设备 2
```

##### 4. 工具命令 (tools)

各类工具集合

```cmd
xiaobaicmd tools dns                                    # 更新 GitHub DNS（使用默认域名）
xiaobaicmd tools dns github.com,raw.githubusercontent.com # 更新指定域名
xiaobaicmd tools install                               # 打开软件管理器界面
xiaobaicmd tools curl2locust                          # Curl 转 Locust 的 web 服务
xiaobaicmd tools curl2locust -f req.txt               # 指定 curl 文件
xiaobaicmd tools curl2locust -p 8080                  # 指定端口
xiaobaicmd tools c2l -f req.txt                       # 简写
xiaobaicmd tools openclaw                             # Openclaw 工具
```

### 操作介绍
可以观看官方抖音（抖音号：xiaobaiTser）


### 参与贡献
[selenium官网文档](https://www.selenium.dev/documentation/, "selenium官网文档")

[playwright官网文档](https://playwright.dev/python/docs/intro, "playwright官网文档")

[requests官网文档](https://requests.readthedocs.io/en/latest/, "requests官网文档")

[appium官网](http://appium.io/, "appium官网")

[loguru官方文档](https://loguru.readthedocs.io/en/stable/overview.html, "loguru官方文档")

[xiaobaiauto2帮助文档](https://pypi.org/project/xiaobaiauto2/, "xiaobaiauto2帮助文档")

[Allure帮助文档](https://docs.qameta.io/allure, "Allure帮助文档")

[飞书机器人获取WebHook](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN?lang=zh-CN, "飞书机器人获取WebHook")

[钉钉机器人获取WebHook](https://open.dingtalk.com/document/group/custom-robot-access, "钉钉机器人获取WebHook")

[163邮箱配置](http://help.163.com/09/1223/14/5R7P3QI100753VB8.html, "163邮箱配置")

[QQ邮箱配置](https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=369, "QQ邮箱配置")

### 更新日志

| version | info                                           |
|---------|------------------------------------------------|
| 1.0     | 基本实现web自动化模板功能                                 |
| 1.1     | 修复已知BUG                                        |
| 1.2     | 新增allure报告库及封装禅道提单接口                           |
| 1.3     | 新增jira提单接口                                     |
| 1.4     | 新增pytest参数化样例                                  |
| 1.5     | 优化pytest样例内容                                   |
| 1.6     | 修复已知BUG                                        |
| 1.7     | 新增基础环境检测功能                                     |
| 1.8     | 新增API自动化模板                                     |
| 1.9     | 新增xiaobaicmd -u命令                              |
| 2.0     | 新增xiaobaicmd -m命令                              |
| 2.1     | 新增xiaobaicmd --device命令                        |
| 2.2     | 修复已知BUG                                        |
| 2.3     | 新增实时监控Android设备耗电量                             |
| 2.3.1   | 修复已知BUG                                        |
| 2.3.2   | 修复已知BUG                                        |
| 2.3.3   | 新增实时监控Android当前APP的内存使用率                       |
| 2.3.4   | 新增xiaobaicmd -m gui效果展示                        |
| 2.3.5   | 新增xiaobaicmd -u 转PO代码时xpath的表达式                |
| 2.3.6   | 新增实时监控Android当前APP的CPU使用率及FPS数据                |
| 2.3.7   | 新增识别滑块验证码破解                                    |
| 2.3.8   | 优化识别滑块验证码破解                                    |
| 2.3.9   | 新增解析DNS并刷新DNS缓存，数据保存HOSTS                      |
| 2.4     | 修复已知BUG                                        |
| 2.4.1   | 优化DNS解析效果                                      |
| 2.4.2   | 优化自动生成代码                                       |
| 2.4.3   | 优化                                             |
| 2.4.3.1 | 优化                                             |
| 2.4.3.2 | 优化                                             |
| 2.5.0   | 添加xiaobaimanager命令                             |
| 2.5.1   | 优化xiaobai                                      |
| 2.5.1   | 新增xiaobaifinder                                |
| 3.0.0   | 新增xiaobaidevice、xiaobaidevice2、xiaobaicmd -m cp |
| 3.0.1   | xiaobaicmd -m cp 新增【Ctrl + S】                  |
| 3.0.2   | xiaobaicmd -t api 替换模板                         |                 
| 3.0.3   | xiaobaicmd -t api 新增界面操作替换模板                   |   
| 3.0.4   | 优化生成接口自动化模板                                    | 
| 3.1.0   | 优化                                             |
| 3.1.1   | Fix                                            |
| 3.1.2   | Fix                                            |
| 3.1.6   | Fix                                            |
| 3.1.7   | Fix                                            |
| 3.1.8   | 修复`xiaobaidevice2`功能不可用                        |
| 3.1.9   | 精简依赖库                                          |
| 3.2.0   | 新增`xiaobaipom`                                 |
| 3.2.1   | 优化`xiaobaipom`                                 |
| 3.2.2   | 优化`xiaobaipom`                                 |
| 3.2.3   | 优化`xiaobaipom`                                 |
| 3.2.5   | 优化                                             |
| 3.2.6   | 优化                                             |
| 3.2.7   | 优化                                             |
| 3.2.8   | 新增执行用例自动重启Allure服务                             |
| 3.2.9   | 优化POM生成器逻辑                                     |
| 3.2.10  | fix                                            |
| 3.2.11  | fix                                            |
| 3.2.12  | fix                                            |
| 3.2.13  | 优化接口同名的情况                                      |
| 3.2.15  | 新增企业微信机器人                                      |
| 3.2.16  | fix已知问题                                        |
| 3.2.17  | 同上                                             |
| 3.2.18  | delete check_port函数                            |
| 3.2.19  | 更新文档                                           |
| 3.3.0   | BUG描述信息替换为pytest用例错误信息                         |
| 3.3.1   | 更新文档                                           |
| 3.4.0   | 命令行工具重构为子命令模式，新增 tools 命令                      |