parent
15d94253d5
commit
16769fc532
|
@ -55,6 +55,7 @@ $ sudo pip3 install youqu
|
|||
<details>
|
||||
<summary><b>不加 sudo ?</b></summary>
|
||||
|
||||
-----------------------
|
||||
|
||||
不加 sudo 也可以:
|
||||
|
||||
|
@ -64,7 +65,7 @@ pip3 install youqu
|
|||
|
||||
但可能出现 `youqu-startproject` 命令无法使用;
|
||||
|
||||
这是因为不加 sudo 时,`youqu-startproject` 命令会生成在 `$HOME/.local/bin` 下,
|
||||
这是因为不加 `sudo` 时,`youqu-startproject` 命令会生成在 `$HOME/.local/bin` 下,
|
||||
|
||||
而此路径可能不在环境变量(`PATH`)中,因此您需要添加环境变量:
|
||||
|
||||
|
@ -72,6 +73,8 @@ pip3 install youqu
|
|||
export PATH=$PATH:$HOME/.local/lib
|
||||
```
|
||||
|
||||
-----------------------
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
@ -167,7 +170,7 @@ $ youqu manage.py remote
|
|||
|
||||
## [贡献]()
|
||||
|
||||
[贡献文档](https://github.com/linuxdeepin/youqu/blob/master/CONTRIBUTING.md)
|
||||
[贡献文档](https://youqu.uniontech.com/CONTRIBUTING.html)
|
||||
|
||||
|
||||
## [开源许可证]()
|
||||
|
|
|
@ -119,11 +119,7 @@ $ youqu manage.py run --app autotest_deepin_music --keywords "xxx" --tags "xxx"
|
|||
|
||||
通过配置文件配置参数
|
||||
|
||||
在配置文件 `setting/globalconfig.ini` 里面支持配置对执行的一些参数进行配置,常用的如:
|
||||
|
||||
```ini
|
||||
<!--@include: ../../../setting/globalconfig.ini-->
|
||||
```
|
||||
在配置文件 [setting/globalconfig.ini](https://github.com/linuxdeepin/youqu/blob/master/setting/globalconfig.ini ) 里面支持配置对执行的一些参数进行配置;
|
||||
|
||||
配置完成之后,直接在命令行执行 `manage.py` 就好了。
|
||||
|
||||
|
@ -151,24 +147,13 @@ $ youqu manage.py remote
|
|||
|
||||
远程执行同样通过配置文件 `setting/globalconfig.ini` 进行用例相关配置;
|
||||
|
||||
需要重点说一下远程执行时的测试机信息配置,在配置文件 `setting/remote.ini` 里面配置测试机的用户名、`IP`、密码。
|
||||
|
||||
```ini
|
||||
--8<-- "setting/remote.ini"
|
||||
```
|
||||
|
||||
有多少台机器就像这样参考上面的格式写就行了。
|
||||
|
||||
然后在命令行:
|
||||
|
||||
<div class="termy">
|
||||
|
||||
```shell
|
||||
$ youqu manage.py remote
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
这样运行是从配置文件去读取相关配置。
|
||||
|
||||
如果你不想通过配置文件,你仍然通过命令行参数进行传参,
|
||||
|
@ -194,37 +179,28 @@ $ youqu manage.py remote
|
|||
|
||||
在命令行这样运行:
|
||||
|
||||
<div class="termy">
|
||||
|
||||
```shell
|
||||
$ youqu manage.py remote -a autotest_deepin_music -c uos@10.8.13.xx/uos@10.8.13.xx -k "xxx" -t "xxx"
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
所有用例执行完之后会在 `report` 目录下回收各个测试机执行的测试报告。
|
||||
|
||||
注意,如果远程机器没有搭建自动化测试环境,记得加上参数 `-e` :
|
||||
|
||||
<div class="termy">
|
||||
|
||||
```shell
|
||||
$ youqu manage.py remote -a autotest_deepin_music -c uos@10.8.13.xx/uos@10.8.13.xx -k "xxx" -t "xxx" -e
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
执行前确保远程机器已经开启了 ssh 服务,否则会提示无法连接,如果没有开启,请手动开启:
|
||||
|
||||
<div class="termy">
|
||||
|
||||
```shell
|
||||
$ sudo systemctl restart ssh
|
||||
$ sudo systemctl enable ssh
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
配置文件其他相关配置项详细说明,请查看配置文件中的注释内容。
|
||||
|
||||
### 2. 多机器分布式异步负载均衡执行
|
||||
|
@ -239,11 +215,119 @@ $ sudo systemctl enable ssh
|
|||
|
||||
使用方法和前面一样,只是需要增加一个参数 `--parallel`:
|
||||
|
||||
<div class="termy">
|
||||
|
||||
```shell
|
||||
$ youqu manage.py remote -a autotest_deepin_music -c uos@10.8.13.xx/uos@10.8.13.xx -k "xxx" -t "xxx" --parallel no
|
||||
```
|
||||
|
||||
</div>
|
||||
## 用例驱动方式
|
||||
|
||||
### 指定执行某一个用例
|
||||
|
||||
```python
|
||||
# test_xxx_001.py
|
||||
|
||||
class TestCase:
|
||||
|
||||
def test_xxx_001_1(self):
|
||||
...
|
||||
|
||||
def test_xxx_001_2(self):
|
||||
...
|
||||
```
|
||||
|
||||
仅驱动执行这一条用例:
|
||||
|
||||
```shell
|
||||
youqu manage.py run -k test_xxx_001_1
|
||||
```
|
||||
|
||||
如果你想执行这个 py 文件中所有的用例:
|
||||
|
||||
```shell
|
||||
youqu manage.py run -k test_xxx_001
|
||||
```
|
||||
|
||||
### 指定某个目录执行
|
||||
|
||||
```shell
|
||||
autotest_my_app
|
||||
├── case
|
||||
│ ├── base_case.py
|
||||
│ ├── __init__.py
|
||||
│ ├── smoke
|
||||
│ │ ├── test_mycase_001.py
|
||||
│ │ └── test_mycase_002.py
|
||||
```
|
||||
|
||||
驱动执行 `smoke` 目录下所有用例:
|
||||
|
||||
```shehll
|
||||
youqu manage.py run -k smoke
|
||||
```
|
||||
|
||||
### 执行某个APP工程的所有用例
|
||||
|
||||
```shell
|
||||
youqu manage.py run -a apps/autotest_my_app
|
||||
```
|
||||
|
||||
### 根据关键词执行
|
||||
|
||||
执行包含关键词的用例,关键词可以是用例对象中的任意字符,且大小写不敏感
|
||||
|
||||
模块名称、py 文件名称、类名、函数名等等都可以做为关键词
|
||||
|
||||
比如:`apps/autotest_deepin_music/case/test_music_001.py::TestMusic::test_music_001`
|
||||
|
||||
整个字符串中可以任意截取字符作为关键词。
|
||||
|
||||
关键词驱动支持` and/or/not` 表达式。
|
||||
|
||||
```shell
|
||||
youqu manage.py run -k "music and deepin"
|
||||
```
|
||||
|
||||
### 根据标签执行
|
||||
|
||||
基于 YouQu 特有的 CSV 文件管理的标签,也可以是传统的 Pytest 标签:`@pytest.mark.L1`
|
||||
|
||||
标签驱动支持` and/or/not` 表达式。
|
||||
|
||||
```shell
|
||||
youqu manage.py run -t "L1 or smoke"
|
||||
```
|
||||
|
||||
### 批量用例ID驱动执行
|
||||
|
||||
```shell
|
||||
youqu manage.py run -t "id1 or id2 or id3 or id4"
|
||||
```
|
||||
|
||||
### 测试单驱动执行
|
||||
|
||||
```shell
|
||||
youqu manage.py run -a apps/autotest_xxx -u ut001234 -p my_password --task_id xxxx --send_pms async
|
||||
```
|
||||
|
||||
### 测试套件驱动执行
|
||||
|
||||
```shell
|
||||
youqu manage.py run -a apps/autotest_xxx -u ut001234 -p my_password --suit_id xxxx --send_pms async
|
||||
```
|
||||
|
||||
### 本地用例文件驱动执行
|
||||
|
||||
```shell
|
||||
youqu manage.py run -f test_suite.txt
|
||||
```
|
||||
|
||||
`test_suite.txt` 中编写用例所在路径:
|
||||
|
||||
```txt
|
||||
apps/autotest_deepin_music/case/test_music_001.py::TestMusic::test_music_001
|
||||
apps/autotest_deepin_music/case/test_music_002.py::TestMusic
|
||||
apps/autotest_deepin_music/case/test_music_003.py
|
||||
apps/autotest_deepin_music/case/test_music_004.py
|
||||
```
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# 全自动日志
|
||||
# 全自动日志——funnylog
|
||||
|
||||
## 背景
|
||||
|
||||
|
|
|
@ -1,123 +0,0 @@
|
|||
静态代码扫描
|
||||
--------------
|
||||
|
||||
## 1. 提前解决代码问题
|
||||
|
||||
为了帮助开发者统一代码风格,`Python` 社区提出了 `PEP8` 代码编码风格,`Python` 官方同时推出了一个检查代码风格是否符合 `PEP8` 的工具,名字也叫 `PEP8`。
|
||||
|
||||
但是,`Pycharm` 里面的 `PEP8` 插件实际上并不能发现很多代码问题,这些问题并不会在运行时报错,因为从 `Python` 语言角度并不关心这些问题,在 `Pycharm` 编辑器里面使用快捷键 `ctrl + alt + L`,有一点点格式化的效果,能解决一些空格、换行等小问题。
|
||||
|
||||
这里推荐一个 `Python` 社区流行的代码格式化工具:
|
||||
|
||||
`Black`,号称不妥协的代码格式化工具,它检测到不符合规范的代码风格直接就帮你全部格式化好,就是这么刚!
|
||||
|
||||
安装:
|
||||
|
||||
```python
|
||||
sudo pip3 install black
|
||||
```
|
||||
|
||||
使用方法:
|
||||
|
||||
```
|
||||
black ${CheckPath}
|
||||
```
|
||||
|
||||
使用这个工具格式化之后,代码会被自动调整,刚开始你可能会觉得调整得很夸张,没关系坚持看,习惯之后,你会觉得很优雅,没错,这就是 `Pythonic Code` 的核心,请保持优雅~。
|
||||
|
||||
## 2. 代码扫描工具
|
||||
|
||||
使用根目录下 `pylint.sh` 扫描代码,在 `report` 目录下查看代码扫描报告,如果有代码问题请提前解决之后再提交。
|
||||
|
||||
此脚本已经使用 `Python` 社区最流行的代码扫描工具 `Pylint` 进行代码扫描。
|
||||
|
||||
使用方法:
|
||||
|
||||
```shell
|
||||
bash pylint.sh
|
||||
```
|
||||
|
||||
运行之后会提示你要扫描的目录,比如输入 `apps` ,则会扫描 `apps` 下的所有 `Python` 代码。
|
||||
|
||||
在 `setting/pylintrc.cfg` 配置文件里面进行相关配置,扫描完成之后在 `report/pylints` 目录下会生成扫描报告。
|
||||
|
||||
代码提交需通过 `git review` 提交到 `gerrit` ,人工 `Code Review` 通过之后合入代码。
|
||||
|
||||
## 3. 安装依赖
|
||||
|
||||
```shell
|
||||
sudo apt install git-review
|
||||
```
|
||||
|
||||
## 4. 提交模板
|
||||
|
||||
在 `~` 目录下新建文件,并命名为 `gitcommit_template`
|
||||
|
||||
将以下内容写入文件当中:
|
||||
|
||||
```
|
||||
# commit type :fix(问题修复)、feat(功能开发)、style(风格修改)、refactor(重构)、docs(文档)、chore(其他)、test(测试) + 简单描述. 默认fix,根据情况修改
|
||||
fix:
|
||||
|
||||
# 详细说明代码的改动,包含代码的实现思路,以及为什么这么做,可能会影响哪些功能。对于代码的审核者,需要从这段描述中能完全理解代码中所有改动的内容
|
||||
Description:
|
||||
|
||||
# 写一段面向于产品的总结性内容,用于自动生成crp上的changlog,需要注意的事,这段描述必须从产品的角度考虑。
|
||||
Log:
|
||||
|
||||
# 关联pms上的bug号,提交后,则会自动在pms对应bug信息页面添加备注,关联本次提交。若本次提交为修复bug相关,则请取消注释
|
||||
#Bug:
|
||||
|
||||
# 修复 github issue
|
||||
#Issue:
|
||||
|
||||
# 关联pms上的任务号,提交后,则会自动在pms对应任务信息页面添加备注,关联本次提交。若本次提交为任务相关,则请取消注释
|
||||
#Task:
|
||||
```
|
||||
|
||||
命令行执行:
|
||||
|
||||
```shell
|
||||
git config --global commit.template ~/gitcommit_template
|
||||
```
|
||||
|
||||
此命令将模板加入到 `git` 的提交模板中。
|
||||
|
||||
后续提交的时候需要关注一下几点:
|
||||
|
||||
- `commit type` 对应不同的修改类型:`fix`(问题修复)、`feat`(功能开发)、`style` (风格修改)、`refactor` (重构)、`docs`(文档)、`chore`(其他)、`test` (测试)
|
||||
- `commit type` 冒号后面加**空格**。
|
||||
- `Description` 必要的情况下需要进行详细说明,比如对功能进行大改等。
|
||||
|
||||
## 5. 推送代码
|
||||
|
||||
首先添加 `commit` 信息
|
||||
|
||||
```shell
|
||||
git add 后面加文件名称
|
||||
```
|
||||
|
||||
```shell
|
||||
git add . # 表示添加所有文件
|
||||
```
|
||||
|
||||
使用这条命令注意有些临时文件不要提交到仓库了。
|
||||
|
||||
```shell
|
||||
git commit -a
|
||||
```
|
||||
|
||||
之后在 `fix: ` 后面(注意冒号后面必须加空格,不然直接-1)写本地提交的 `commit` 信息,然后就可以提交代码了
|
||||
|
||||
```shell
|
||||
git review branch(当前分支) -r origin
|
||||
```
|
||||
|
||||
最好一次 `commit`,一次 `git review` ,经常有同学在本地疯狂 `commit` 最后 `git review` 报错不知道咋回事儿。
|
||||
若不想每次提交都加上 `-r` 选项,执行以下命令:
|
||||
|
||||
```shell
|
||||
git config --global gitreview.remote origin
|
||||
```
|
||||
|
||||
提交代码,直接使用 `git review branch<目标分支>`,例如 `git review master`
|
Loading…
Reference in New Issue