From f5fbe11446d2607a8fc113e4636ea97c4dfc291c Mon Sep 17 00:00:00 2001 From: floraachy <1622042529@qq.com> Date: Tue, 9 Apr 2024 11:44:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=92=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/settings.py | 170 +++++++++----- .../test_gitlink_new_organization.yaml | 2 +- .../test_gitlink_repo_edit_dataset.yaml | 56 +++++ .../test_gitlink_repo_get_dataset_detail.yaml | 49 +++++ .../test_gitlink_repo_new_dataset.yaml | 208 ++++++++++++++++++ ...test_gitlink_repo_upload_dataset_file.yaml | 52 +++++ .../test_gitlink_get_repo_setting.yaml | 12 +- ...t_gitlink_update_private_repo_setting.yaml | 28 +-- ...st_gitlink_update_public_repo_setting.yaml | 28 +-- .../test_gitlink_get_repo_category.yaml | 4 +- ...aml => test_gitlink_get_repo_ignores.yaml} | 7 +- .../test_gitlink_get_repo_language.yaml | 4 +- .../test_gitlink_get_repo_licenses.yaml | 32 +++ .../projects/test_gitlink_new_project.yaml | 33 +-- .../test_gitlink_repo_get_wiki_sidebar.yaml | 2 +- .../wiki/test_gitlink_repo_new_wiki.yaml | 7 +- ...test_gitlink_repo_update_wiki_sidebar.yaml | 6 +- .../test_get_product_detail.yaml | 6 +- .../test_get_product_user_list.yaml | 3 + .../test_pms_delete_product.yaml | 4 +- .../{ => product}/test_pms_edit_product.yaml | 10 + .../test_pms_get_product_list.yaml | 2 + .../{ => product}/test_pms_new_product.yaml | 22 +- .../test_pms_operate_top_product.yaml | 15 +- .../test_pms_delete_product_module.yaml | 10 +- .../test_pms_edit_product_module.yaml | 34 ++- .../test_pms_new_product_module.yaml | 7 +- .../test_get_product_plan_detail.yaml | 2 + .../test_pms_delete_product_plan.yaml | 3 + .../test_pms_edit_product_plan.yaml | 4 + .../test_pms_get_product_plan_list.yaml | 2 + .../test_pms_new_product_plan.yaml | 2 + .../test_pms_delete_product_requirement.yaml | 1 + .../test_pms_edit_product_requirement.yaml | 18 +- ...test_pms_get_product_requirement_list.yaml | 2 + ...est_pms_get_product_requirement_plans.yaml | 36 --- .../test_pms_new_product_requirement.yaml | 37 ++-- ...ms_pms_batch_edit_product_requirement.yaml | 2 +- .../test_pms_add_journal.yaml | 8 +- .../test_pms_delete_journal.yaml | 2 + .../test_pms_edit_journal.yaml | 2 + .../test_pms_get_journal_list.yaml | 2 + .../test_get_project_user_list.yaml | 3 + .../test_pms_delete_project.yaml | 8 +- .../{ => project}/test_pms_edit_project.yaml | 61 ++++- .../project/test_pms_get_project_detail.yaml | 43 ++++ .../test_pms_get_project_list.yaml | 9 +- .../{ => project}/test_pms_new_project.yaml | 28 ++- .../{ => project}/test_pms_top_project.yaml | 15 +- .../weekly/test_get_project_weekly_list.yaml | 38 ++++ ...test_pms_get_optional_parent_bug_list.yaml | 2 +- ...st_pms_batch_edit_project_requirement.yaml | 55 +++-- .../test_pms_delete_project_requirement.yaml | 7 + .../test_pms_edit_project_requirement.yaml | 62 ++++-- ..._get_optional_parent_requirement_list.yaml | 2 +- ...st_pms_get_project_requirement_detail.yaml | 2 + ...test_pms_get_project_requirement_list.yaml | 2 + .../test_pms_get_unlink_requirement_list.yaml | 39 ++++ .../test_pms_new_project_requirement.yaml | 59 +++-- ...t_pms_project_requirement_add_journal.yaml | 98 ++------- ...project_requirement_add_journal_reply.yaml | 103 +++++++++ ..._pms_project_requirement_edit_journal.yaml | 51 ++--- ...roject_requirement_edit_journal_reply.yaml | 59 +++++ .../task/test_pms_edit_project_task.yaml | 5 +- ...est_pms_get_optional_parent_task_list.yaml | 2 +- .../task/test_pms_new_project_task.yaml | 4 +- .../test_pms_get_issue_status_list.yaml | 34 +++ .../test_pms_project_upload_files.yaml | 9 +- .../pms/repository/test_pms_delete_repo.yaml | 38 ++++ .../pms/repository/test_pms_new_repo.yaml | 2 + .../testcase_tag/test_pms_deletet_tag.yaml | 2 +- interface/pms/test_pms_upload_files.yaml | 96 +++++++- run.py | 2 +- utils/data_utils/data_handle.py | 20 +- 74 files changed, 1485 insertions(+), 411 deletions(-) create mode 100644 interface/gitlink/projects/dataset/test_gitlink_repo_edit_dataset.yaml create mode 100644 interface/gitlink/projects/dataset/test_gitlink_repo_get_dataset_detail.yaml create mode 100644 interface/gitlink/projects/dataset/test_gitlink_repo_new_dataset.yaml create mode 100644 interface/gitlink/projects/dataset/test_gitlink_repo_upload_dataset_file.yaml rename interface/gitlink/projects/{settings => }/test_gitlink_get_repo_category.yaml (82%) rename interface/gitlink/projects/{test_gitlink_get_ignores.yaml => test_gitlink_get_repo_ignores.yaml} (78%) rename interface/gitlink/projects/{settings => }/test_gitlink_get_repo_language.yaml (82%) create mode 100644 interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml rename interface/pms/products/{ => product}/test_get_product_detail.yaml (81%) rename interface/pms/products/{ => product}/test_get_product_user_list.yaml (81%) rename interface/pms/products/{ => product}/test_pms_delete_product.yaml (87%) rename interface/pms/products/{ => product}/test_pms_edit_product.yaml (88%) rename interface/pms/products/{ => product}/test_pms_get_product_list.yaml (97%) rename interface/pms/products/{ => product}/test_pms_new_product.yaml (85%) rename interface/pms/products/{ => product}/test_pms_operate_top_product.yaml (67%) delete mode 100644 interface/pms/products/product_requirement/test_pms_get_product_requirement_plans.yaml rename interface/pms/projects/{ => project}/test_get_project_user_list.yaml (92%) rename interface/pms/projects/{ => project}/test_pms_delete_project.yaml (76%) rename interface/pms/projects/{ => project}/test_pms_edit_project.yaml (69%) create mode 100644 interface/pms/projects/project/test_pms_get_project_detail.yaml rename interface/pms/projects/{ => project}/test_pms_get_project_list.yaml (89%) rename interface/pms/projects/{ => project}/test_pms_new_project.yaml (87%) rename interface/pms/projects/{ => project}/test_pms_top_project.yaml (81%) create mode 100644 interface/pms/projects/weekly/test_get_project_weekly_list.yaml create mode 100644 interface/pms/projects/work_item/requirement/test_pms_get_unlink_requirement_list.yaml create mode 100644 interface/pms/projects/work_item/requirement/test_pms_project_requirement_add_journal_reply.yaml create mode 100644 interface/pms/projects/work_item/requirement/test_pms_project_requirement_edit_journal_reply.yaml create mode 100644 interface/pms/projects/work_item/test_pms_get_issue_status_list.yaml create mode 100644 interface/pms/repository/test_pms_delete_repo.yaml diff --git a/config/settings.py b/config/settings.py index d04c5a4..d922c27 100644 --- a/config/settings.py +++ b/config/settings.py @@ -17,33 +17,91 @@ ENV_VARS = { }, "test": { # 环境相关域名 - "host": "****host-test****", - "wiki_host": "****wiki_host-test****", - "pms_host": "****pm_host-test****", + "host": "https://******", + "wiki_host": "https://******", + "pms_host": "https://******", # 获取oauth_token需要的参数 "client_id": "****client_id****", "client_secret": "****client_secret****", # 万能验证码 - "green_code": "****green_code-test****", - # 测试账号 - 普通用户 - "env_login": "autotest", - "env_password": "****autotest_password_test****", # 运行时需要手动更改密码 - "env_nickname": "autotest", + "green_code": "******", + # 测试账号 - 普通用户(测试仓库开发者), 默认登录账号 + "env_login": "******", + "env_password": "******", # 运行时需要手动更改密码 + "env_nickname": "******", "env_user_id": 106, - # 测试账号 - 超级管理员 - "env_super_login": "floraachy", - "env_super_password": "****floraachy_password_test****", # 运行时需要手动更改密码 + # 测试账号 - 普通用户(测试仓库报告者) + "t_login": "******", + "t_password": "******", + "t_nickname": "******", + "t_user_id": 290, + # 测试账号 - 超级管理员(测试仓库管理员) + "env_super_login": "******", + "env_super_password": "******", # 运行时需要手动更改密码 # 测试仓库 env_repo_owner/env_repo_identifier - "env_repo_owner": "", - "env_repo_identifier": "", - "env_project_id": "", - # pms相关环境变量 - "env_pms_product_id": "", - "env_pms_product_identifier": "", - "env_pms_project_id": "", - "env_enterprise_identifier": "", - "env_enterprise_id": "", - "env_organization_id": 105, + "env_repo_owner": "******", + "env_repo_identifier": "******", + "env_project_id": "******", + # pms相关环境变量 - 产品 + "env_pms_product_id": "******", + "env_pms_product_identifier": "******", + # pms相关环境变量 - 项目 + "env_pms_project_id": "******", + # pms相关环境变量 - 企业 + "env_enterprise_identifier": "******", + "env_enterprise_id": "******", + "env_organization_id": 249, + "env_dept_id": 349, + # 数据库配置 + "db_info": { + "db_host": "xx.xx.xx.xx", + "db_port": 3306, + "db_user": "root", + "db_pwd": "**********", + "db_database": "test**********", + "ssh": False, + "ssh_host": "xx.xx.xx.xx", + "ssh_port": 3306, + "ssh_user": "root", + "ssh_pwd": "**********" + + } + + }, + "dev": { + # 环境相关域名 + "host": "http://******", + "wiki_host": "", + "pms_host": "http://******", + # 获取oauth_token需要的参数 + "client_id": "****client_id****", + "client_secret": "****client_secret****", + # 万能验证码 + "green_code": "******", + # 测试账号 - 普通用户(测试仓库开发者), 默认登录账号 + "env_login": "******", + "env_password": "******", # 运行时需要手动更改密码 + "env_nickname": "******", + "env_user_id": 36669, + # 测试账号 - 超级管理员(测试仓库管理员) + "env_super_login": "******", + "env_super_password": "******", + "env_super_nickname": "******", + "env_super_user_id": 36661, + # 测试仓库 env_repo_owner/env_repo_identifier + "env_repo_owner": "****", + "env_repo_identifier": "****", + "env_project_id": "****", + # pms相关环境变量 - 产品 + "env_pms_product_id": "******", + "env_pms_product_identifier": "******", + # pms相关环境变量 - 项目 + "env_pms_project_id": "******", + # pms相关环境变量 - 企业 + "env_enterprise_identifier": "******", + "env_enterprise_id": "******", + "env_organization_id": 36663, + "env_dept_id": 331, # 数据库配置 "db_info": { "db_host": "xx.xx.xx.xx", @@ -62,32 +120,37 @@ ENV_VARS = { }, "pre": { # 环境相关域名 - "host": "****host-pre****", - "wiki_host": "****wiki_host-pre****", - "pms_host": "****pm_host-pre****", + "host": "http://******", + "wiki_host": "http://******", + "pms_host": "https://******", # 获取oauth_token需要的参数 "client_id": "****client_id-pre****", "client_secret": "****client_secret-pre****", # 万能验证码 - "green_code": "****green_code-pre****", - # 测试账号 - 普通用户 - "env_login": "autotest", - "env_password": "****autotest-pre****", # 运行时需要手动更改密码 - "env_nickname": "autotest", + "green_code": "******", + # 测试账号 - 普通用户(测试仓库开发者), 默认登录账号 + "env_login": "******", + "env_password": "******", # 运行时需要手动更改密码 + "env_nickname": "******", "env_user_id": 115, - # 测试账号 - 超级管理员 - "env_super_login": "floraachy", - "env_super_password": "****floraachy-pre****", # 运行时需要手动更改密码 + # 测试账号 - 普通用户(测试仓库报告者) + "t_login": "******", + "t_password": "******", + "t_nickname": "******", + "t_user_id": 36546, + # 测试账号 - 超级管理员(测试仓库管理员) + "env_super_login": "******", + "env_super_password": "******", # 运行时需要手动更改密码 + "env_super_user_id": 110, # 测试仓库 env_repo_owner/env_repo_identifier - "env_repo_owner": "", - "env_repo_identifier": "", - "env_project_id": "", + "env_repo_owner": "******", + "env_repo_identifier": "******", + "env_project_id": "******", # pms相关环境变量 "env_pms_product_id": "", "env_pms_product_identifier": "", "env_pms_project_id": "", - "env_enterprise_id": "", - "env_organization_id": "", + "env_dept_id": "", # 数据库配置 "db_info": { "db_host": "xx.xx.xx.xx", @@ -106,32 +169,37 @@ ENV_VARS = { }, "live": { # 环境相关域名 - "host": "https://www.gitlink.org.cn", - "wiki_host": "https://wiki.gitlink.org.cn", + "host": "https://******", + "wiki_host": "https://******", "pms_host": "https://*****", # 获取oauth_token需要的参数 "client_id": "****client_id-live****", "client_secret": "****client_secret-live****", # 万能验证码 "green_code": "****green_code-live****", - # 测试账号 - 普通用户 - "env_login": "floraachy", - "env_password": "****floraachy-live****", # 运行时需要手动更改密码 - "env_nickname": "🌼陈银花", + # 测试账号 - (测试仓库开发者), 默认登录账号 + "env_login": "******", + "env_password": "******", + "env_nickname": "******", "env_user_id": 87611, - # 测试账号 - 超级管理员 - "env_super_login": "chenyh", - "env_super_password": "****chenyh-live****", # 运行时需要手动更改密码 + # 测试账号 - 普通用户(测试仓库报告者) + "t_login": "******", + "t_password": "******", + "t_nickname": "******", + "t_user_id": 87691, + # 测试账号 - 超级管理员 (测试仓库管理员) + "env_super_login": "******", + "env_super_password": "******", + "env_super_user_id": 88473, # 测试仓库 env_repo_owner/env_repo_identifier - "env_repo_owner": "floraachy", - "env_repo_identifier": "autotest", - "env_project_id": "1445676", + "env_repo_owner": "******", + "env_repo_identifier": "******", + "env_project_id": "******", # pms相关环境变量 "env_pms_product_id": "", "env_pms_product_identifier": "", "env_pms_project_id": "", - "env_enterprise_id": "", - "env_organization_id": "", + "env_dept_id": "", # 数据库配置 "db_info": { "db_host": "xx.xx.xx.xx", diff --git a/interface/gitlink/organization/test_gitlink_new_organization.yaml b/interface/gitlink/organization/test_gitlink_new_organization.yaml index 00a6fed..57af51b 100644 --- a/interface/gitlink/organization/test_gitlink_new_organization.yaml +++ b/interface/gitlink/organization/test_gitlink_new_organization.yaml @@ -28,7 +28,7 @@ case_info: description: ${generate_words()} # 组织描述 location: ${generate_city(lan='zh', full=False)} # 组织地区 repo_admin_change_team_access: true # 项目管理员可以添加或移除团队的访问权限 - image: data:image/png;base64,${get_file_content('gitlinklogo3.jpg')} # 组织图片, base64编码方式 + image: data:image/png;base64,${get_file_content('gitlinklogo3.jpg')} # 组织图片, 二进制 visibility: common # 组织可见性,默认值common files: assert_response: diff --git a/interface/gitlink/projects/dataset/test_gitlink_repo_edit_dataset.yaml b/interface/gitlink/projects/dataset/test_gitlink_repo_edit_dataset.yaml new file mode 100644 index 0000000..67e53a7 --- /dev/null +++ b/interface/gitlink/projects/dataset/test_gitlink_repo_edit_dataset.yaml @@ -0,0 +1,56 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 数据集 + case_markers: + - gitlink + - repo + - dataset + - usefixtures: gitlink_login + +# 前提条件:当前存找一个仓库,仓库已经创建数据集 + +common_dependence: + setup: + interface: + - gitlink_get_repo_licenses_01 + - gitlink_projects_new_project_01 + - gitlink_repo_new_dataset_02 + teardown: + interface: + - gitlink_projects_delete_project_01 + + +case_info: +- + id: gitlink_repo_edit_dataset_01 + title: 编辑数据集,编辑成功 + severity: critical + run: True + url: /api/v1/${repo_owner}/${repo_identifier}/dataset.json + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + title: test_${generate_identifier()}_${generate_identifier()} + license_id: ${random.choice(${licenses_ids})} + description: ${generate_paragraph(nb=5)} + paper_content: ${generate_paragraph(nb=5)} + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.message + expect_value: success + assert_type: == + assertStatus: + type_jsonpath: $.status + expect_value: 0 + assert_type: == + assert_sql: + extract: + case_dependence: + diff --git a/interface/gitlink/projects/dataset/test_gitlink_repo_get_dataset_detail.yaml b/interface/gitlink/projects/dataset/test_gitlink_repo_get_dataset_detail.yaml new file mode 100644 index 0000000..99ec7fb --- /dev/null +++ b/interface/gitlink/projects/dataset/test_gitlink_repo_get_dataset_detail.yaml @@ -0,0 +1,49 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 数据集 + case_markers: + - gitlink + - repo + - dataset + - usefixtures: gitlink_login + +# 前提条件:当前存找一个仓库,仓库已经创建数据集 + +common_dependence: + setup: + interface: + - gitlink_projects_new_project_01 + - gitlink_repo_new_dataset_02 + - gitlink_repo_get_dataset_detail_01 + teardown: + interface: + - gitlink_projects_delete_project_01 + +case_info: +- + id: gitlink_repo_get_dataset_detail_01 + title: 获取数据集详情 + severity: critical + run: True + url: /api/v1/${repo_owner}/${repo_identifier}/dataset.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + page: 1 + limit: 10 + files: + assert_response: + status_code: 200 + assertField: + expect_value: attachment_total_count + assert_type: contains + assert_sql: + extract: + type_jsonpath: + dataset_container_id: $.id + case_dependence: diff --git a/interface/gitlink/projects/dataset/test_gitlink_repo_new_dataset.yaml b/interface/gitlink/projects/dataset/test_gitlink_repo_new_dataset.yaml new file mode 100644 index 0000000..008119d --- /dev/null +++ b/interface/gitlink/projects/dataset/test_gitlink_repo_new_dataset.yaml @@ -0,0 +1,208 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 数据集 + case_markers: + - gitlink + - repo + - dataset + - usefixtures: gitlink_login + +# 前提条件:当前存找一个仓库,仓库开启了数据集功能 +# 每一个仓库仅能存在一个数据集,因此每次测试都必须新建项目,创建数据集,最后清理数据:删除项目; +# 新建数据集时,数据集名称和数据集描述是必填项。其他为非必填。 + +common_dependence: + setup: + interface: gitlink_get_repo_licenses_01 + + +case_info: +- + id: gitlink_repo_new_dataset_01 + title: 项目创建数据集(所有参数均填写),创建成功 + severity: critical + run: True + url: /api/v1/${repo_owner}/${repo_identifier}/dataset.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + title: test_${generate_identifier()}_${generate_identifier()} + license_id: ${random.choice(${licenses_ids})} + description: ${generate_paragraph(nb=5)} + paper_content: ${generate_paragraph(nb=5)} + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.message + expect_value: success + assert_type: == + assertStatus: + type_jsonpath: $.status + expect_value: 0 + assert_type: == + assert_sql: + extract: + case_dependence: + setup: + interface: + - gitlink_projects_new_project_01 + teardown: + interface: + - gitlink_projects_delete_project_01 + +- + id: gitlink_repo_new_dataset_02 + title: 项目创建数据集(仅填写必填项),创建成功 + severity: critical + run: True + url: /api/v1/${repo_owner}/${repo_identifier}/dataset.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + title: test_${generate_identifier()}_${generate_identifier()} + description: ${generate_paragraph(nb=5)} + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.message + expect_value: success + assert_type: == + assertStatus: + type_jsonpath: $.status + expect_value: 0 + assert_type: == + assert_sql: + extract: + case_dependence: + setup: + interface: + - gitlink_projects_new_project_01 + teardown: + interface: + - gitlink_projects_delete_project_01 + +- + id: gitlink_repo_new_dataset_03 + title: 项目创建数据集,数据集名称长度101,创建失败 + severity: critical + run: True + url: /api/v1/${repo_owner}/${repo_identifier}/dataset.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + title: ${faker.pystr(max_chars=101)} + license_id: ${random.choice(${licenses_ids})} + description: ${generate_paragraph(nb=5)} + paper_content: ${generate_paragraph(nb=5)} + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.message + expect_value: '验证失败: Title过长(最长为 100 个字符)' + assert_type: == + assertStatus: + type_jsonpath: $.status + expect_value: -1 + assert_type: == + assert_sql: + extract: + case_dependence: + setup: + interface: + - gitlink_projects_new_project_01 + teardown: + interface: + - gitlink_projects_delete_project_01 + + +- + id: gitlink_repo_new_dataset_04 + title: 项目创建数据集,数据集描述长度501,创建失败 + severity: critical + run: True + url: /api/v1/${repo_owner}/${repo_identifier}/dataset.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + title: ${generate_words()} + license_id: ${random.choice(${licenses_ids})} + description: ${faker.pystr(max_chars=501)} + paper_content: ${generate_paragraph(nb=5)} + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.message + expect_value: '验证失败: Description过长(最长为 500 个字符)' + assert_type: == + assertStatus: + type_jsonpath: $.status + expect_value: -1 + assert_type: == + assert_sql: + extract: + case_dependence: + setup: + interface: + - gitlink_projects_new_project_01 + teardown: + interface: + - gitlink_projects_delete_project_01 + +- + id: gitlink_repo_new_dataset_05 + title: 项目创建数据集,对应研究论文长度501,创建失败 + severity: critical + run: True + url: /api/v1/${repo_owner}/${repo_identifier}/dataset.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + title: ${generate_words()} + license_id: ${random.choice(${licenses_ids})} + description: ${generate_paragraph(nb=5)} + paper_content: ${faker.pystr(max_chars=501)} + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.message + expect_value: '验证失败: Paper content过长(最长为 500 个字符)' + assert_type: == + assertStatus: + type_jsonpath: $.status + expect_value: -1 + assert_type: == + assert_sql: + extract: + case_dependence: + setup: + interface: + - gitlink_projects_new_project_01 + teardown: + interface: + - gitlink_projects_delete_project_01 diff --git a/interface/gitlink/projects/dataset/test_gitlink_repo_upload_dataset_file.yaml b/interface/gitlink/projects/dataset/test_gitlink_repo_upload_dataset_file.yaml new file mode 100644 index 0000000..5cc4515 --- /dev/null +++ b/interface/gitlink/projects/dataset/test_gitlink_repo_upload_dataset_file.yaml @@ -0,0 +1,52 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 数据集 + case_markers: + - gitlink + - repo + - dataset + - debug + - usefixtures: gitlink_login + +# 前提条件:当前存找一个仓库,仓库已经创建数据集 + +common_dependence: + setup: + interface: + - gitlink_projects_new_project_01 + - gitlink_repo_new_dataset_02 + - gitlink_repo_get_dataset_detail_01 + teardown: + interface: + - gitlink_projects_delete_project_01 + +case_info: +- + id: gitlink_repo_upload_dataset_file_01 + title: 上传数据集文件,上传成功 + severity: critical + run: false + url: /api/attachments.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + container_type: ProjectDataset + description: ${generate_paragraph(nb=5)} + container_id: ${dataset_container_id} + file: ${get_file_content('gitlinklogo3.jpg')} + files: + assert_response: + status_code: 200 + assertField: + expect_value: content_type + assert_type: contains + assert_sql: + extract: + type_jsonpath: + dataset_container_id: $.id + case_dependence: diff --git a/interface/gitlink/projects/settings/test_gitlink_get_repo_setting.yaml b/interface/gitlink/projects/settings/test_gitlink_get_repo_setting.yaml index d903fa3..a817451 100644 --- a/interface/gitlink/projects/settings/test_gitlink_get_repo_setting.yaml +++ b/interface/gitlink/projects/settings/test_gitlink_get_repo_setting.yaml @@ -38,10 +38,10 @@ case_info: assert_sql: extract: type_jsonpath: - repo_project_name: $.project_name - repo_project_identifier: $.project_identifier - repo_project_private: $.private - repo_project_description: $.project_description - repo_project_language_id: $.project_language_id - repo_project_category_id: $.project_category_id + repo_name: $.project_name + repo_identifier: $.project_identifier + repo_private: $.private + repo_description: $.project_description + repo_language_id: $.project_language_id + repo_category_id: $.project_category_id case_dependence: diff --git a/interface/gitlink/projects/settings/test_gitlink_update_private_repo_setting.yaml b/interface/gitlink/projects/settings/test_gitlink_update_private_repo_setting.yaml index 4168092..b2c4c4a 100644 --- a/interface/gitlink/projects/settings/test_gitlink_update_private_repo_setting.yaml +++ b/interface/gitlink/projects/settings/test_gitlink_update_private_repo_setting.yaml @@ -31,13 +31,13 @@ case_info: request_type: json payload: name: update-name-${generate_words} # 项目名称 - identifier: ${repo_project_identifier} # 项目标识 + identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 assertIdentifier: message: 断言接口返回的identifier - expect_value: ${repo_project_identifier} + expect_value: ${repo_identifier} assert_type: == type_jsonpath: $.identifier assertPrivate: @@ -65,14 +65,14 @@ case_info: cookies: request_type: json payload: - name: ${repo_project_name} # 项目名称 + name: ${repo_name} # 项目名称 identifier: update_${generate_identifier()}_${generate_identifier()} # 项目标识 files: assert_response: status_code: 200 assertName: message: 断言接口返回的name - expect_value: ${repo_project_name} + expect_value: ${repo_name} assert_type: == type_jsonpath: $.name assertPrivate: @@ -102,15 +102,15 @@ case_info: cookies: request_type: json payload: - name: ${repo_project_name} # 项目名称 - project_category_id: ${random.choice(${repo_project_category_ids})} # 项目类别ID - identifier: ${repo_project_identifier} # 项目标识 + name: ${repo_name} # 项目名称 + project_category_id: ${random.choice(${repo_category_ids})} # 项目类别ID + identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 assertIdentifier: message: 断言接口返回的identifier - expect_value: ${repo_project_identifier} + expect_value: ${repo_identifier} assert_type: == type_jsonpath: $.identifier assertPrivate: @@ -139,15 +139,15 @@ case_info: cookies: request_type: json payload: - name: ${repo_project_name} # 项目名称 - project_language_id: ${random.choice(${repo_project_language_ids})} # 项目语言ID - identifier: ${repo_project_identifier} # 项目标识 + name: ${repo_name} # 项目名称 + project_language_id: ${random.choice(${repo_language_ids})} # 项目语言ID + identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 assertIdentifier: message: 断言接口返回的identifier - expect_value: ${repo_project_identifier} + expect_value: ${repo_identifier} assert_type: == type_jsonpath: $.identifier assertPrivate: @@ -179,13 +179,13 @@ case_info: payload: name: ${repo_project_name} # 项目名称 private: False # 项目是否为私有项目 - identifier: ${repo_project_identifier} # 项目标识 + identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 assertMessage: message: 断言接口返回的identifier - expect_value: ${repo_project_identifier} + expect_value: ${repo_identifier} assert_type: == type_jsonpath: $.identifier assertPrivate: diff --git a/interface/gitlink/projects/settings/test_gitlink_update_public_repo_setting.yaml b/interface/gitlink/projects/settings/test_gitlink_update_public_repo_setting.yaml index eb6753d..065eaa1 100644 --- a/interface/gitlink/projects/settings/test_gitlink_update_public_repo_setting.yaml +++ b/interface/gitlink/projects/settings/test_gitlink_update_public_repo_setting.yaml @@ -31,13 +31,13 @@ case_info: request_type: json payload: name: update-name-${generate_words} # 项目名称 - identifier: ${repo_project_identifier} # 项目标识 + identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 assertIdentifier: message: 断言接口返回的identifier - expect_value: ${repo_project_identifier} + expect_value: ${repo_identifier} assert_type: == type_jsonpath: $.identifier assertPrivate: @@ -65,14 +65,14 @@ case_info: cookies: request_type: json payload: - name: ${repo_project_name} # 项目名称 + name: ${repo_name} # 项目名称 identifier: update_${generate_identifier()}_${generate_identifier()} # 项目标识 files: assert_response: status_code: 200 assertName: message: 断言接口返回的name - expect_value: ${repo_project_name} + expect_value: ${repo_name} assert_type: == type_jsonpath: $.name assertPrivate: @@ -102,15 +102,15 @@ case_info: cookies: request_type: json payload: - name: ${repo_project_name} # 项目名称 - project_category_id: ${random.choice(${repo_project_category_ids})} # 项目类别ID - identifier: ${repo_project_identifier} # 项目标识 + name: ${repo_name} # 项目名称 + project_category_id: ${random.choice(${repo_category_ids})} # 项目类别ID + identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 assertIdentifier: message: 断言接口返回的identifier - expect_value: ${repo_project_identifier} + expect_value: ${repo_identifier} assert_type: == type_jsonpath: $.identifier assertPrivate: @@ -140,14 +140,14 @@ case_info: request_type: json payload: name: ${repo_project_name} # 项目名称 - project_language_id: ${random.choice(${repo_project_language_ids})} # 项目语言ID - identifier: ${repo_project_identifier} # 项目标识 + project_language_id: ${random.choice(${repo_language_ids})} # 项目语言ID + identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 assertIdentifier: message: 断言接口返回的identifier - expect_value: ${repo_project_identifier} + expect_value: ${repo_identifier} assert_type: == type_jsonpath: $.identifier assertPrivate: @@ -176,15 +176,15 @@ case_info: cookies: request_type: json payload: - name: ${repo_project_name} # 项目名称 + name: ${repo_name} # 项目名称 private: True # 项目是否为私有项目 - identifier: ${repo_project_identifier} # 项目标识 + identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 assertIdentifier: message: 断言接口返回的identifier - expect_value: ${repo_project_identifier} + expect_value: ${repo_identifier} assert_type: == type_jsonpath: $.identifier assertPrivate: diff --git a/interface/gitlink/projects/settings/test_gitlink_get_repo_category.yaml b/interface/gitlink/projects/test_gitlink_get_repo_category.yaml similarity index 82% rename from interface/gitlink/projects/settings/test_gitlink_get_repo_category.yaml rename to interface/gitlink/projects/test_gitlink_get_repo_category.yaml index 576aa9a..372dab0 100644 --- a/interface/gitlink/projects/settings/test_gitlink_get_repo_category.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_category.yaml @@ -33,5 +33,7 @@ case_info: assert_sql: extract: type_jsonpath: - repo_project_category_ids: $.project_categories[*].id + repo_category_ids: $.project_categories[*].id + repo_category_id: $.project_categories[0].id + repo_category_name: $.project_categories[0].name case_dependence: diff --git a/interface/gitlink/projects/test_gitlink_get_ignores.yaml b/interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml similarity index 78% rename from interface/gitlink/projects/test_gitlink_get_ignores.yaml rename to interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml index cbefb40..69bc2c2 100644 --- a/interface/gitlink/projects/test_gitlink_get_ignores.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml @@ -9,7 +9,7 @@ case_common: # 用例数据 case_info: - - id: gitlink_projects_get_ignores_01 + id: gitlink_get_repo_ignores_01 title: 获取gitignore列表数据 severity: normal run: True @@ -25,4 +25,7 @@ case_info: assert_response: status_code: 200 assert_sql: - extract: \ No newline at end of file + extract: + type_jsonpath: + ignores_id: $.ignores[0].id + ignores_name: $.ignores[0].name \ No newline at end of file diff --git a/interface/gitlink/projects/settings/test_gitlink_get_repo_language.yaml b/interface/gitlink/projects/test_gitlink_get_repo_language.yaml similarity index 82% rename from interface/gitlink/projects/settings/test_gitlink_get_repo_language.yaml rename to interface/gitlink/projects/test_gitlink_get_repo_language.yaml index b5a5bed..361373d 100644 --- a/interface/gitlink/projects/settings/test_gitlink_get_repo_language.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_language.yaml @@ -33,5 +33,7 @@ case_info: assert_sql: extract: type_jsonpath: - repo_project_language_ids: $.project_languages[*].id + repo_language_ids: $.project_languages[*].id + repo_language_id: $.project_languages[0].id + repo_language_name: $.project_languages[0].name case_dependence: diff --git a/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml b/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml new file mode 100644 index 0000000..f3d95e2 --- /dev/null +++ b/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml @@ -0,0 +1,32 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 项目 + case_markers: + - gitlink + - usefixtures: gitlink_login + +# 用例数据 +case_info: +- + id: gitlink_get_repo_licenses_01 + title: 获取开源许可证列表数据 + severity: normal + run: True + url: /api/licenses.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: params + payload: + files: + assert_response: + status_code: 200 + assert_sql: + extract: + type_jsonpath: + licenses_ids: $.licenses[*].id + licenses_id: $.licenses[0].id + licenses_name: $.licenses[0].name \ No newline at end of file diff --git a/interface/gitlink/projects/test_gitlink_new_project.yaml b/interface/gitlink/projects/test_gitlink_new_project.yaml index e4558e6..202b794 100644 --- a/interface/gitlink/projects/test_gitlink_new_project.yaml +++ b/interface/gitlink/projects/test_gitlink_new_project.yaml @@ -11,6 +11,12 @@ case_common: # 放置公共依赖 (仅yaml用例支持,excel用例不支持) common_dependence: + setup: + interface: + - gitlink_get_repo_licenses_01 + - gitlink_get_repo_ignores_01 + - gitlink_get_repo_category_01 + - gitlink_get_repo_language_01 case_info: @@ -88,7 +94,7 @@ case_info: - id: gitlink_projects_new_project_03 title: 输入所有参数,新建项目成功 - run: false + run: true url: /api/projects.json method: POST headers: @@ -99,24 +105,23 @@ case_info: user_id: ${user_id} name: test_${generate_identifier()}_${generate_identifier()} repository_name: ${generate_identifier()}_test - description: + description: ${generate_paragraph()} private: true ignoreFlag: true - ignore_id: - ignore: + ignore_id: ${ignores_id} + ignore: ${ignores_name} licenseFlag: true - license_id: - license: + license_id: ${licenses_id} + license: ${licenses_name} categoreFlag: true - project_category_id: - project_category: + project_category_id: ${repo_category_id} + project_category: ${repo_category_name} languageFlag: true - project_language_id: - project_language: - blockchain: false - blockchain_token_all: 10000 - blockchain_init_token: - auth_password: + project_language_id: ${repo_language_id} + project_language: ${repo_language_name} +# blockchain: false +# blockchain_token_all: 10000 +# blockchain_init_token: files: assert_response: status_code: 200 diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_sidebar.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_sidebar.yaml index 5d9f337..f19a4fb 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_sidebar.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_sidebar.yaml @@ -16,7 +16,7 @@ case_info: title: 获取wiki库的sidebar信息 severity: normal run: True - url: ${wiki_host}/api/wiki/wikiPages + url: ${wiki_host}/api/wiki/getWiki method: GET headers: Content-Type: application/json; charset=utf-8; diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki.yaml index fa76956..ab722c5 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki.yaml @@ -8,7 +8,6 @@ case_common: - gitea - new_wiki - usefixtures: gitlink_login - - skip: 暂时跳过 common_dependence: @@ -49,5 +48,9 @@ case_info: assert_sql: extract: case_dependence: + setup: + interface: gitlink_repo_get_wiki_sidebar_01 teardown: - interface: gitlink_repo_delete_wiki_01 + interface: + - gitlink_repo_update_wiki_sidebar_01 +# - gitlink_repo_delete_wiki_01 diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki_sidebar.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki_sidebar.yaml index 1a432d0..fbbc630 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki_sidebar.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki_sidebar.yaml @@ -17,7 +17,7 @@ case_info: id: gitlink_repo_update_wiki_sidebar_01 title: 更新wiki库的sidebar severity: critical - run: True + run: false url: ${wiki_host}/api/wiki/updateWiki method: PUT headers: @@ -31,8 +31,8 @@ case_info: projectId: ${env_project_id} # 必填 gitlink项目id pageName: _Sidebar title: _Sidebar - message: # 选填,提交信息 - content_base64: + message: 更新sidebar文件 # 选填,提交信息 + content_base64: ${update_wiki_sidebar('${wiki_sidebar_content}', '${env_page_title}')} files: assert_response: status_code: 200 diff --git a/interface/pms/products/test_get_product_detail.yaml b/interface/pms/products/product/test_get_product_detail.yaml similarity index 81% rename from interface/pms/products/test_get_product_detail.yaml rename to interface/pms/products/product/test_get_product_detail.yaml index 5dba218..56d0e66 100644 --- a/interface/pms/products/test_get_product_detail.yaml +++ b/interface/pms/products/product/test_get_product_detail.yaml @@ -7,6 +7,10 @@ case_common: - pms_product - usefixtures: gitlink_login + +# 根据组织标识和产品标识,获取产品的详细信息 +# 前提条件:当前某组织下存在某产品 + case_info: - id: pms_get_product_detail_01 @@ -30,4 +34,4 @@ case_info: assert_sql: extract: type_jsonpath: - env_pms_product_name: $.data.productName \ No newline at end of file + pms_product_name: $.data.productName \ No newline at end of file diff --git a/interface/pms/products/test_get_product_user_list.yaml b/interface/pms/products/product/test_get_product_user_list.yaml similarity index 81% rename from interface/pms/products/test_get_product_user_list.yaml rename to interface/pms/products/product/test_get_product_user_list.yaml index 13dd2ad..3c23d03 100644 --- a/interface/pms/products/test_get_product_user_list.yaml +++ b/interface/pms/products/product/test_get_product_user_list.yaml @@ -7,6 +7,9 @@ case_common: - pms_product - usefixtures: gitlink_login +# 当前组织下,具有编辑产品权限角色的成员用户,可以被选择为产品负责人。 +# 该接口会自动筛选出这部分用户,并进行返回 + case_info: - id: pms_get_product_user_list_01 diff --git a/interface/pms/products/test_pms_delete_product.yaml b/interface/pms/products/product/test_pms_delete_product.yaml similarity index 87% rename from interface/pms/products/test_pms_delete_product.yaml rename to interface/pms/products/product/test_pms_delete_product.yaml index ad6f144..1de985b 100644 --- a/interface/pms/products/test_pms_delete_product.yaml +++ b/interface/pms/products/product/test_pms_delete_product.yaml @@ -7,9 +7,12 @@ case_common: - pms_product - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品 + common_dependence: setup: interface: + # 获取可选产品负责人列表, 用于后面新建产品 - pms_get_product_user_list_01 case_info: @@ -38,4 +41,3 @@ case_info: setup: interface: - pms_new_product_01 - - pms_get_product_list_by_name_02 diff --git a/interface/pms/products/test_pms_edit_product.yaml b/interface/pms/products/product/test_pms_edit_product.yaml similarity index 88% rename from interface/pms/products/test_pms_edit_product.yaml rename to interface/pms/products/product/test_pms_edit_product.yaml index 7782ee4..ebeab01 100644 --- a/interface/pms/products/test_pms_edit_product.yaml +++ b/interface/pms/products/product/test_pms_edit_product.yaml @@ -7,9 +7,12 @@ case_common: - pms_product - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品 + common_dependence: setup: interface: + # 获取可选产品负责人列表, 用于后面新建/编辑产品 - pms_get_product_user_list_01 case_info: @@ -40,8 +43,10 @@ case_info: extract: case_dependence: setup: + # 新建产品 interface: pms_new_product_01 teardown: + # 删除产品 interface: pms_delete_product_01 - @@ -98,6 +103,8 @@ case_info: extract: case_dependence: + +# 本用例是新建一个产品,编辑这个产品的名称为已存在的产品(测试环境预先准备的产品)的名称,预期更新失败后,删除新建的产品 - id: pms_edit_product_04 title: 企业下编辑产品接口 - 产品名称重复,更新失败 @@ -126,7 +133,10 @@ case_info: case_dependence: setup: interface: + # 新建一个产品 - pms_new_product_01 + # 获取测试环境预先准备的产品的产品名称 - pms_get_product_detail_01 teardown: + # 删除新建的产品 interface: pms_delete_product_01 \ No newline at end of file diff --git a/interface/pms/products/test_pms_get_product_list.yaml b/interface/pms/products/product/test_pms_get_product_list.yaml similarity index 97% rename from interface/pms/products/test_pms_get_product_list.yaml rename to interface/pms/products/product/test_pms_get_product_list.yaml index f73f340..780ec74 100644 --- a/interface/pms/products/test_pms_get_product_list.yaml +++ b/interface/pms/products/product/test_pms_get_product_list.yaml @@ -7,6 +7,8 @@ case_common: - pms_product - usefixtures: gitlink_login +# 前提条件:当前存在某组织 + case_info: - id: pms_get_product_list_01 diff --git a/interface/pms/products/test_pms_new_product.yaml b/interface/pms/products/product/test_pms_new_product.yaml similarity index 85% rename from interface/pms/products/test_pms_new_product.yaml rename to interface/pms/products/product/test_pms_new_product.yaml index 04d2e51..900fbf5 100644 --- a/interface/pms/products/test_pms_new_product.yaml +++ b/interface/pms/products/product/test_pms_new_product.yaml @@ -5,12 +5,15 @@ case_common: case_markers: - pms - pms_product - - repeat(1) - usefixtures: gitlink_login +# 前提条件:当前存在某组织 +# 新建产品接口:产品名称,产品负责人,产品描述均为必填项。 + common_dependence: setup: interface: + # 获取可选产品负责人列表 - pms_get_product_user_list_01 case_info: @@ -26,10 +29,9 @@ case_info: cookies: ${cookies} request_type: json payload: - pmsEnterpriseIdentifier: ${env_enterprise_identifier} - productName: 新产品_${generate_company_name(lan='zh', fix='pre')}_${generate_words} - productAssigneeGitlinkIds: ${product_user} - productDescription: ${generate_paragraph} + productName: 新产品_${generate_company_name(lan='zh', fix='pre')}_${generate_words} # 产品名称, 50字,具有唯一性 + productAssigneeGitlinkIds: ${product_user} # 产品负责人,多选 + productDescription: ${generate_paragraph} # 产品描述, 200字 files: assert_response: status_code: 200 @@ -44,6 +46,7 @@ case_info: case_dependence: teardown: interface: + # 清理数据:删除产品 - pms_delete_product_01 - @@ -58,7 +61,6 @@ case_info: cookies: ${cookies} request_type: json payload: - pmsEnterpriseIdentifier: ${env_enterprise_identifier} productName: ${faker.pystr(max_chars=51)} productAssigneeGitlinkIds: ${product_user} productDescription: ${generate_paragraph} @@ -86,7 +88,6 @@ case_info: cookies: ${cookies} request_type: json payload: - pmsEnterpriseIdentifier: ${env_enterprise_identifier} productName: 新产品_${generate_company_name(lan='zh', fix='pre')}_${generate_words} productAssigneeGitlinkIds: ${product_user} productDescription: ${faker.pystr(max_chars=201)} @@ -114,8 +115,7 @@ case_info: cookies: ${cookies} request_type: json payload: - pmsEnterpriseIdentifier: ${env_enterprise_identifier} - productName: ${env_pms_product_name} + productName: ${pms_product_name} productAssigneeGitlinkIds: ${product_user} productDescription: ${generate_paragraph} files: @@ -127,4 +127,6 @@ case_info: assert_type: contains assert_sql: extract: - case_dependence: \ No newline at end of file + case_dependence: + setup: + interface: pms_get_product_detail_01 \ No newline at end of file diff --git a/interface/pms/products/test_pms_operate_top_product.yaml b/interface/pms/products/product/test_pms_operate_top_product.yaml similarity index 67% rename from interface/pms/products/test_pms_operate_top_product.yaml rename to interface/pms/products/product/test_pms_operate_top_product.yaml index ed8ce2a..52c988a 100644 --- a/interface/pms/products/test_pms_operate_top_product.yaml +++ b/interface/pms/products/product/test_pms_operate_top_product.yaml @@ -7,11 +7,16 @@ case_common: - pms_product - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品 +# 置顶和取消置顶实际是同一个接口,置顶后调用一下就取消置顶,未置顶调用一下就置顶。确切需要断言是否成功,最好调用数据库查询,获取调用接口辅助查询。这里未作这种类型断言。 + common_dependence: setup: interface: + # 获取可选产品负责人列表(新建产品时需要该接口作为前置条件) - pms_get_product_user_list_01 +# 前提提交:该产品未置顶 case_info: - id: pms_operate_top_product_01 title: 企业下置顶产品接口 @@ -36,12 +41,15 @@ case_info: case_dependence: setup: interface: + # 新建产品,获取产品标识,用来置顶该产品 - pms_new_product_01 - - pms_get_product_list_by_name_02 teardown: interface: + # 清理测试数据:删除产品 - pms_delete_product_01 + +# 前提提交:该产品已置顶 - id: pms_operate_top_product_02 title: 企业下取消置顶产品接口 run: True @@ -65,8 +73,11 @@ case_info: case_dependence: setup: interface: + # 新建产品,获取产品标识,用来置顶/取消置顶该产品 - pms_new_product_01 - - pms_get_product_list_by_name_02 + # 置顶产品,用于后续取消置顶 + - pms_operate_top_product_01 teardown: interface: + # 清理测试数据:删除产品 - pms_delete_product_01 \ No newline at end of file diff --git a/interface/pms/products/product_module/test_pms_delete_product_module.yaml b/interface/pms/products/product_module/test_pms_delete_product_module.yaml index 2474a49..f707fd3 100644 --- a/interface/pms/products/product_module/test_pms_delete_product_module.yaml +++ b/interface/pms/products/product_module/test_pms_delete_product_module.yaml @@ -8,6 +8,8 @@ case_common: - product_module - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品, 产品下存在模块(父模块/子模块) + case_info: - id: pms_delete_product_module_01 @@ -36,7 +38,7 @@ case_info: - pms_new_product_module_01 - - id: pms_delete_product_module_02 + id: pms_delete_product_children_module_02 title: 产品下删除子级模块接口 - 删除成功 run: True severity: blocker @@ -87,4 +89,8 @@ case_info: setup: interface: - pms_new_product_module_01 - - pms_new_product_module_children_02 \ No newline at end of file + - pms_new_product_module_children_02 + teardown: + interface: + - pms_delete_product_children_module_02 + - pms_delete_product_module_01 \ No newline at end of file diff --git a/interface/pms/products/product_module/test_pms_edit_product_module.yaml b/interface/pms/products/product_module/test_pms_edit_product_module.yaml index 1f899d0..6254f5e 100644 --- a/interface/pms/products/product_module/test_pms_edit_product_module.yaml +++ b/interface/pms/products/product_module/test_pms_edit_product_module.yaml @@ -8,6 +8,8 @@ case_common: - product_module - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品, 产品下存在模块(父模块/子模块) + common_dependence: setup: interface: @@ -71,6 +73,9 @@ case_info: setup: interface: - pms_new_product_module_children_02 + teardown: + interface: + - pms_delete_product_children_module_02 - id: pms_edit_product_module_03 @@ -84,9 +89,9 @@ case_info: cookies: ${cookies} request_type: json payload: - id: ${product_module_id} + id: ${product_module_children_id} moduleName: ${faker.pystr(max_chars=31)} - parentId: 0 + parentId: ${product_module_id} files: assert_response: status_code: 200 @@ -97,6 +102,12 @@ case_info: assert_sql: extract: case_dependence: + setup: + interface: + - pms_new_product_module_children_02 + teardown: + interface: + - pms_delete_product_children_module_02 - @@ -111,9 +122,9 @@ case_info: cookies: ${cookies} request_type: json payload: - id: ${product_module_id} + id: ${product_module_children_id} moduleName: - parentId: 0 + parentId: ${product_module_id} files: assert_response: status_code: 200 @@ -124,6 +135,12 @@ case_info: assert_sql: extract: case_dependence: + setup: + interface: + - pms_new_product_module_children_02 + teardown: + interface: + - pms_delete_product_children_module_02 - @@ -138,9 +155,9 @@ case_info: cookies: ${cookies} request_type: json payload: - id: ${product_module_id} + id: ${product_module_children_id} moduleName: ${product_module_name} - parentId: 0 + parentId: ${product_module_id} files: assert_response: status_code: 200 @@ -154,4 +171,7 @@ case_info: setup: interface: - pms_get_product_module_detail_01 - - pms_new_product_module_01 + - pms_new_product_module_children_02 + teardown: + interface: + - pms_delete_product_children_module_02 \ No newline at end of file diff --git a/interface/pms/products/product_module/test_pms_new_product_module.yaml b/interface/pms/products/product_module/test_pms_new_product_module.yaml index 9a4d61e..c402609 100644 --- a/interface/pms/products/product_module/test_pms_new_product_module.yaml +++ b/interface/pms/products/product_module/test_pms_new_product_module.yaml @@ -8,6 +8,7 @@ case_common: - product_module - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品 case_info: - @@ -24,7 +25,7 @@ case_info: payload: pmsProductIdentifier: ${env_pms_product_identifier} moduleName: ${generate_words(lan='zh', nb=2)} - parentId: 0 +# parentId: 0 # 不传或者传0,都认为是0 files: assert_response: status_code: 200 @@ -41,6 +42,8 @@ case_info: interface: - pms_delete_product_module_01 + +# 前提条件:当前产品下存在父模块 - id: pms_new_product_module_children_02 title: 产品下新建子级模块接口 - 新建成功 @@ -72,7 +75,7 @@ case_info: interface: pms_new_product_module_01 teardown: interface: - - pms_delete_product_module_02 + - pms_delete_product_children_module_02 - pms_delete_product_module_01 - diff --git a/interface/pms/products/product_plan/test_get_product_plan_detail.yaml b/interface/pms/products/product_plan/test_get_product_plan_detail.yaml index 73b1151..e4c615e 100644 --- a/interface/pms/products/product_plan/test_get_product_plan_detail.yaml +++ b/interface/pms/products/product_plan/test_get_product_plan_detail.yaml @@ -8,6 +8,8 @@ case_common: - product_plan - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品, 产品下存在计划 + case_info: - id: pms_get_product_plan_detail_01 diff --git a/interface/pms/products/product_plan/test_pms_delete_product_plan.yaml b/interface/pms/products/product_plan/test_pms_delete_product_plan.yaml index fe5c280..5774d84 100644 --- a/interface/pms/products/product_plan/test_pms_delete_product_plan.yaml +++ b/interface/pms/products/product_plan/test_pms_delete_product_plan.yaml @@ -8,6 +8,9 @@ case_common: - product_plan - usefixtures: gitlink_login + +# 前提条件:当前某组织下存在某产品, 产品下存在计划 + case_info: - id: pms_delete_product_plan_01 diff --git a/interface/pms/products/product_plan/test_pms_edit_product_plan.yaml b/interface/pms/products/product_plan/test_pms_edit_product_plan.yaml index 5ebcfd6..f49680b 100644 --- a/interface/pms/products/product_plan/test_pms_edit_product_plan.yaml +++ b/interface/pms/products/product_plan/test_pms_edit_product_plan.yaml @@ -8,10 +8,14 @@ case_common: - product_plan - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品, 产品下存在计划 + common_dependence: setup: interface: - pms_new_product_plan_01 + teardown: + interface: pms_delete_product_plan_01 case_info: - diff --git a/interface/pms/products/product_plan/test_pms_get_product_plan_list.yaml b/interface/pms/products/product_plan/test_pms_get_product_plan_list.yaml index 9dde4a6..a7b6dfe 100644 --- a/interface/pms/products/product_plan/test_pms_get_product_plan_list.yaml +++ b/interface/pms/products/product_plan/test_pms_get_product_plan_list.yaml @@ -8,6 +8,8 @@ case_common: - product_plan - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品, 产品下存在计划 + case_info: - id: pms_get_product_plan_list_01 diff --git a/interface/pms/products/product_plan/test_pms_new_product_plan.yaml b/interface/pms/products/product_plan/test_pms_new_product_plan.yaml index a64cefd..3e22bb1 100644 --- a/interface/pms/products/product_plan/test_pms_new_product_plan.yaml +++ b/interface/pms/products/product_plan/test_pms_new_product_plan.yaml @@ -8,6 +8,8 @@ case_common: - product_plan - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品, 产品下存在计划 + case_info: - id: pms_new_product_plan_01 diff --git a/interface/pms/products/product_requirement/test_pms_delete_product_requirement.yaml b/interface/pms/products/product_requirement/test_pms_delete_product_requirement.yaml index 19a1beb..b9293ec 100644 --- a/interface/pms/products/product_requirement/test_pms_delete_product_requirement.yaml +++ b/interface/pms/products/product_requirement/test_pms_delete_product_requirement.yaml @@ -8,6 +8,7 @@ case_common: - product_requirement - usefixtures: gitlink_login +# 前提条件: 组织下存在产品,产品下存在产品需求 case_info: - diff --git a/interface/pms/products/product_requirement/test_pms_edit_product_requirement.yaml b/interface/pms/products/product_requirement/test_pms_edit_product_requirement.yaml index 4840679..100534a 100644 --- a/interface/pms/products/product_requirement/test_pms_edit_product_requirement.yaml +++ b/interface/pms/products/product_requirement/test_pms_edit_product_requirement.yaml @@ -8,6 +8,8 @@ case_common: - product_requirement - usefixtures: gitlink_login +# 前提条件: 组织下存在产品,产品下存在产品需求 + common_dependence: setup: interface: @@ -18,7 +20,7 @@ common_dependence: - pms_new_project_03 - pms_new_product_module_01 - pms_new_product_plan_01 - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_new_product_requirement_02 teardown: interface: @@ -65,7 +67,6 @@ case_info: setup: interface: - pms_get_project_list_by_product_03 - - pms_upload_file_01 - id: pms_edit_product_requirement_02 @@ -160,9 +161,6 @@ case_info: assert_sql: extract: case_dependence: - setup: - interface: - - pms_upload_file_01 - id: pms_edit_product_requirement_05 @@ -199,9 +197,6 @@ case_info: assert_sql: extract: case_dependence: - setup: - interface: - - pms_upload_file_01 - id: pms_edit_product_requirement_06 @@ -227,7 +222,7 @@ case_info: endTime: ${generate_time_after_week} pmsProductPlanId: ${product_plan_id} pmsProjectId: ${pms_product_project_id} - pmsProductIdentifier: ${env_pms_product_identifier} + pmsProductIdentifier: ${env_pms_product_identifier} files: assert_response: status_code: 200 @@ -237,7 +232,4 @@ case_info: assert_type: == assert_sql: extract: - case_dependence: - setup: - interface: - - pms_upload_file_01 \ No newline at end of file + case_dependence: \ No newline at end of file diff --git a/interface/pms/products/product_requirement/test_pms_get_product_requirement_list.yaml b/interface/pms/products/product_requirement/test_pms_get_product_requirement_list.yaml index 2489899..7c6b7f6 100644 --- a/interface/pms/products/product_requirement/test_pms_get_product_requirement_list.yaml +++ b/interface/pms/products/product_requirement/test_pms_get_product_requirement_list.yaml @@ -8,6 +8,8 @@ case_common: - product_requirement - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品 + case_info: - id: pms_get_product_requirement_list_01 diff --git a/interface/pms/products/product_requirement/test_pms_get_product_requirement_plans.yaml b/interface/pms/products/product_requirement/test_pms_get_product_requirement_plans.yaml deleted file mode 100644 index b69e2cc..0000000 --- a/interface/pms/products/product_requirement/test_pms_get_product_requirement_plans.yaml +++ /dev/null @@ -1,36 +0,0 @@ -case_common: - allure_epic: 项目管理 - allure_feature: 产品 - allure_story: 产品需求 - case_markers: - - pms - - pms_product - - product_requirement - - usefixtures: gitlink_login - -case_info: -- - id: pms_get_product_requirement_plans_01 - title: 获取产品需求下可选计划列表接口 - run: True - severity: critical - url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProductPlan/list - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: params - payload: - pmsProductIdentifier: ${env_pms_product_identifier} - files: - assert_response: - status_code: 200 - assertMessage: - type_jsonpath: $.msg - expect_value: 查询成功 - assert_type: == - assert_sql: - extract: - type_jsonpath: - plan_ids: $.rows[*].id - case_dependence: \ No newline at end of file diff --git a/interface/pms/products/product_requirement/test_pms_new_product_requirement.yaml b/interface/pms/products/product_requirement/test_pms_new_product_requirement.yaml index 0a87c5e..3f57dd0 100644 --- a/interface/pms/products/product_requirement/test_pms_new_product_requirement.yaml +++ b/interface/pms/products/product_requirement/test_pms_new_product_requirement.yaml @@ -8,22 +8,23 @@ case_common: - product_requirement - usefixtures: gitlink_login +# 前提条件:当前某组织下存在某产品 + common_dependence: setup: interface: - - pms_get_project_user_list_01 - - pms_get_enterprise_user_list_01 - - pms_new_product_module_01 - - pms_new_product_plan_01 + - pms_get_enterprise_user_list_01 # 获取组织下的成员接口 + - pms_new_product_module_01 # 新建产品模块 + - pms_new_product_plan_01 # 新建产品计划 teardown: interface: - - pms_delete_product_module_01 - - pms_delete_product_plan_01 + - pms_delete_product_module_01 # 删除产品模块 + - pms_delete_product_plan_01 # 删除产品计划 case_info: - id: pms_new_product_requirement_01 - title: 产品下新建需求接口 - 新建成功 + title: 产品下新建需求接口,所有参数全部填写 - 新建成功 run: True severity: blocker url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProductRequirement @@ -42,7 +43,7 @@ case_info: startTime: ${generate_time(fmt='%Y-%m-%d')} endTime: ${generate_time_after_week} pmsProductPlanId: ${product_plan_id} - pmsProjectId: ${pms_product_project_id} + pmsProjectId: ${env_pms_project_id} fileIdentifiers: ${file_identifier} files: assert_response: @@ -58,8 +59,9 @@ case_info: case_dependence: setup: interface: - - pms_get_project_list_by_product_03 - - pms_upload_file_01 + - pms_upload_file_product_01 + - pms_get_project_detail_01 # 获取项目详情,方便后续编辑项目,为项目关联产品做准备 + - pms_edit_project_related_product_07 # 项目关联产品,产品需求可选择关联该项目 - id: pms_new_product_requirement_02 @@ -93,7 +95,7 @@ case_info: - id: pms_new_product_requirement_03 title: 产品下新建需求接口 - 模块传-1, 新建失败 - run: True + run: true severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProductRequirement method: POST @@ -121,7 +123,7 @@ case_info: - id: pms_new_product_requirement_04 title: 产品下新建需求接口 - 需求名称长度201,新建失败 - run: True + run: true severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProductRequirement method: POST @@ -148,7 +150,7 @@ case_info: - id: pms_new_product_requirement_05 title: 产品下新建需求接口 - 需求名称为空,新建失败 - run: True + run: true severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProductRequirement method: POST @@ -174,7 +176,7 @@ case_info: - id: pms_new_product_requirement_06 title: 产品下新建需求接口 - 所选项目未关联产品,新建失败 - run: True + run: true severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProductRequirement method: POST @@ -187,7 +189,7 @@ case_info: title: 新需求 - ${generate_paragraph(lan='zh',nb=1)} content: ${generate_paragraph(lan='zh', nb=10)} priorityId: ${random.choice([5,6,7,8])} - pmsProjectId: ${pms_project_id} + pmsProjectId: ${pms_project_id} # 项目 files: assert_response: status_code: 200 @@ -200,9 +202,14 @@ case_info: case_dependence: setup: interface: + # 获取可选项目负责人列表 + - pms_get_project_user_list_01 + # 新建项目 - pms_new_project_02 + # 获取项目id - pms_get_project_list_by_name_02 teardown: interface: + # 清除数据:删除项目 - pms_delete_project_01 diff --git a/interface/pms/products/product_requirement/test_pms_pms_batch_edit_product_requirement.yaml b/interface/pms/products/product_requirement/test_pms_pms_batch_edit_product_requirement.yaml index d8c691b..e405f4d 100644 --- a/interface/pms/products/product_requirement/test_pms_pms_batch_edit_product_requirement.yaml +++ b/interface/pms/products/product_requirement/test_pms_pms_batch_edit_product_requirement.yaml @@ -44,6 +44,6 @@ case_info: - pms_get_product_module_list_03 - pms_get_enterprise_user_list_01 - pms_get_product_requirement_tag_list_by_name_02 - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_new_product_requirement_02 - pms_new_product_plan_01 \ No newline at end of file diff --git a/interface/pms/products/product_requirement_journal/test_pms_add_journal.yaml b/interface/pms/products/product_requirement_journal/test_pms_add_journal.yaml index cb6d6ee..9adb908 100644 --- a/interface/pms/products/product_requirement_journal/test_pms_add_journal.yaml +++ b/interface/pms/products/product_requirement_journal/test_pms_add_journal.yaml @@ -9,6 +9,8 @@ case_common: - journal - usefixtures: gitlink_login +# 前提条件: 组织下存在产品,产品下存在产品需求 + common_dependence: setup: interface: @@ -43,7 +45,7 @@ case_info: case_dependence: setup: interface: - - pms_upload_file_01 + - pms_upload_file_product_01 - id: pms_add_journal_reply_02 title: 产品需求下的评论添加回复 @@ -74,7 +76,7 @@ case_info: case_dependence: setup: interface: - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_add_journal_01 - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_get_journal_list_01 \ No newline at end of file diff --git a/interface/pms/products/product_requirement_journal/test_pms_delete_journal.yaml b/interface/pms/products/product_requirement_journal/test_pms_delete_journal.yaml index 9c3d1dc..1de6bfc 100644 --- a/interface/pms/products/product_requirement_journal/test_pms_delete_journal.yaml +++ b/interface/pms/products/product_requirement_journal/test_pms_delete_journal.yaml @@ -9,6 +9,8 @@ case_common: - journal - usefixtures: gitlink_login +# 前提条件: 组织下存在产品,产品下存在产品需求, 需求下存在评论 + common_dependence: setup: interface: diff --git a/interface/pms/products/product_requirement_journal/test_pms_edit_journal.yaml b/interface/pms/products/product_requirement_journal/test_pms_edit_journal.yaml index c609fda..453b673 100644 --- a/interface/pms/products/product_requirement_journal/test_pms_edit_journal.yaml +++ b/interface/pms/products/product_requirement_journal/test_pms_edit_journal.yaml @@ -9,6 +9,8 @@ case_common: - journal - usefixtures: gitlink_login +# 前提条件: 组织下存在产品,产品下存在产品需求, 需求下存在评论 + common_dependence: setup: interface: diff --git a/interface/pms/products/product_requirement_journal/test_pms_get_journal_list.yaml b/interface/pms/products/product_requirement_journal/test_pms_get_journal_list.yaml index 5772a39..c106294 100644 --- a/interface/pms/products/product_requirement_journal/test_pms_get_journal_list.yaml +++ b/interface/pms/products/product_requirement_journal/test_pms_get_journal_list.yaml @@ -9,6 +9,8 @@ case_common: - journal - usefixtures: gitlink_login +# 前提条件: 组织下存在产品,产品下存在产品需求, 需求下存在评论 + case_info: - id: pms_get_journal_list_01 diff --git a/interface/pms/projects/test_get_project_user_list.yaml b/interface/pms/projects/project/test_get_project_user_list.yaml similarity index 92% rename from interface/pms/projects/test_get_project_user_list.yaml rename to interface/pms/projects/project/test_get_project_user_list.yaml index edd23d8..bbd1059 100644 --- a/interface/pms/projects/test_get_project_user_list.yaml +++ b/interface/pms/projects/project/test_get_project_user_list.yaml @@ -7,6 +7,9 @@ case_common: - pms_product - usefixtures: gitlink_login + +# 前提条件:当前存在组织, 组织下存在项目 + case_info: - id: pms_get_project_user_list_01 diff --git a/interface/pms/projects/test_pms_delete_project.yaml b/interface/pms/projects/project/test_pms_delete_project.yaml similarity index 76% rename from interface/pms/projects/test_pms_delete_project.yaml rename to interface/pms/projects/project/test_pms_delete_project.yaml index d30f02c..7cb543f 100644 --- a/interface/pms/projects/test_pms_delete_project.yaml +++ b/interface/pms/projects/project/test_pms_delete_project.yaml @@ -7,18 +7,24 @@ case_common: - pms_project - usefixtures: gitlink_login +# 前提条件:当前存在组织, 组织下存在项目 + common_dependence: setup: interface: + # 获取可选项目负责人列表 - pms_get_project_user_list_01 + # 获取组织下成员,可选择作为项目成员 - pms_get_enterprise_user_list_01 + # 新建项目 - pms_new_project_02 + # 根据项目名称,获取项目id - pms_get_project_list_by_name_02 case_info: - id: pms_delete_project_01 - title: 企业下删除项目接口 + title: 组织下删除项目接口 run: True severity: blocker url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject/${pms_project_id} diff --git a/interface/pms/projects/test_pms_edit_project.yaml b/interface/pms/projects/project/test_pms_edit_project.yaml similarity index 69% rename from interface/pms/projects/test_pms_edit_project.yaml rename to interface/pms/projects/project/test_pms_edit_project.yaml index 5dc7534..ec867c3 100644 --- a/interface/pms/projects/test_pms_edit_project.yaml +++ b/interface/pms/projects/project/test_pms_edit_project.yaml @@ -7,20 +7,28 @@ case_common: - pms_project - usefixtures: gitlink_login + +# 前提条件:当前存在组织, 组织下存在项目 + common_dependence: setup: interface: + # 获取可选项目负责人列表 - pms_get_project_user_list_01 + # 获取组织下成员,可选择作为项目成员 - pms_get_enterprise_user_list_01 + # 新建项目 - pms_new_project_02 + # 根据项目名称,获取项目id - pms_get_project_list_by_name_02 teardown: interface: + # 清理数据:删除项目 - pms_delete_project_01 case_info: - id: pms_edit_project_01 - title: 企业下编辑项目接口 - 更新成功 + title: 组织下编辑项目接口 - 更新成功 run: True severity: blocker url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -52,11 +60,16 @@ case_info: extract: case_dependence: setup: + # 组织下新建仓库,便于项目关联仓库 interface: pms_new_repo_01 + teardown: + interface: + # 清理数据:删除仓库 + - pms_delete_repo_01 - id: pms_edit_project_03 - title: 企业下编辑项目接口 - 项目名称长度51,编辑失败 + title: 组织下编辑项目接口 - 项目名称长度51,编辑失败 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -83,7 +96,7 @@ case_info: - id: pms_edit_project_04 - title: 企业下编辑项目接口 - 项目名称为空,编辑失败 + title: 组织下编辑项目接口 - 项目名称为空,编辑失败 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -110,7 +123,7 @@ case_info: - id: pms_edit_project_05 - title: 企业下编辑项目接口 - 项目简介长度201,编辑失败 + title: 组织下编辑项目接口 - 项目简介长度201,编辑失败 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -138,7 +151,7 @@ case_info: - id: pms_edit_project_06 - title: 企业下编辑项目接口 - 结束时间晚于开始时间,编辑失败 + title: 组织下编辑项目接口 - 结束时间晚于开始时间,编辑失败 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -164,4 +177,40 @@ case_info: assert_type: == assert_sql: extract: - case_dependence: \ No newline at end of file + case_dependence: + + + - id: pms_edit_project_related_product_07 + title: 组织下编辑项目接口, 项目关联产品,关联成功 # 关联的是测试环境预置的产品 + run: True + severity: blocker + url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: json + payload: + pmsEnterpriseId: ${env_enterprise_id} + id: ${env_pms_project_id} + status: ${pms_project_status} + projectName: ${pms_project_name} + projectAssigneeId: ${pms_project_assignee_id} + projectDescription: ${pms_project_description} + pmsProductId: ${env_pms_product_id} + pmsProjectMemberIds: ${list_to_str(${pms_project_member_ids})} + projectRepositoryIds: ${list_to_str(${pms_project_repo_ids})} + startTime: ${pms_project_start_time} + endTime: ${pms_project_end_time} + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assert_sql: + extract: + case_dependence: + setup: + interface: pms_get_project_detail_01 \ No newline at end of file diff --git a/interface/pms/projects/project/test_pms_get_project_detail.yaml b/interface/pms/projects/project/test_pms_get_project_detail.yaml new file mode 100644 index 0000000..834e296 --- /dev/null +++ b/interface/pms/projects/project/test_pms_get_project_detail.yaml @@ -0,0 +1,43 @@ +case_common: + allure_epic: 项目管理 + allure_feature: 项目 + allure_story: 项目 + case_markers: + - pms + - pms_project + - usefixtures: gitlink_login + +# 前提条件:当前存在组织, 组织下存在项目 + +case_info: +- + id: pms_get_project_detail_01 + title: 企业下获取项目详情接口 + run: True + severity: normal + url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject/${env_pms_project_id} + method: GET + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: params + payload: + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assert_sql: + extract: + type_jsonpath: + pms_project_status: $.data.status + pms_project_name: $.data.projectName + pms_project_description: $.data.projectDescription + pms_project_assignee_id: $.data.projectAssignee.gitlinkUserId + pms_project_member_ids: $.data.projectMembers[*].gitlinkUserId + pms_project_start_time: $.data.startTime + pms_project_end_time: $.data.endTime + pms_project_repo_ids: $.data.projectRepos.projects[*].id + case_dependence: \ No newline at end of file diff --git a/interface/pms/projects/test_pms_get_project_list.yaml b/interface/pms/projects/project/test_pms_get_project_list.yaml similarity index 89% rename from interface/pms/projects/test_pms_get_project_list.yaml rename to interface/pms/projects/project/test_pms_get_project_list.yaml index af5e9e4..dcc39e3 100644 --- a/interface/pms/projects/test_pms_get_project_list.yaml +++ b/interface/pms/projects/project/test_pms_get_project_list.yaml @@ -7,10 +7,13 @@ case_common: - pms_project - usefixtures: gitlink_login + +# 前提条件:当前存在组织, 组织下存在项目 + case_info: - id: pms_get_project_list_01 - title: 企业下获取项目列表接口 + title: 组织下获取项目列表接口 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject/list @@ -37,7 +40,7 @@ case_info: - id: pms_get_project_list_by_name_02 - title: 企业下获取项目列表接口 - 项目关键字搜索 + title: 组织下获取项目列表接口 - 项目关键字搜索 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject/list @@ -66,7 +69,7 @@ case_info: - id: pms_get_project_list_by_product_03 - title: 企业下获取项目列表接口 - 获取从属于产品的项目 + title: 组织下获取项目列表接口 - 获取从属于产品的项目 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject/list diff --git a/interface/pms/projects/test_pms_new_project.yaml b/interface/pms/projects/project/test_pms_new_project.yaml similarity index 87% rename from interface/pms/projects/test_pms_new_project.yaml rename to interface/pms/projects/project/test_pms_new_project.yaml index bf91629..18ae296 100644 --- a/interface/pms/projects/test_pms_new_project.yaml +++ b/interface/pms/projects/project/test_pms_new_project.yaml @@ -7,15 +7,20 @@ case_common: - pms_project - usefixtures: gitlink_login + +# 前提条件:当前存在组织 + common_dependence: setup: interface: - - pms_get_enterprise_user_list_01 + # 获取可选项目负责人列表 - pms_get_project_user_list_01 + # 获取组织下成员,可选择作为项目成员 + - pms_get_enterprise_user_list_01 case_info: - id: pms_new_project_01 - title: 企业下新建项目接口 - 新建成功 + title: 组织下新建项目接口(全部参数均填写) - 新建成功 run: True severity: blocker url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -49,11 +54,13 @@ case_info: - pms_new_repo_01 teardown: interface: + # 根据名称获取项目id - pms_get_project_list_by_name_02 + # 清除数据:删除项目 - pms_delete_project_01 - id: pms_new_project_02 - title: 企业下新建项目接口 - 仅填写必填参数,新建成功 + title: 组织下新建项目接口 - 仅填写必填参数,新建成功 run: True severity: blocker url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -78,12 +85,13 @@ case_info: case_dependence: teardown: interface: + # 根据名称获取项目id - pms_get_project_list_by_name_02 + # 清除数据:删除项目 - pms_delete_project_01 - - id: pms_new_project_03 - title: 企业下新建项目接口 - 新建项目时关联产品,新建成功 + title: 组织下新建项目接口 - 新建项目时关联产品,新建成功 run: True severity: blocker url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -109,12 +117,14 @@ case_info: case_dependence: teardown: interface: + # 根据名称获取项目id - pms_get_project_list_by_name_02 + # 清除数据:删除项目 - pms_delete_project_01 - id: pms_new_project_04 - title: 企业下新建项目接口 - 项目名称长度51,新建失败 + title: 组织下新建项目接口 - 项目名称长度51,新建失败 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -140,7 +150,7 @@ case_info: - id: pms_new_project_05 - title: 企业下新建项目接口 - 项目名称为空,新建失败 + title: 组织下新建项目接口 - 项目名称为空,新建失败 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -166,7 +176,7 @@ case_info: - id: pms_new_project_06 - title: 企业下新建项目接口 - 项目简介长度201,新建失败 + title: 组织下新建项目接口 - 项目简介长度201,新建失败 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -193,7 +203,7 @@ case_info: - id: pms_new_project_07 - title: 企业下新建项目接口 - 结束时间晚于开始时间,新建失败 + title: 组织下新建项目接口 - 结束时间晚于开始时间,新建失败 run: True severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject diff --git a/interface/pms/projects/test_pms_top_project.yaml b/interface/pms/projects/project/test_pms_top_project.yaml similarity index 81% rename from interface/pms/projects/test_pms_top_project.yaml rename to interface/pms/projects/project/test_pms_top_project.yaml index 7ba72c9..2523b09 100644 --- a/interface/pms/projects/test_pms_top_project.yaml +++ b/interface/pms/projects/project/test_pms_top_project.yaml @@ -7,15 +7,19 @@ case_common: - pms_project - usefixtures: gitlink_login +# 前提条件:当前存在组织, 组织下存在项目 + common_dependence: setup: interface: + # 获取可选项目负责人列表 - pms_get_project_user_list_01 + # 获取组织下成员,可选择作为项目成员 - pms_get_enterprise_user_list_01 case_info: - id: pms_top_project_01 - title: 企业下置顶项目接口 + title: 组织下置顶项目接口 run: true severity: critical url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -39,14 +43,17 @@ case_info: case_dependence: setup: interface: + # 新建项目 - pms_new_project_02 + # 根据项目名称,获取项目id - pms_get_project_list_by_name_02 teardown: interface: + # 清理数据:删除项目 - pms_delete_project_01 - id: pms_top_project_02 - title: 企业下取消置顶项目接口 + title: 组织下取消置顶项目接口 run: True severity: critical url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject @@ -72,9 +79,13 @@ case_info: case_dependence: setup: interface: + # 新建项目 - pms_new_project_02 + # 根据项目名称,获取项目id - pms_get_project_list_by_name_02 + # 置顶项目 - pms_top_project_01 teardown: interface: + # 清理数据:删除项目 - pms_delete_project_01 \ No newline at end of file diff --git a/interface/pms/projects/weekly/test_get_project_weekly_list.yaml b/interface/pms/projects/weekly/test_get_project_weekly_list.yaml new file mode 100644 index 0000000..16106d0 --- /dev/null +++ b/interface/pms/projects/weekly/test_get_project_weekly_list.yaml @@ -0,0 +1,38 @@ +case_common: + allure_epic: 项目管理 + allure_feature: 项目 + allure_story: 成员 + case_markers: + - pms + - usefixtures: gitlink_login + +case_info: +- + id: pms_get_project_weekly_list_01 + title: 获取项目周报列表 + run: True + severity: normal + url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/list + method: GET + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: params + payload: + pmProjectId: ${env_pms_project_id} + page: 1 + limit: 20 + category: all + participantCategory: all + pmIssueType: + rootId: -1 + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assert_sql: + extract: + case_dependence: \ No newline at end of file diff --git a/interface/pms/projects/work_item/bug/test_pms_get_optional_parent_bug_list.yaml b/interface/pms/projects/work_item/bug/test_pms_get_optional_parent_bug_list.yaml index 00cc693..07f1351 100644 --- a/interface/pms/projects/work_item/bug/test_pms_get_optional_parent_bug_list.yaml +++ b/interface/pms/projects/work_item/bug/test_pms_get_optional_parent_bug_list.yaml @@ -23,7 +23,7 @@ case_info: pmProjectId: ${env_pms_project_id} page: 1 limit: 50 - pmIssueType: 3 + pmIssueType: 3 # 1 需求 2 任务 3 缺陷 files: assert_response: status_code: 200 diff --git a/interface/pms/projects/work_item/requirement/test_pms_batch_edit_project_requirement.yaml b/interface/pms/projects/work_item/requirement/test_pms_batch_edit_project_requirement.yaml index b05d375..855286c 100644 --- a/interface/pms/projects/work_item/requirement/test_pms_batch_edit_project_requirement.yaml +++ b/interface/pms/projects/work_item/requirement/test_pms_batch_edit_project_requirement.yaml @@ -8,6 +8,36 @@ case_common: - project_requirement - usefixtures: gitlink_login +# 前提条件:当前组织下存在项目,项目下存在需求 +# 批量编辑需求包括编辑如下项:负责人(最多选择5个),状态(最多选择1个),优先级(最多选择1个),迭代(最多选择1个),标记(最多选择3个),代码库(最多选择1个) + +common_dependence: + setup: + interface: + # 获取项目成员 + - pms_get_project_member_list_01 + # 获取工作项标记 + - pms_get_work_item_tag_list_01 + # 获取项目拥有的仓库 + - pms_get_project_repo_list_01 + # 获取工作项状态ids + - pms_pms_get_issue_status_list_01 + # 新建迭代 + - pms_new_sprint_01 + # 获取迭代id + - pms_get_sprint_list_by_name_02 + # 新建项目需求 + - pms_new_project_requirement_02 + # 新建项目需求 + - pms_new_project_requirement_02 + # 获取多个项目需求 + - pms_get_project_requirement_list_01 + + teardown: + interface: + # 清理数据:删除迭代 + - pms_delete_sprint_01 + case_info: - id: pms_batch_edit_project_requirement_01 @@ -23,7 +53,7 @@ case_info: payload: ids: ${project_requirement_ids} projectId: ${${project_repo_ids}[0]} # 项目下的代码库 - pmSprintId: ${random.choice(${project_sprint_ids})} # 项目下的迭代 + pmSprintId: ${project_sprint_id} # 项目下的迭代 issueTagIds: - ${random.choice(${work_item_tag_ids})} assignerIds: @@ -40,21 +70,10 @@ case_info: assert_sql: extract: case_dependence: - setup: - interface: - - pms_new_project_requirement_02 - - pms_new_project_requirement_02 - - pms_get_work_item_tag_list_01 - - pms_get_project_member_list_01 - - pms_get_sprint_list_01 - - pms_get_project_repo_list_01 - - pms_get_project_requirement_list_01 - - - id: pms_batch_edit_project_requirement_02 - title: 项目下批量编辑需求- 关联子需求, 更新成功 + title: 项目下批量编辑需求- 关联多个子需求, 更新成功 run: true severity: blocker url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/edit/batch?pmProjectId=${env_pms_project_id} @@ -64,9 +83,8 @@ case_info: cookies: ${cookies} request_type: json payload: - ids: # 关联子需求id, 子需求需要是无父级无子级的需求 - - ${project_requirement_id} - rootId: ${${project_requirement_ids}[-1]} + ids: ${unlink_requirement_ids} # 关联子需求id, 子需求需要是无父级无子级的需求 + rootId: ${project_requirement_id} files: assert_response: status_code: 200 @@ -79,6 +97,5 @@ case_info: case_dependence: setup: interface: - - pms_new_project_requirement_02 - - pms_new_project_requirement_02 - - pms_get_project_requirement_list_01 \ No newline at end of file + # 获取无父级无子级的需求 + - pms_pms_get_unlink_requirement_list_01 \ No newline at end of file diff --git a/interface/pms/projects/work_item/requirement/test_pms_delete_project_requirement.yaml b/interface/pms/projects/work_item/requirement/test_pms_delete_project_requirement.yaml index f988f9e..807d356 100644 --- a/interface/pms/projects/work_item/requirement/test_pms_delete_project_requirement.yaml +++ b/interface/pms/projects/work_item/requirement/test_pms_delete_project_requirement.yaml @@ -8,6 +8,9 @@ case_common: - project_requirement - usefixtures: gitlink_login + +# 前提条件:当前组织下存在项目,项目下存在需求 + case_info: - id: pms_delete_project_requirement_01 @@ -36,6 +39,7 @@ case_info: case_dependence: setup: interface: + # 新建项目需求 - pms_new_project_requirement_02 - @@ -65,6 +69,9 @@ case_info: case_dependence: setup: interface: + # 新建项目需求 - pms_new_project_requirement_02 + # 新建项目需求 - pms_new_project_requirement_02 + # 获取多个项目需求 - pms_get_project_requirement_list_01 diff --git a/interface/pms/projects/work_item/requirement/test_pms_edit_project_requirement.yaml b/interface/pms/projects/work_item/requirement/test_pms_edit_project_requirement.yaml index 46233fd..db56667 100644 --- a/interface/pms/projects/work_item/requirement/test_pms_edit_project_requirement.yaml +++ b/interface/pms/projects/work_item/requirement/test_pms_edit_project_requirement.yaml @@ -9,6 +9,34 @@ case_common: - usefixtures: gitlink_login +# 前提条件:当前组织下存在项目,项目下存在需求 +# 项目需求可选负责人来源于项目成员 +# 项目需求可选标记来源于组织下的产品需求标记 +# 项目需求可选仓库来源于项目下的仓库 +# 注意:本用例没有清理需求数据。其实所有测试数据都在测试的组织内,数据是隔离的,不清理问题不大。 + +common_dependence: + setup: + interface: + # 获取项目成员 + - pms_get_project_member_list_01 + # 获取工作项标记 + - pms_get_work_item_tag_list_01 + # 获取项目拥有的仓库 + - pms_get_project_repo_list_01 + # 获取工作项状态ids + - pms_pms_get_issue_status_list_01 + # 新建迭代 + - pms_new_sprint_01 + # 获取迭代id + - pms_get_sprint_list_by_name_02 + # 新建项目需求 + - pms_new_project_requirement_02 + teardown: + interface: + # 清理数据:删除迭代 + - pms_delete_sprint_01 + case_info: - id: pms_edit_project_requirement_01 title: 项目下编辑需求 - 仅编辑标题,更新成功 @@ -56,10 +84,10 @@ case_info: description: ${generate_paragraph(nb=6)} assignerIds: ${${project_member_ids}[1:4]} attachmentIds: - - ${file_id} + - ${file_identifier} priorityId: ${random.choice([1,2,3,4])} issueTagIds: ${${work_item_tag_ids}[1:4]} - sprintId: + sprintId: ${project_sprint_id} projectId: ${${project_repo_ids}[0]} branchName: master startDate: ${generate_time(fmt='%Y-%m-%d')} @@ -77,11 +105,8 @@ case_info: case_dependence: setup: interface: - - pms_new_project_requirement_02 - - pms_project_upload_files_01 - - pms_get_project_member_list_01 - - pms_get_work_item_tag_list_01 - - pms_get_project_repo_list_01 + # 上传附件,获取附件标识 + - pms_project_gitlink_upload_files_01 - id: pms_edit_project_requirement_03 @@ -97,16 +122,6 @@ case_info: payload: pmProjectId: ${env_pms_project_id} rootId: ${${parent_requirement_ids}[0]} # 关联的父需求id - statusId: ${requirement_status_id} - priorityId: ${requirement_priority_id} - assignerIds: ${str_to_list(${requirement_assignee_ids})} - issueTagIds: ${str_to_list(${requirement_tag_ids})} - projectId: ${none_to_null(${requirement_project_id})} - sprintId: ${none_to_null(${requirement_sprint_id})} - branchName: ${none_to_null(${requirement_branch_name})} - startDate: ${none_to_null(${requirement_start_date})} - dueDate: ${none_to_null(${requirement_due_date})} - timeScale: ${none_to_null(${requirement_time_scale})} files: assert_response: status_code: 200 @@ -119,9 +134,11 @@ case_info: case_dependence: setup: interface: + # 新建项目需求 - pms_new_project_requirement_02 - - pms_pms_get_optional_parent_requirement_list_01 - - pms_get_project_requirement_detail_01 + # 获取可选父需求列表 + - pms_get_optional_parent_requirement_list_01 + - id: pms_edit_project_requirement_04 title: 项目下编辑需求 - 取消父子关系,取消成功 @@ -148,9 +165,12 @@ case_info: case_dependence: setup: interface: + # 新建项目需求 - pms_new_project_requirement_02 - - pms_pms_get_optional_parent_requirement_list_01 - - pms_get_project_requirement_detail_01 + # 获取可选父需求列表 + - pms_get_optional_parent_requirement_list_01 + # 需求关联父需求 + - pms_edit_project_requirement_03 diff --git a/interface/pms/projects/work_item/requirement/test_pms_get_optional_parent_requirement_list.yaml b/interface/pms/projects/work_item/requirement/test_pms_get_optional_parent_requirement_list.yaml index 4d523c6..8920fa5 100644 --- a/interface/pms/projects/work_item/requirement/test_pms_get_optional_parent_requirement_list.yaml +++ b/interface/pms/projects/work_item/requirement/test_pms_get_optional_parent_requirement_list.yaml @@ -9,7 +9,7 @@ case_common: - usefixtures: gitlink_login case_info: - - id: pms_pms_get_optional_parent_requirement_list_01 + - id: pms_get_optional_parent_requirement_list_01 title: 获取需求可关联的父需求列表 run: True severity: critical diff --git a/interface/pms/projects/work_item/requirement/test_pms_get_project_requirement_detail.yaml b/interface/pms/projects/work_item/requirement/test_pms_get_project_requirement_detail.yaml index 81d7027..86b5f7b 100644 --- a/interface/pms/projects/work_item/requirement/test_pms_get_project_requirement_detail.yaml +++ b/interface/pms/projects/work_item/requirement/test_pms_get_project_requirement_detail.yaml @@ -8,6 +8,8 @@ case_common: - project_requirement - usefixtures: gitlink_login +# 前提条件:当前组织下存在项目,项目下存在需求 + common_dependence: setup: interface: pms_new_project_requirement_02 diff --git a/interface/pms/projects/work_item/requirement/test_pms_get_project_requirement_list.yaml b/interface/pms/projects/work_item/requirement/test_pms_get_project_requirement_list.yaml index 17df1ba..8b2b760 100644 --- a/interface/pms/projects/work_item/requirement/test_pms_get_project_requirement_list.yaml +++ b/interface/pms/projects/work_item/requirement/test_pms_get_project_requirement_list.yaml @@ -8,6 +8,8 @@ case_common: - project_requirement - usefixtures: gitlink_login +# 前提条件:当前组织下存在项目,项目下存在需求 + case_info: - id: pms_get_project_requirement_list_01 diff --git a/interface/pms/projects/work_item/requirement/test_pms_get_unlink_requirement_list.yaml b/interface/pms/projects/work_item/requirement/test_pms_get_unlink_requirement_list.yaml new file mode 100644 index 0000000..7a3daa1 --- /dev/null +++ b/interface/pms/projects/work_item/requirement/test_pms_get_unlink_requirement_list.yaml @@ -0,0 +1,39 @@ +case_common: + allure_epic: 项目管理 + allure_feature: 项目 + allure_story: 工作项 - 需求 + case_markers: + - pms + - pms_project + - project_requirement + - usefixtures: gitlink_login + +case_info: + - id: pms_pms_get_unlink_requirement_list_01 + title: 查看与当前项目工作项未关联/未绑定父子级关系的一级工作项 + run: True + severity: critical + url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/unlink/${project_requirement_id} + method: GET + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: params + payload: + pmProjectId: ${env_pms_project_id} + page: 1 + limit: 50 + pmIssueType: 1 + issueFilterType: leaf_issue # 工作项筛选类型 叶子节点工作项:leaf_issue 关联工作项:link_issue + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assert_sql: + extract: + type_jsonpath: + unlink_requirement_ids: $.data.issues[*].id + case_dependence: diff --git a/interface/pms/projects/work_item/requirement/test_pms_new_project_requirement.yaml b/interface/pms/projects/work_item/requirement/test_pms_new_project_requirement.yaml index eed28f9..72aedb6 100644 --- a/interface/pms/projects/work_item/requirement/test_pms_new_project_requirement.yaml +++ b/interface/pms/projects/work_item/requirement/test_pms_new_project_requirement.yaml @@ -8,16 +8,35 @@ case_common: - project_requirement - usefixtures: gitlink_login +# 前提条件:当前组织下存在项目 +# 项目需求可选负责人来源于项目成员 +# 项目需求可选标记来源于组织下的产品需求标记 +# 项目需求可选仓库来源于项目下的仓库 +# 注意:本用例没有清理需求数据。其实所有测试数据都在测试的组织内,数据是隔离的,不清理问题不大。 + common_dependence: setup: interface: + # 获取项目成员 - pms_get_project_member_list_01 + # 获取工作项标记 - pms_get_work_item_tag_list_01 + # 获取项目拥有的仓库 - pms_get_project_repo_list_01 + # 获取工作项状态ids + - pms_pms_get_issue_status_list_01 + # 新建迭代 + - pms_new_sprint_01 + # 获取迭代id + - pms_get_sprint_list_by_name_02 + teardown: + interface: + # 清理数据:删除迭代 + - pms_delete_sprint_01 case_info: - id: pms_new_project_requirement_01 - title: 项目下新建需求接口 - 新建成功 + title: 项目下新建需求接口(所有参数全部填写) - 新建成功 run: True severity: blocker url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/add @@ -29,15 +48,15 @@ case_info: payload: pmProjectId: ${env_pms_project_id} pmIssueType: 1 # 1 需求 2 任务 3 缺陷 - subject: 新新需求_${generate_paragraph(lan='zh',nb=1)}_${generate_time} + subject: 新新需求_${generate_paragraph(lan='zh',nb=1)}_${generate_time} # 必填 description: ${generate_paragraph(nb=6)} - statusId: 1 + statusId: ${random.choice(${issue_status_ids})} # 必填 + priorityId: ${random.choice([1,2,3,4])} # 必填 assignerIds: ${${project_member_ids}[1:4]} attachmentIds: - - ${file_id} - priorityId: ${random.choice([1,2,3,4])} + - ${file_identifier} issueTagIds: ${${work_item_tag_ids}[1:4]} - sprintId: + sprintId: ${project_sprint_id} projectId: ${${project_repo_ids}[0]} branchName: master startDate: ${generate_time(fmt='%Y-%m-%d')} @@ -57,7 +76,8 @@ case_info: case_dependence: setup: interface: - - pms_project_upload_files_01 + # 上传附件,获取附件标识 + - pms_project_gitlink_upload_files_01 - id: pms_new_project_requirement_02 title: 项目下新建需求接口 - 仅输入标题,新建成功 @@ -73,8 +93,8 @@ case_info: pmProjectId: ${env_pms_project_id} pmIssueType: 1 # 1 需求 2 任务 3 缺陷 subject: 新新需求_${generate_paragraph(lan='zh',nb=1)}_${generate_time} - statusId: 1 - priorityId: ${random.choice([1,2,3,4])} + statusId: ${random.choice(${issue_status_ids})} # 必填 + priorityId: ${random.choice([1,2,3,4])} # 必填 files: assert_response: status_code: 200 @@ -90,8 +110,8 @@ case_info: - id: pms_new_project_requirement_children_03 - title: 项目下新建子级需求接口 - 新建成功 - run: false + title: 项目下新建子级需求接口(所有参数全部填写) - 新建成功 + run: True severity: blocker url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/add method: POST @@ -103,14 +123,13 @@ case_info: pmProjectId: ${env_pms_project_id} pmIssueType: 1 subject: 新需求_${generate_paragraph(lan='zh',nb=1)}_${generate_time} - description: ${generate_paragraph(nb=6)} - statusId: 1 + statusId: ${random.choice(${issue_status_ids})} # 必填 + priorityId: ${random.choice([1,2,3,4])} # 必填 assignerIds: ${${project_member_ids}[1:4]} attachmentIds: - - ${file_id} - priorityId: ${random.choice([1,2,3,4])} + - ${file_identifier} issueTagIds: ${${work_item_tag_ids}[1:4]} - sprintId: + sprintId: ${project_sprint_id} projectId: ${${project_repo_ids}[0]} branchName: master startDate: ${generate_time(fmt='%Y-%m-%d')} @@ -132,11 +151,11 @@ case_info: setup: interface: - pms_new_project_requirement_02 - - pms_project_upload_files_01 + - pms_project_gitlink_upload_files_01 - id: pms_new_project_requirement_children_04 title: 项目下新建子级需求接口 - 仅输入标题新建, 新建成功 - run: false + run: True severity: critical url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/add method: POST @@ -148,8 +167,8 @@ case_info: pmProjectId: ${env_pms_project_id} pmIssueType: 1 subject: 工作项_${generate_paragraph(lan='zh',nb=1)}_${generate_time} - statusId: 1 - priorityId: 1 + statusId: ${random.choice(${issue_status_ids})} # 必填 + priorityId: ${random.choice([1,2,3,4])} # 必填 rootId: ${project_requirement_id} files: assert_response: diff --git a/interface/pms/projects/work_item/requirement/test_pms_project_requirement_add_journal.yaml b/interface/pms/projects/work_item/requirement/test_pms_project_requirement_add_journal.yaml index b4a8d5f..7c1b1c8 100644 --- a/interface/pms/projects/work_item/requirement/test_pms_project_requirement_add_journal.yaml +++ b/interface/pms/projects/work_item/requirement/test_pms_project_requirement_add_journal.yaml @@ -1,23 +1,29 @@ case_common: allure_epic: 项目管理 allure_feature: 项目 - allure_story: 工作项 - 需求 + allure_story: 工作项 - 需求评论 case_markers: - pms - pms_project - project_requirement + - debug - usefixtures: gitlink_login +# 前提条件:当前组织下存在项目,项目下存在需求 common_dependence: setup: - interface: pms_new_project_requirement_02 + interface: + # 获取工作项状态ids,用于后面创建需求 + - pms_pms_get_issue_status_list_01 + # 新建需求 + - pms_new_project_requirement_02 case_info: - id: pms_project_requirement_add_journal_01 - title: 需求下添加评论 + title: 需求下添加评论, 上传附件,添加成功 run: True severity: blocker url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/journals/${project_requirement_id} @@ -30,7 +36,7 @@ case_info: pmProjectId: ${env_pms_project_id} notes: ${generate_paragraph(nb=6)} attachmentIds: - - ${file_id} + - ${file_identifier} files: assert_response: status_code: 200 @@ -38,6 +44,10 @@ case_info: type_jsonpath: $.msg expect_value: 操作成功 assert_type: == + assertUser: + type_jsonpath: $.data.user.login + expect_value: ${env_login} + assert_type: == assert_sql: extract: type_jsonpath: @@ -45,44 +55,12 @@ case_info: case_dependence: setup: interface: - - pms_project_upload_files_01 + # 上传附件,获取附件标识 + - pms_project_gitlink_upload_files_01 + - - id: pms_project_requirement_add_journal_reply_02 - title: 需求下添加评论回复 - run: True - severity: blocker - url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/journals/${project_requirement_id} - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: json - payload: - pmProjectId: ${env_pms_project_id} - notes: ${generate_paragraph(nb=6)} - attachmentIds: - - ${file_id} - parentId: ${requirement_journal_id} - replyId: ${requirement_journal_id} - files: - assert_response: - status_code: 200 - assertMessage: - type_jsonpath: $.msg - expect_value: 操作成功 - assert_type: == - assert_sql: - extract: - case_dependence: - setup: - interface: - - pms_project_upload_files_01 - - pms_project_requirement_add_journal_01 - - pms_project_upload_files_01 - -- - id: pms_project_requirement_add_journal_03 + id: pms_project_requirement_add_journal_02 title: 需求下添加评论 - 不上传附件,添加成功 run: True severity: critical @@ -95,7 +73,6 @@ case_info: payload: pmProjectId: ${env_pms_project_id} notes: ${generate_paragraph(nb=6)} - attachmentIds: files: assert_response: status_code: 200 @@ -103,41 +80,12 @@ case_info: type_jsonpath: $.msg expect_value: 操作成功 assert_type: == + assertUser: + type_jsonpath: $.data.user.login + expect_value: ${env_login} + assert_type: == assert_sql: extract: type_jsonpath: requirement_journal_id: $.data.id - case_dependence: - -- - id: pms_project_requirement_add_journal_reply_04 - title: 需求下添加评论回复 - 不上传附件,添加成功 - run: True - severity: critical - url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/journals/${project_requirement_id} - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: json - payload: - pmProjectId: ${env_pms_project_id} - notes: ${generate_paragraph(nb=6)} - attachmentIds: - parentId: ${requirement_journal_id} - replyId: ${requirement_journal_id} - files: - assert_response: - status_code: 200 - assertMessage: - type_jsonpath: $.msg - expect_value: 操作成功 - assert_type: == - assert_sql: - extract: - type_jsonpath: - requirement_journal_reply_id: $.data.id - case_dependence: - setup: - interface: - - pms_project_requirement_add_journal_03 \ No newline at end of file + case_dependence: \ No newline at end of file diff --git a/interface/pms/projects/work_item/requirement/test_pms_project_requirement_add_journal_reply.yaml b/interface/pms/projects/work_item/requirement/test_pms_project_requirement_add_journal_reply.yaml new file mode 100644 index 0000000..cb8e649 --- /dev/null +++ b/interface/pms/projects/work_item/requirement/test_pms_project_requirement_add_journal_reply.yaml @@ -0,0 +1,103 @@ +case_common: + allure_epic: 项目管理 + allure_feature: 项目 + allure_story: 工作项 - 需求评论回复 + case_markers: + - pms + - pms_project + - project_requirement + - debug + - usefixtures: gitlink_login + +# 前提条件:当前组织下存在项目,项目下存在需求, 需求下存在评论, 评论下存在回复 + +common_dependence: + setup: + interface: + # 获取工作项状态ids,用于后面创建需求 + - pms_pms_get_issue_status_list_01 + # 新建需求 + - pms_new_project_requirement_02 + # 新建评论 + - pms_project_requirement_add_journal_02 + + + +case_info: + +- + id: pms_project_requirement_add_journal_reply_01 + title: 需求下添加评论回复,上传附件,添加成功 + run: True + severity: blocker + url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/journals/${project_requirement_id} + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: json + payload: + pmProjectId: ${env_pms_project_id} + notes: ${generate_paragraph(nb=6)} + attachmentIds: + - ${file_identifier} + parentId: ${requirement_journal_id} + replyId: ${requirement_journal_id} + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assertUser: + type_jsonpath: $.data.user.login + expect_value: ${env_super_login} + assert_type: == + assert_sql: + extract: + case_dependence: + setup: + interface: + # 登录账号2 + - gitlink_super_login_04 + # 上传附件,获取附件标识,这个附件用来添加评论回复 + - pms_project_gitlink_upload_files_01 + + +- + id: pms_project_requirement_add_journal_reply_02 + title: 需求下添加评论回复 - 不上传附件,添加成功 + run: True + severity: critical + url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/journals/${project_requirement_id} + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: json + payload: + pmProjectId: ${env_pms_project_id} + notes: ${generate_paragraph(nb=6)} + parentId: ${requirement_journal_id} + replyId: ${requirement_journal_id} + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assertUser: + type_jsonpath: $.data.user.login + expect_value: ${env_super_login} + assert_type: == + assert_sql: + extract: + type_jsonpath: + requirement_journal_reply_id: $.data.id + case_dependence: + setup: + interface: + # 登录账号2 + - gitlink_super_login_04 \ No newline at end of file diff --git a/interface/pms/projects/work_item/requirement/test_pms_project_requirement_edit_journal.yaml b/interface/pms/projects/work_item/requirement/test_pms_project_requirement_edit_journal.yaml index 535a53f..040234a 100644 --- a/interface/pms/projects/work_item/requirement/test_pms_project_requirement_edit_journal.yaml +++ b/interface/pms/projects/work_item/requirement/test_pms_project_requirement_edit_journal.yaml @@ -1,19 +1,25 @@ case_common: allure_epic: 项目管理 allure_feature: 项目 - allure_story: 工作项 - 需求 + allure_story: 工作项 - 需求评论 case_markers: - pms - pms_project - project_requirement + - debug - usefixtures: gitlink_login +# 前提条件:当前组织下存在项目,项目下存在需求, 需求下存在评论 + common_dependence: setup: interface: - - pms_new_project_requirement_02 - - pms_project_requirement_add_journal_03 - - pms_project_requirement_add_journal_reply_04 + # 获取工作项状态ids,用于后面创建需求 + - pms_pms_get_issue_status_list_01 + # 新建需求 + - pms_new_project_requirement_02 + # 需求下新建评论(无附件) + - pms_project_requirement_add_journal_02 case_info: @@ -32,7 +38,7 @@ case_info: pmProjectId: ${env_pms_project_id} notes: ${generate_paragraph(nb=6)} attachmentIds: - - ${file_id} + - ${file_identifier} files: assert_response: status_code: 200 @@ -40,37 +46,12 @@ case_info: type_jsonpath: $.msg expect_value: 操作成功 assert_type: == + assertUser: + type_jsonpath: $.data.user.login + expect_value: ${env_login} + assert_type: == assert_sql: extract: case_dependence: setup: - interface: pms_project_upload_files_01 - -- - id: pms_project_requirement_edit_journal_reply_02 - title: 工作项下编辑评论回复 - 需求 - run: True - severity: blocker - url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/journals/${project_requirement_id}/${requirement_journal_reply_id} - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: json - payload: - pmProjectId: ${env_pms_project_id} - notes: ${generate_paragraph(nb=6)} - attachmentIds: - - ${file_id} - parentId: ${requirement_journal_id} - replayId: ${requirement_journal_id} - files: - assert_response: - status_code: 200 - assertMessage: - type_jsonpath: $.msg - expect_value: 操作成功 - assert_type: == - assert_sql: - extract: - case_dependence: \ No newline at end of file + interface: pms_project_gitlink_upload_files_01 diff --git a/interface/pms/projects/work_item/requirement/test_pms_project_requirement_edit_journal_reply.yaml b/interface/pms/projects/work_item/requirement/test_pms_project_requirement_edit_journal_reply.yaml new file mode 100644 index 0000000..e5b148c --- /dev/null +++ b/interface/pms/projects/work_item/requirement/test_pms_project_requirement_edit_journal_reply.yaml @@ -0,0 +1,59 @@ +case_common: + allure_epic: 项目管理 + allure_feature: 项目 + allure_story: 工作项 - 需求评论回复 + case_markers: + - pms + - pms_project + - project_requirement + - debug + - usefixtures: gitlink_login + +# 前提条件:当前组织下存在项目,项目下存在需求, 需求下存在评论 + +common_dependence: + setup: + interface: + # 新建需求 + - pms_new_project_requirement_02 + # 需求下新建评论(无附件) + - pms_project_requirement_add_journal_02 + # 登录账号2 + - gitlink_super_login_04 + # 评论下添加回复(无附件) + - pms_project_requirement_add_journal_reply_02 + + +case_info: +- + id: pms_project_requirement_edit_journal_reply_01 + title: 工作项下编辑评论回复 - 需求 + run: True + severity: blocker + url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/journals/${project_requirement_id}/${requirement_journal_reply_id} + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: json + payload: + pmProjectId: ${env_pms_project_id} + notes: ${generate_paragraph(nb=6)} + attachmentIds: + - ${file_identifier} + parentId: ${requirement_journal_id} + replayId: ${requirement_journal_id} + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assertUser: + type_jsonpath: $.data.user.login + expect_value: ${env_super_login} + assert_type: == + assert_sql: + extract: + case_dependence: \ No newline at end of file diff --git a/interface/pms/projects/work_item/task/test_pms_edit_project_task.yaml b/interface/pms/projects/work_item/task/test_pms_edit_project_task.yaml index f55d6ca..6a068cf 100644 --- a/interface/pms/projects/work_item/task/test_pms_edit_project_task.yaml +++ b/interface/pms/projects/work_item/task/test_pms_edit_project_task.yaml @@ -22,7 +22,7 @@ case_info: request_type: json payload: pmProjectId: ${env_pms_project_id} - pmIssueType: 2 # 1 任务 2 任务 3 缺陷 + pmIssueType: 2 # 1 需求 2 任务 3 缺陷 subject: 任务_${generate_paragraph(lan='zh',nb=1)}_${generate_time} files: assert_response: @@ -51,7 +51,7 @@ case_info: payload: statusId: ${random.choice([1,2,3,5,6])} # 待评审1 进行中2 已完成3 已关闭5 已拒绝6 pmProjectId: ${env_pms_project_id} - pmIssueType: 2 + pmIssueType: 2 # 1 需求 2 任务 3 缺陷 subject: 工作项_${generate_paragraph(lan='zh',nb=1)}_${generate_time} description: ${generate_paragraph(nb=6)} assignerIds: ${${project_member_ids}[1:4]} @@ -95,6 +95,7 @@ case_info: cookies: ${cookies} request_type: json payload: + pmIssueType: 2 # 1 需求 2 任务 3 缺陷 pmProjectId: ${env_pms_project_id} rootId: ${${parent_task_ids}[0]} # 关联的父任务id statusId: ${task_status_id} diff --git a/interface/pms/projects/work_item/task/test_pms_get_optional_parent_task_list.yaml b/interface/pms/projects/work_item/task/test_pms_get_optional_parent_task_list.yaml index 3d1bdd6..3a62593 100644 --- a/interface/pms/projects/work_item/task/test_pms_get_optional_parent_task_list.yaml +++ b/interface/pms/projects/work_item/task/test_pms_get_optional_parent_task_list.yaml @@ -23,7 +23,7 @@ case_info: pmProjectId: ${env_pms_project_id} page: 1 limit: 50 - pmIssueType: 1 + pmIssueType: 2 # 1 需求 2 任务 3 缺陷 files: assert_response: status_code: 200 diff --git a/interface/pms/projects/work_item/task/test_pms_new_project_task.yaml b/interface/pms/projects/work_item/task/test_pms_new_project_task.yaml index 3419cd6..368506a 100644 --- a/interface/pms/projects/work_item/task/test_pms_new_project_task.yaml +++ b/interface/pms/projects/work_item/task/test_pms_new_project_task.yaml @@ -28,7 +28,7 @@ case_info: request_type: json payload: pmProjectId: ${env_pms_project_id} - pmIssueType: 2 # 1 任务 2 任务 3 缺陷 + pmIssueType: 2 # 1 需求 2 任务 3 缺陷 subject: 任务_${generate_paragraph(lan='zh',nb=1)}_${generate_time} description: ${generate_paragraph(nb=6)} statusId: 1 @@ -71,7 +71,7 @@ case_info: request_type: json payload: pmProjectId: ${env_pms_project_id} - pmIssueType: 2 # 1 任务 2 任务 3 缺陷 + pmIssueType: 2 # 1 需求 2 任务 3 缺陷 subject: 任务_${generate_paragraph(lan='zh',nb=1)}_${generate_time} statusId: 1 priorityId: ${random.choice([1,2,3,4])} diff --git a/interface/pms/projects/work_item/test_pms_get_issue_status_list.yaml b/interface/pms/projects/work_item/test_pms_get_issue_status_list.yaml new file mode 100644 index 0000000..234dbd0 --- /dev/null +++ b/interface/pms/projects/work_item/test_pms_get_issue_status_list.yaml @@ -0,0 +1,34 @@ +case_common: + allure_epic: 项目管理 + allure_feature: 项目 + allure_story: 工作项 + case_markers: + - pms + - pms_project + - work_item + - usefixtures: gitlink_login + +case_info: + - id: pms_pms_get_issue_status_list_01 + title: 获取Issue状态列表 # 前端拿到这些状态,经过处理后,分配给不同的工作项 + run: True + severity: normal + url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/issueStatus + method: GET + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: params + payload: + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assert_sql: + extract: + type_jsonpath: + issue_status_ids: $.data.statues[*].id + case_dependence: diff --git a/interface/pms/projects/work_item/test_pms_project_upload_files.yaml b/interface/pms/projects/work_item/test_pms_project_upload_files.yaml index a0bbcbd..c1d0287 100644 --- a/interface/pms/projects/work_item/test_pms_project_upload_files.yaml +++ b/interface/pms/projects/work_item/test_pms_project_upload_files.yaml @@ -9,18 +9,19 @@ case_common: - usefixtures: gitlink_login case_info: - - id: pms_project_upload_files_01 + - id: pms_project_gitlink_upload_files_01 title: 项目内上传附件 severity: run: false - url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectIssues/attachments + url: ${pms_host}/api/file/common/upload?type=pms-gitlink method: POST headers: Content-Type: application/json; charset=utf-8; cookies: ${cookies} request_type: file payload: - files: demo_test_upload.yaml + file + files: example_workflows.py assert_response: status_code: 200 assertMessage: @@ -30,4 +31,4 @@ case_info: assert_sql: extract: type_jsonpath: - file_id: $.data.id + file_identifier: $.fileIdentifier diff --git a/interface/pms/repository/test_pms_delete_repo.yaml b/interface/pms/repository/test_pms_delete_repo.yaml new file mode 100644 index 0000000..ec016bb --- /dev/null +++ b/interface/pms/repository/test_pms_delete_repo.yaml @@ -0,0 +1,38 @@ +case_common: + allure_epic: 项目管理 + allure_feature: 代码库 + allure_story: 代码库 + case_markers: + - pms + - pms_repo + - gitea + - usefixtures: gitlink_login + +case_info: +- + id: pms_delete_repo_01 + title: 仓库管理员及以上角色,删除仓库,删除成功 + severity: critical + run: True + url: /api/${repo_owner}/${repo_identifier}.json + method: delete + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + files: + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.message + expect_value: success + assert_type: == + assertStatus: + type_jsonpath: $.status + expect_value: 0 + assert_type: == + assert_sql: + extract: + case_dependence: diff --git a/interface/pms/repository/test_pms_new_repo.yaml b/interface/pms/repository/test_pms_new_repo.yaml index 54f07d6..8da0178 100644 --- a/interface/pms/repository/test_pms_new_repo.yaml +++ b/interface/pms/repository/test_pms_new_repo.yaml @@ -39,4 +39,6 @@ case_info: extract: type_jsonpath: repo_id: $.id # 项目id + repo_owner: $.login + repo_identifier: $.identifier case_dependence: diff --git a/interface/pms/settings/tag_setting/testcase_tag/test_pms_deletet_tag.yaml b/interface/pms/settings/tag_setting/testcase_tag/test_pms_deletet_tag.yaml index f574ef4..0579da5 100644 --- a/interface/pms/settings/tag_setting/testcase_tag/test_pms_deletet_tag.yaml +++ b/interface/pms/settings/tag_setting/testcase_tag/test_pms_deletet_tag.yaml @@ -39,7 +39,7 @@ case_info: title: 组织管理员删除测试用例标记 - 删除多个标记 run: true severity: normal - url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectTestcaseTag/${testcase_tag_ids} + url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProjectTestcaseTag/${list_to_str(${testcase_tag_ids})} method: DELETE headers: Content-Type: application/json; charset=utf-8; diff --git a/interface/pms/test_pms_upload_files.yaml b/interface/pms/test_pms_upload_files.yaml index b5cef58..ec3818d 100644 --- a/interface/pms/test_pms_upload_files.yaml +++ b/interface/pms/test_pms_upload_files.yaml @@ -9,11 +9,11 @@ case_common: case_info: - - id: pms_upload_file_01 - title: 上传附件(type=pms) + id: pms_upload_file_product_01 + title: 上传附件(type=pms) - 产品 severity: run: true - url: ${pms_host}/api/file/common/upload?type=pms + url: ${pms_host}/api/file/common/upload?type=pms&hierarchy=${env_enterprise_identifier}/products method: POST headers: Content-Type: application/json; charset=utf-8; @@ -32,3 +32,93 @@ case_info: type_jsonpath: file_identifier: $.fileIdentifier file_name: $.fileOriginName + + +- + id: pms_upload_file_project_02 + title: 上传附件(type=pms) - 项目 + severity: + run: true + url: ${pms_host}/api/file/common/upload?type=pms&hierarchy=${env_enterprise_identifier}/projects + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: file + payload: + files: demo_test_upload.yaml + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assert_sql: + extract: + type_jsonpath: + file_identifier: $.fileIdentifier + file_name: $.fileOriginName + + +- + id: pms_upload_file_org_doc_03 + title: 上传附件(type=pms) - 组织知识库 + severity: + run: true + url: ${pms_host}/api/file/common/upload?type=pms&hierarchy=${env_enterprise_identifier}/docs/0 + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: file + payload: + files: demo_test_upload.yaml + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assert_sql: + extract: + type_jsonpath: + file_identifier: $.fileIdentifier + file_name: $.fileOriginName + + +- + id: pms_upload_file_project_doc_04 + title: 上传附件(type=pms) - 项目知识库 + severity: + run: true + url: ${pms_host}/api/file/common/upload?type=pms&hierarchy=${env_enterprise_identifier}/docs/${project_id} + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: file + payload: + files: demo_test_upload.yaml + assert_response: + status_code: 200 + assertMessage: + type_jsonpath: $.msg + expect_value: 操作成功 + assert_type: == + assert_sql: + extract: + type_jsonpath: + file_identifier: $.fileIdentifier + file_name: $.fileOriginName + case_dependence: + setup: + interface: + - pms_get_project_user_list_01 + - pms_get_enterprise_user_list_01 + - pms_new_project_02 + - pms_get_project_list_by_name_02 + teardown: + interface: + - pms_delete_project_01 + + diff --git a/run.py b/run.py index 3939370..cdde609 100644 --- a/run.py +++ b/run.py @@ -52,7 +52,7 @@ from utils.report_utils.allure_handle import generate_allure_report # 主函数 @click.command() @click.option("-report", default="yes", help="是否生成allure html report,支持如下类型:yes, no") -@click.option("-env", default="test", help="输入运行环境:test 或 live") +@click.option("-env", default="test", help="输入运行环境:test 或 live或者其他你配置的环境") @click.option("-m", default=None, help="选择需要运行的用例:python.ini配置的名称") def run(env, m, report): try: diff --git a/utils/data_utils/data_handle.py b/utils/data_utils/data_handle.py index 4dd9801..c894dc6 100644 --- a/utils/data_utils/data_handle.py +++ b/utils/data_utils/data_handle.py @@ -19,7 +19,7 @@ from requests.utils import dict_from_cookiejar # 本地应用/模块导入 from utils.data_utils.faker_handle import FakerData from utils.data_utils.eval_data_handle import eval_data -from utils.data_utils.data_tools import zip_test_step +from utils.data_utils.data_tools import * from utils.files_utils.files_handle import file_to_base64, filepath_to_base64, get_files from config.path_config import FILES_DIR @@ -289,6 +289,24 @@ def get_base64_content(input_string: str): return base64_string +def base64_decode(encoded_string): + try: + decoded_bytes = base64.b64decode(encoded_string) + decoded_string = decoded_bytes.decode('utf-8') + return decoded_string + except Exception as e: + return f"Error decoding: {str(e)}" + + +def update_wiki_sidebar(sidebar_content, new_page_name): + """ + 获取wiki sideber的base64编码内容,将新页面追加到后面,再重新编码返回 + """ + _sidebar_content = base64_decode(sidebar_content) + new_sidebar_content = _sidebar_content + f"\n[[{new_page_name}]]" + return string_to_base64(new_sidebar_content) + + # 声明data_handle方法,这样外部就可以直接import data_handle来使用了 data_handle = DataHandle().data_handle