From cfa9fa52cfe2fc9983b93c7bfdd59806753baf69 Mon Sep 17 00:00:00 2001 From: floraachy <1622042529@qq.com> Date: Tue, 19 Dec 2023 15:13:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0readme=E6=96=87=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=94=A8=E4=BE=8B=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pipfile | 28 ++++++++++---------- README.md | 68 +++++++++++++++++++++++++++++++++++++++--------- requirements.txt | 15 +++++++++++ 3 files changed, 85 insertions(+), 26 deletions(-) create mode 100644 requirements.txt diff --git a/Pipfile b/Pipfile index 4ed2b78..fa7b973 100644 --- a/Pipfile +++ b/Pipfile @@ -4,23 +4,23 @@ verify_ssl = false name = "pip_conf_index_global" [packages] -pymysql = "*" -loguru = "*" -requests-toolbelt = "*" +pymysql = "==1.1.0" +loguru = "==0.7.2" +requests-toolbelt = "==1.0.0" requests = "*" -openpyxl = "*" -sshtunnel = "*" -yagmail = "*" -pyyaml = "*" -click = "*" -faker = "*" -jsonpath = "*" +openpyxl = "==3.1.2" +sshtunnel = "==0.4.0" +yagmail = "==0.15.293" +pyyaml = "==6.0.1" +click = "==8.1.7" +faker = "==21.0.0" +jsonpath = "0.82.2" pytest = "==6.2.5" -pytest-rerunfailures = "*" +pytest-rerunfailures = "==12.0" allure-pytest = "==2.9.45" -pydantic = "*" -xpinyin = "*" -"ruamel.yaml" = "*" +pydantic = "==2.5.2" +xpinyin = "==0.7.6" +"ruamel.yaml" = "==0.18.5" [dev-packages] diff --git a/README.md b/README.md index 498ecea..f309b4e 100644 --- a/README.md +++ b/README.md @@ -74,17 +74,26 @@ https://gitlink.org.cn/floraachy/apiautotest.git 2. 本地电脑搭建好 python环境,我使用的python版本是3.9。包括allure测试报告所需的java环境(安装jdk)。 -3. 安装pipenv +3. 安装环境依赖包 +1) 方法一:使用pipenv管理所有依赖 ``` -# 建议在项目根目录下执行命令安装 +# 安装pipenv, 这个需要全局安装。建议在项目根目录下执行命令安装 pip install pipenv + +# 使用pipenv管理安装环境依赖包(必须在项目根目录下执行)。 +pipenv install + +# 注意:使用pipenv install会自动安装Pipfile里面的依赖包,该依赖包仅安装在虚拟环境里,不安装在测试机(本机)。 + ``` +2方法二:使用requirements.txt一键安装所有依赖 +``` +pip install -r requirements.txt -4. 使用pipenv管理安装环境依赖包:pipenv install (必须在项目根目录下执行) -``` - 注意:使用pipenv install会自动安装Pipfile里面的依赖包,该依赖包仅安装在虚拟环境里,不安装在测试机。 +# 注意:这种方式安装,会将依赖包全部安装在测试机(本机) ``` + 如上环境都已经搭建好了,包括框架依赖包也都安装好了。
@@ -110,18 +119,20 @@ pip install pipenv 2)ENV_VARS["test"]是保存test环境的一些测试数据。ENV_VARS["live"]是保存live环境的一些测试数据。如果还有其他环境可以继续增加,例如增加ENV_VARS["dev"] = {"host": "", ......} ### 3. 删除框架中的示例用例数据 -1)删除 `data`目录下所有的YAML和EXCEL文件 +1)删除 `interface`目录下所有的YAML和EXCEL文件(每一个文件都保存的接口测试用例) 2)删除 `test_case/test_manual_case`目录下所有手动编写的用例,后续有需要可以在该目录下手动编写用例。 +注意:conftest.py文件中非业务相关的代码可以保留。 + ### 4. 编写测试用例(两种方式任选其一或者都选) #### 1)自动生成测试用例 `data` `test_case.test_auto_case` -- 在目录`data`下新建一个YAML/Excel文件。按照如下字段要求进行测试用例数据添加 +- 在目录`interface`下新建一个YAML/Excel文件。按照如下字段要求进行测试用例数据添加 - 注意:如果需要自动创建测试用例文件,YAML/Excel文件的文件名需要以"test"开头。 -#### 2)手动编写测试用例 `data` `test_case.test_manual_case` +#### 2)手动编写测试用例 `interface` `test_case.test_manual_case` - 原则上,如果是手动编写测试用例(python代码), 测试用例数据文件不要以"test"开头。 如果以“test”开头,可能导致用例运行多次。 -1)在目录`data`下新建一个YAML/Excel文件,按照要求编写测试用例数据 +1)在目录`interface`下新建一个YAML/Excel文件,按照要求编写测试用例数据 2)在test_case.test_manual_case下新建一个以"test"开头的测试方法,进行测试用例方法编写。 ### 5. 用例中相关字段的介绍 @@ -134,7 +145,7 @@ case_common :公共参数 case_markers: 给测试方法添加标记,支持自定义标记,skip, usefixtures。 格式是列表嵌套字符串或者字典。例如: # ['glcc', {'skip': '跳过执行该用例'}] case_info: 具体的用例数据,是以列表的形式进行管理 - - id:用例id + id:用例id,注意需要全局唯一,方便后续用于用例接口依赖 title:用例标题 severity: 用例优先级,支持如下几种:NORMAL, BLOCKER,CRITICAL,MINOR,TRIVIAL; 为空和错误都认为是NORMAL run:是否执行用例,为空或者True都会执行,为False则不执行。 @@ -145,9 +156,10 @@ case_info: 具体的用例数据,是以列表的形式进行管理 request_type:请求数据类型:params, json, file, data payload:请求参数 files: 需要上传的文件,参考如下传参:{接口中文件参数的名称:'文件路径地址'} - extract:后置提取参数 assert_response:响应断言 assert_sql:数据库断言 + extract:后置提取参数 + case_dependence: 用例依赖 ``` ### 6. 参数提取说明 @@ -288,9 +300,31 @@ case_info: 具体的用例数据,是以列表的形式进行管理 expect_value: ${user_id} assert_type: contains ``` +### 9. 用例依赖说明 +目前用例依赖仅支持接口依赖,数据库依赖后续会补充。 +依赖的配置说明: +``` +case_dependence: 用例依赖,为空时表示没有依赖: + setup: 前置依赖信息,为空时表示没有依赖 + interface: 用例依赖的接口id,支持str和list格式。接口id指的是每一个YAML/EXCEL用例中的ID + sql: 数据库查询语句,后续支持后将补充 + teardown: 后置依赖信息,为空时表示没有依赖 + interface: 用例依赖的接口id,支持str和list格式。接口id指的是每一个YAML/EXCEL用例中的ID + sql: 数据库查询语句,后续支持后将补充 +``` +参考示例: +``` + case_dependence: + setup: + interface: gitlink_login_oauth_token_01 + teardown: + interface: + - gitlink_projects_delete_project_01 + sql: +``` -### 9. Excel用例单独说明 +### 10. Excel用例单独说明 框架支持excel多表单自动生成测试用例,每一个表单作为一个测试用例模块。 例如: excel表格名称是:test_demo.xlsx @@ -382,9 +416,19 @@ excel表单2名称是:示例模块 - [如何配置企业微信通知?](https://www.gitlink.org.cn/zone/tester/newdetail/241) 我们通过封装企业微信机器人发送通知。 +- [python虚拟管理工具--pipenv使用教程](https://www.gitlink.org.cn/zone/tester/newdetail/505) +在使用Python语言的时候我们使用pip来安装第三方包,但是由于pip的特性,系统中只能安装每个包的一个版本。但是在实际项目开发中,不同项目可能需要第三方包的不同版本,Python的解决方案就是虚拟环境。 +顾名思义,虚拟环境就是虚拟出来的一个隔离的Python环境,每个项目都可以有自己的虚拟环境,用pip安装各自的第三方包,不同项目之间也不会存在冲突。 +创建虚拟环境需要一些工具, 我们使用pipenv来创建虚拟环境和管理依赖包。 + ## 九、初始化项目可能遇到的问题 - [测试机安装python版本与本框架要求不一致,怎么办?](https://www.gitlink.org.cn/zone/tester/newdetail/245) - [无法安装依赖包或者安装很慢,怎么办?](https://www.gitlink.org.cn/zone/tester/newdetail/244) + + +## 赞赏 +如果这个库有帮助到你并且你很想支持库的后续开发和维护,那么你可以扫描下方二维码随意打赏我,我将不胜感激 +![打赏](https://www.gitlink.org.cn/api/attachments/437395) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..21ba911 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,15 @@ +allure-pytest==2.9.45 +click==8.1.7 +Faker==21.0.0 +jsonpath==0.82.2 +loguru==0.7.2 +openpyxl==3.1.2 +pydantic==2.5.2 +PyMySQL==1.1.0 +pytest-rerunfailures==12.0 +PyYAML==6.0.1 +requests-toolbelt==1.0.0 +ruamel.yaml==0.18.5 +sshtunnel==0.4.0 +xpinyin==0.7.6 +yagmail==0.15.293 \ No newline at end of file