diff --git a/config/settings.py b/config/settings.py index ffa155f..a3fdea4 100644 --- a/config/settings.py +++ b/config/settings.py @@ -20,6 +20,7 @@ ENV_VARS = { "host": "https://******", "wiki_host": "https://******", "pms_host": "https://******", + "glcc_host": "https://******", # 获取oauth_token需要的参数 "client_id": "****client_id****", "client_secret": "****client_secret****", @@ -44,7 +45,7 @@ ENV_VARS = { "env_project_id": "", # pms相关环境变量 - 产品 "env_pms_product_id": "", - "env_pms_product_identifier": "******", + "env_pms_product_identifier": "", # pms相关环境变量 - 项目 "env_pms_project_id": "", # pms相关环境变量 - 企业 @@ -94,8 +95,8 @@ ENV_VARS = { "t_nickname": "******", "t_user_id": 36670, # 测试仓库 env_repo_owner/env_repo_identifier - "env_repo_owner": "****", - "env_repo_identifier": "****", + "env_repo_owner": "******", + "env_repo_identifier": "******", "env_project_id": "****", # pms相关环境变量 - 产品 "env_pms_product_id": "", @@ -150,7 +151,7 @@ ENV_VARS = { # 测试仓库 env_repo_owner/env_repo_identifier "env_repo_owner": "******", "env_repo_identifier": "******", - "env_project_id": "", + "env_project_id": "******", # pms相关环境变量 "env_pms_product_id": "", "env_pms_product_identifier": "", @@ -193,13 +194,13 @@ ENV_VARS = { "t_nickname": "******", "t_user_id": 87691, # 测试账号 - 超级管理员 (测试仓库管理员) - "env_super_login": "******", - "env_super_password": "******", - "env_super_user_id": 88473, + "env_super_login": "", + "env_super_password": "", + "env_super_user_id": 0, # 测试仓库 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": "", diff --git a/files/29image.png b/files/29image.png new file mode 100644 index 0000000..b23342a Binary files /dev/null and b/files/29image.png differ diff --git a/files/30image.png b/files/30image.png new file mode 100644 index 0000000..d3f810f Binary files /dev/null and b/files/30image.png differ diff --git a/files/31image.png b/files/31image.png new file mode 100644 index 0000000..f19868a Binary files /dev/null and b/files/31image.png differ diff --git a/files/32image.png b/files/32image.png new file mode 100644 index 0000000..de64903 Binary files /dev/null and b/files/32image.png differ diff --git a/files/33image.png b/files/33image.png new file mode 100644 index 0000000..c226331 Binary files /dev/null and b/files/33image.png differ diff --git a/interface/gitlink/projects/branch/test_gitlink_repo_set_default_branch.yaml b/interface/gitlink/projects/branch/test_gitlink_repo_update_default_branch.yaml similarity index 51% rename from interface/gitlink/projects/branch/test_gitlink_repo_set_default_branch.yaml rename to interface/gitlink/projects/branch/test_gitlink_repo_update_default_branch.yaml index 80852f8..a8ae0e4 100644 --- a/interface/gitlink/projects/branch/test_gitlink_repo_set_default_branch.yaml +++ b/interface/gitlink/projects/branch/test_gitlink_repo_update_default_branch.yaml @@ -9,27 +9,32 @@ case_common: case_info: - - id: gitlink_repo_set_default_branch_001 - title: 更新项目默认分支 + id: gitlink_repo_update_default_branch_001 + title: 更新项目默认分支,更新成功 severity: critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}.json - method: PUT + url: /api/v1//${env_repo_owner}/${env_repo_identifier}/branches/update_default_branch.json + method: PATCH headers: Content-Type: application/json; charset=utf-8; cookies: ${cookies} cookies: request_type: json payload: - default_branch: master + name: master files: assert_response: status_code: 200 - assertProjectId: - message: 断言identifier + assert_status: + message: 断言接口status=0 + expect_value: 0 assert_type: == - expect_value: ${env_repo_identifier} - type_jsonpath: $.identifier + type_jsonpath: $.status + assert_message: + message: 断言接口message=success + expect_value: success + assert_type: == + type_jsonpath: $.message assert_sql: extract: case_dependence: diff --git a/interface/gitlink/projects/branch_setting/test_gitlink_get_repo_protect_branch_list.yaml b/interface/gitlink/projects/branch_setting/test_gitlink_get_repo_protect_branch_list.yaml new file mode 100644 index 0000000..80b261d --- /dev/null +++ b/interface/gitlink/projects/branch_setting/test_gitlink_get_repo_protect_branch_list.yaml @@ -0,0 +1,47 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 分支设置 + case_markers: + - gitlink + - gitea + - branch + - usefixtures: gitlink_login + +# 前提条件:仅仓库管理员及以上角色才有权限 +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 + +case_info: +- + id: gitlink_get_repo_protect_branch_list_01 + title: 仓库管理员获取仓库保护分支列表,获取成功 + severity: normal + run: True + url: /api/${repo_owner}/${repo_identifier}/protected_branches.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: params + payload: + page: 1 + limit: 15 + files: + assert_response: + status_code: 200 + assertMessage: + message: 断言接口返回包括字段total_count + expect_value: total_count + assert_type: contains + assert_sql: + extract: + case_dependence: \ No newline at end of file diff --git a/interface/gitlink/projects/branch_setting/test_gitlink_repo_delete_protect_branch.yaml b/interface/gitlink/projects/branch_setting/test_gitlink_repo_delete_protect_branch.yaml new file mode 100644 index 0000000..81fb68c --- /dev/null +++ b/interface/gitlink/projects/branch_setting/test_gitlink_repo_delete_protect_branch.yaml @@ -0,0 +1,71 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 分支设置 + case_markers: + - gitlink + - projects + - gitea + - branch + - usefixtures: gitlink_login + + +# 前提条件:仅仓库管理员及以上角色才有权限 +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 + +case_info: +- + id: gitlink_repo_delete_protect_branch_01 + title: 仓库管理员删除保护分支,设置成功 + severity: critical + run: True + url: /api/${repo_owner}/${repo_identifier}/protected_branches/master.json + method: DELETE + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: params + payload: + branch_name: master + branchProtect: false # 启用分支保护 + enable_push: 0 # 禁用推送 + enable_push_whitelist: false # 启用推送白名单 + enable_merge_whitelist: false # 启用合并白名单 + merge_whitelist_usernames: # 启用合并白名单 用户 + enable_status_check: false # 启用状态检查 + required_approvals: 5 # 所需批准数 + enable_approvals_whitelist: false # 批准仅限列入白名单的用户或团队 + approvals_whitelist_usernames: # 批准仅限列入白名单的用户或团队 + block_on_rejected_reviews: false # 拒绝审核阻止了合并 + dismiss_stale_approvals: false # 取消过时的批准 + require_signed_commits: false # 需要签名提交 + block_on_outdated_branch: false # 如果拉取请求已经过时,阻止合并 + files: + assert_response: + status_code: 200 + assert_status: + message: 断言接口status=0 + expect_value: 0 + assert_type: == + type_jsonpath: $.status + assert_message: + message: 断言接口message=success + expect_value: success + assert_type: == + type_jsonpath: $.message + assert_sql: + extract: + case_dependence: + setup: + interface: + # 设置保护分支 master + - gitlink_set_repo_protect_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/branch_setting/test_gitlink_repo_edit_protect_branch.yaml b/interface/gitlink/projects/branch_setting/test_gitlink_repo_edit_protect_branch.yaml new file mode 100644 index 0000000..b2c2456 --- /dev/null +++ b/interface/gitlink/projects/branch_setting/test_gitlink_repo_edit_protect_branch.yaml @@ -0,0 +1,66 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 分支设置 + case_markers: + - gitlink + - projects + - gitea + - branch + - usefixtures: gitlink_login + + +# 前提条件:仅仓库管理员及以上角色才有权限 +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 + +case_info: +- + id: gitlink_repo_edit_protect_branch_01 + title: 仓库管理员更新保护分支,设置成功 + severity: critical + run: True + url: /api/${repo_owner}/${repo_identifier}/protected_branches/master.json + method: PATCH + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: params + payload: + branch_name: master + branchProtect: true # 启用分支保护 + enable_push: 0 # 禁用推送 + enable_push_whitelist: false # 启用推送白名单 + enable_merge_whitelist: false # 启用合并白名单 + merge_whitelist_usernames: # 启用合并白名单 用户 + enable_status_check: false # 启用状态检查 + required_approvals: 5 # 所需批准数 + enable_approvals_whitelist: false # 批准仅限列入白名单的用户或团队 + approvals_whitelist_usernames: # 批准仅限列入白名单的用户或团队 + block_on_rejected_reviews: false # 拒绝审核阻止了合并 + dismiss_stale_approvals: false # 取消过时的批准 + require_signed_commits: false # 需要签名提交 + block_on_outdated_branch: false # 如果拉取请求已经过时,阻止合并 + files: + assert_response: + status_code: 200 + assertField: + message: 断言接口返回的branch_name + expect_value: master + assert_type: == + type_jsonpath: $.branch_name + assert_sql: + extract: + case_dependence: + setup: + interface: + # 设置保护分支 master + - gitlink_set_repo_protect_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/branch_setting/test_gitlink_repo_set_default_branch.yaml b/interface/gitlink/projects/branch_setting/test_gitlink_repo_set_default_branch.yaml new file mode 100644 index 0000000..7b15d88 --- /dev/null +++ b/interface/gitlink/projects/branch_setting/test_gitlink_repo_set_default_branch.yaml @@ -0,0 +1,49 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 分支设置 + case_markers: + - gitlink + - projects + - gitea + - branch + - usefixtures: gitlink_login + + +# 前提条件:仅仓库管理员及以上角色才有权限 +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 + +case_info: +- + id: gitlink_repo_set_default_branch_01 + title: 仓库管理员设置默认分支,设置成功 + severity: critical + run: True + url: /api/${repo_owner}/${repo_identifier}.json + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + default_branch: master + files: + assert_response: + status_code: 200 + assertField: + message: 断言接口返回的repo_identifier + expect_value: ${repo_identifier} + assert_type: == + type_jsonpath: $.identifier + assert_sql: + extract: + case_dependence: \ No newline at end of file diff --git a/interface/gitlink/projects/branch_setting/test_gitlink_set_repo_protect_branch.yaml b/interface/gitlink/projects/branch_setting/test_gitlink_set_repo_protect_branch.yaml new file mode 100644 index 0000000..960dbcd --- /dev/null +++ b/interface/gitlink/projects/branch_setting/test_gitlink_set_repo_protect_branch.yaml @@ -0,0 +1,60 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 分支设置 + case_markers: + - gitlink + - gitea + - branch + - usefixtures: gitlink_login + +# 前提条件:仅仓库管理员及以上角色才有权限 +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 + +case_info: +- + id: gitlink_set_repo_protect_branch_01 + title: 仓库管理员设置仓库保护分支,设置成功 + severity: normal + run: True + url: /api/${repo_owner}/${repo_identifier}/protected_branches.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: params + payload: + branch_name: master + branchProtect: true # 启用分支保护 + enable_push: 0 # 禁用推送 + enable_push_whitelist: false # 启用推送白名单 + enable_merge_whitelist: true # 启用合并白名单 + merge_whitelist_usernames: # 启用合并白名单 用户 + enable_status_check: true # 启用状态检查 + required_approvals: 5 # 所需批准数 + enable_approvals_whitelist: true # 批准仅限列入白名单的用户或团队 + approvals_whitelist_usernames: # 批准仅限列入白名单的用户或团队 + block_on_rejected_reviews: true # 拒绝审核阻止了合并 + dismiss_stale_approvals: true # 取消过时的批准 + require_signed_commits: true # 需要签名提交 + block_on_outdated_branch: true # 如果拉取请求已经过时,阻止合并 + files: + assert_response: + status_code: 200 + assertField: + message: 断言接口返回的branch_name + expect_value: master + assert_type: == + type_jsonpath: $.branch_name + assert_sql: + extract: + case_dependence: \ No newline at end of file diff --git a/interface/gitlink/projects/settings/test_gitlink_cancel_transfer_repo.yaml b/interface/gitlink/projects/settings/test_gitlink_cancel_transfer_repo.yaml new file mode 100644 index 0000000..7be940e --- /dev/null +++ b/interface/gitlink/projects/settings/test_gitlink_cancel_transfer_repo.yaml @@ -0,0 +1,46 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 仓库设置 + case_markers: + - gitlink + - gitea + - debug + - usefixtures: gitlink_login + +# 仅仓库管理员及以上角色才有权限 +common_dependence: + setup: + # 新建私有仓库 + interface: gitlink_projects_new_project_02 + teardown: + # 删除仓库 + interface: gitlink_projects_delete_project_01 + +case_info: + - id: gitlink_cancel_transfer_repo_01 + title: 仓库取消转移,取消成功 + severity: critical + run: True + url: /api/${repo_owner}/${repo_identifier}/applied_transfer_projects/cancel.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + files: + assert_response: + status_code: 200 + assertField: + message: 断言接口返回包括字段 + expect_value: project + assert_type: contains + assert_sql: + extract: + case_dependence: + setup: + interface: + # 仓库申请转移 + - gitlink_transfer_repo_01 diff --git a/interface/gitlink/projects/settings/test_gitlink_transfer_repo.yaml b/interface/gitlink/projects/settings/test_gitlink_transfer_repo.yaml new file mode 100644 index 0000000..a4b0f50 --- /dev/null +++ b/interface/gitlink/projects/settings/test_gitlink_transfer_repo.yaml @@ -0,0 +1,45 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 仓库设置 + case_markers: + - gitlink + - gitea + - debug + - usefixtures: gitlink_login + +# 仅仓库管理员及以上角色才有权限 +common_dependence: + setup: + # 新建私有仓库 + interface: gitlink_projects_new_project_02 + teardown: + # 删除仓库 + interface: gitlink_projects_delete_project_01 + +case_info: + - id: gitlink_transfer_repo_01 + title: 仓库申请转移,申请成功 + severity: critical + run: True + url: /api/${repo_owner}/${repo_identifier}/applied_transfer_projects.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: +# goal: 0 + owner_name: ${env_super_login} # 迁移对象标识 + identifier: ${repo_identifier} + files: + assert_response: + status_code: 200 + assertField: + message: 断言接口返回包括字段 + expect_value: project + assert_type: contains + assert_sql: + extract: + case_dependence: diff --git a/interface/gitlink/projects/test_gitlink_new_project.yaml b/interface/gitlink/projects/test_gitlink_new_project.yaml index 202b794..6023a0f 100644 --- a/interface/gitlink/projects/test_gitlink_new_project.yaml +++ b/interface/gitlink/projects/test_gitlink_new_project.yaml @@ -34,7 +34,7 @@ case_info: request_type: json payload: user_id: ${user_id} - name: test_${generate_identifier()}_${generate_identifier()} + name: test_${generate_catch_phrase()} repository_name: ${generate_identifier()}_test files: assert_response: @@ -68,7 +68,7 @@ case_info: request_type: json payload: user_id: ${user_id} - name: test_${generate_identifier()}_${generate_identifier()} + name: 测试_${generate_catch_phrase()} repository_name: ${generate_identifier()}_test private: true files: @@ -103,7 +103,7 @@ case_info: request_type: json payload: user_id: ${user_id} - name: test_${generate_identifier()}_${generate_identifier()} + name: test_${generate_catch_phrase()} repository_name: ${generate_identifier()}_test description: ${generate_paragraph()} private: true @@ -154,7 +154,7 @@ case_info: request_type: json payload: user_id: ${user_id} - name: test_${generate_identifier()}_${generate_identifier()} + name: test_${generate_catch_phrase()} repository_name: ${generate_identifier()}_test files: assert_response: diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_add_webhook.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_add_webhook.yaml index d3328dc..fc6b6a7 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_add_webhook.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_get_repo_add_webhook.yaml @@ -7,83 +7,176 @@ case_common: - gitea - webhook - usefixtures: gitlink_login - - skip: 暂时还未完成 # 仅仓库管理员及以上角色才有权限 +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 + case_info: -- - id: gitlink_get_repo_add_webhook_01 - title: 仓库管理员创建Webhook,创建成功 - severity: normal - run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - type: # 选填,类型, 默认值gitea, 枚举值:gitea slack discord dingtalk telegram msteams feishu matrix jianmu softbot - active: # 必填,是否开启, 布尔值 - content_type: # 必填,内容类型, 枚举值:json form - http_method: # 必填,请求方式,枚举值:GET POST - secret: # 选填,密钥 - url: # 必填,请求地址 - branch_filter: # 必填,分支白名单 推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 ,则将报告所有分支的事件。 - events: # 必填,事件,枚举值:push create delete issues_only issue_assign issue_label issue_comment pull_request_only pull_request_assign pull_request_comment - files: - assert_response: + - id: gitlink_get_repo_add_webhook_01 + title: 仓库管理员创建Webhook(push事件),创建成功 + severity: normal + run: True + url: /api/${repo_owner}/${repo_identifier}/webhooks.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + type: gitea # 选填,类型, 默认值gitea, 枚举值:gitea slack discord dingtalk telegram msteams feishu matrix jianmu softbot + active: true # 必填,是否开启, 布尔值 + content_type: json # 必填,内容类型, 枚举值:json form + http_method: ${random.choice(['GET', 'POST'])} # 必填,请求方式,枚举值:GET POST + secret: ${generate_identifier} # 选填,密钥 + url: ${faker.uri()} # 必填,请求地址 + branch_filter: '*' # 必填,分支白名单 推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 ,则将报告所有分支的事件。 + eventCondition: push + events: # 必填,事件,枚举值:push create delete issues_only issue_assign issue_label issue_comment pull_request_only pull_request_assign pull_request_comment + - push + files: + assert_response: status_code: 200 assertMessage: - message: 断言接口返回包括字段total_count - expect_value: total_count + message: 断言接口返回包括字段id + expect_value: id assert_type: contains - assert_sql: - extract: - case_dependence: - setup: - # 新建私有仓库 - interface: gitlink_projects_new_project_02 - # teardown: - # # 删除仓库 - # interface: gitlink_projects_delete_project_01 + assert_sql: + extract: + case_dependence: -- - id: gitlink_get_repo_add_webhook_02 - title: 非仓库管理员创建Webhook,创建成功 - severity: normal - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/webhooks.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - type: # 选填,类型, 默认值gitea, 枚举值:gitea slack discord dingtalk telegram msteams feishu matrix jianmu softbot - active: # 必填,是否开启, 布尔值 - content_type: # 必填,内容类型, 枚举值:json form - http_method: # 必填,请求方式,枚举值:GET POST - secret: # 选填,密钥 - url: # 必填,请求地址 - branch_filter: # 必填,分支白名单 推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 ,则将报告所有分支的事件。 - events: # 必填,事件,枚举值:push create delete issues_only issue_assign issue_label issue_comment pull_request_only pull_request_assign pull_request_comment - files: - assert_response: + + - id: gitlink_get_repo_add_webhook_02 + title: 仓库管理员创建Webhook(所有事件),创建成功 + severity: normal + run: True + url: /api/${repo_owner}/${repo_identifier}/webhooks.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + type: gitea # 选填,类型, 默认值gitea, 枚举值:gitea slack discord dingtalk telegram msteams feishu matrix jianmu softbot + active: true # 必填,是否开启, 布尔值 + content_type: json # 必填,内容类型, 枚举值:json form + http_method: ${random.choice(['GET', 'POST'])} # 必填,请求方式,枚举值:GET POST + secret: ${generate_identifier} # 选填,密钥 + url: ${faker.uri()} # 必填,请求地址 + branch_filter: '*' # 必填,分支白名单 推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 ,则将报告所有分支的事件。 + eventCondition: all + events: # 必填,事件,枚举值:push create delete issues_only issue_assign issue_label issue_comment pull_request_only pull_request_assign pull_request_comment + - create + - delete + - push + - pull_request_assign + - pull_request_review + - pull_request_only + files: + assert_response: + status_code: 200 + assertMessage: + message: 断言接口返回包括字段id + expect_value: id + assert_type: contains + assert_sql: + extract: + type_jsonpath: + repo_webhook_id: $.id + case_dependence: + + + - id: gitlink_get_repo_add_webhook_03 + title: 仓库管理员创建Webhook(所有自定义事件),创建成功 + severity: normal + run: True + url: /api/${repo_owner}/${repo_identifier}/webhooks.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + type: gitea # 选填,类型, 默认值gitea, 枚举值:gitea slack discord dingtalk telegram msteams feishu matrix jianmu softbot + active: true # 必填,是否开启, 布尔值 + content_type: json # 必填,内容类型, 枚举值:json form + http_method: ${random.choice(['GET', 'POST'])} # 必填,请求方式,枚举值:GET POST + secret: ${generate_identifier} # 选填,密钥 + url: ${faker.uri()} # 必填,请求地址 + branch_filter: '*' # 必填,分支白名单 推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 ,则将报告所有分支的事件。 + eventCondition: forevent + events: # 必填,事件,枚举值:push create delete issues_only issue_assign issue_label issue_comment pull_request_only pull_request_assign pull_request_comment + - create + - delete + - push + - pull_request_assign + - pull_request_comment + - pull_request_only + - issues_only + - issue_label + - issue_assign + - issue_comment + files: + assert_response: + status_code: 200 + assertMessage: + message: 断言接口返回包括字段id + expect_value: id + assert_type: contains + assert_sql: + extract: + type_jsonpath: + repo_webhook_id: $.id + case_dependence: + + - id: gitlink_get_repo_add_webhook_04 + title: 非仓库管理员创建Webhook(所有自定义事件),创建成功 + severity: normal + run: false + url: /api/${env_repo_owner}/${env_repo_identifier}/webhooks.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + type: gitea # 选填,类型, 默认值gitea, 枚举值:gitea slack discord dingtalk telegram msteams feishu matrix jianmu softbot + active: true # 必填,是否开启, 布尔值 + content_type: json # 必填,内容类型, 枚举值:json form + http_method: ${random.choice(['GET', 'POST'])} # 必填,请求方式,枚举值:GET POST + secret: ${generate_identifier} # 选填,密钥 + url: ${faker.uri()} # 必填,请求地址 + branch_filter: '*' # 必填,分支白名单 推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 ,则将报告所有分支的事件。 + eventCondition: push + events: # 必填,事件,枚举值:push create delete issues_only issue_assign issue_label issue_comment pull_request_only pull_request_assign pull_request_comment + - push + files: + assert_response: status_code: 200 assert_status: - message: 断言接口status=403 - expect_value: 403 + message: 断言接口status=404 + expect_value: 404 assert_type: == type_jsonpath: $.status assert_message: - message: 断言接口message=你不是管理员,没有权限操作 - expect_value: 你不是管理员,没有权限操作 + message: 断言接口message + expect_value: 您访问的页面不存在或已被删除 assert_type: == type_jsonpath: $.message - assert_sql: - extract: - case_dependence: + assert_sql: + extract: + type_jsonpath: + repo_webhook_id: $.id + case_dependence: diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_delete_webhook.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_delete_webhook.yaml index 5af522d..d3c2d48 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_delete_webhook.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_get_repo_delete_webhook.yaml @@ -7,9 +7,17 @@ case_common: - gitea - webhook - usefixtures: gitlink_login - - skip: 暂时还未完成 -# 仅仓库管理员及以上角色才有权限 +# 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 case_info: - @@ -17,7 +25,7 @@ case_info: title: 仓库管理员删除Webhook,删除成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${webhook_id}.json + url: /api/${repo_owner}/${repo_identifier}/webhooks/${repo_webhook_id}.json method: DELETE headers: Content-Type: application/json; charset=utf-8; @@ -25,55 +33,23 @@ case_info: cookies: request_type: params payload: - owner: - repo: - id: - files: - assert_response: - status_code: 200 - assertMessage: - message: 断言接口返回包括字段total_count - expect_value: total_count - assert_type: contains - assert_sql: - extract: - case_dependence: - setup: - # 新建私有仓库 - interface: gitlink_projects_new_project_02 - # teardown: - # # 删除仓库 - # interface: gitlink_projects_delete_project_01 - -- - id: gitlink_get_repo_delete_webhook_02 - title: 非仓库管理员删除Webhook,删除失败 - severity: normal - run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${webhook_id}.json - method: DELETE - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - owner: - repo: - id: files: assert_response: status_code: 200 assert_status: - message: 断言接口status=403 - expect_value: 403 + message: 断言接口status=0 + expect_value: 0 assert_type: == type_jsonpath: $.status assert_message: - message: 断言接口message=你不是管理员,没有权限操作 - expect_value: 你不是管理员,没有权限操作 + message: 断言接口message=success + expect_value: success assert_type: == type_jsonpath: $.message assert_sql: extract: case_dependence: + setup: + interface: + # 新建webhook + - gitlink_get_repo_add_webhook_03 diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_upate_webhook.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_upate_webhook.yaml deleted file mode 100644 index 9ee33e8..0000000 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_upate_webhook.yaml +++ /dev/null @@ -1,88 +0,0 @@ -case_common: - allure_epic: GitLink接口 - allure_feature: 开源项目模块 - allure_story: Webhook - case_markers: - - gitlink - - gitea - - webhook - - usefixtures: gitlink_login - - skip: 暂时还未完成 -# 仅仓库管理员及以上角色才有权限 - -case_info: -- - id: gitlink_get_repo_update_webhook_01 - title: 仓库管理员更新Webhook,更新成功 - severity: normal - run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${webhook_id}.json - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - type: # 选填,类型, 默认值gitea, 枚举值:gitea slack discord dingtalk telegram msteams feishu matrix jianmu softbot - active: # 必填,是否开启, 布尔值 - content_type: # 必填,内容类型, 枚举值:json form - http_method: # 必填,请求方式,枚举值:GET POST - secret: # 选填,密钥 - url: # 必填,请求地址 - branch_filter: # 必填,分支白名单 推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 ,则将报告所有分支的事件。 - events: # 必填,事件,枚举值:push create delete issues_only issue_assign issue_label issue_comment pull_request_only pull_request_assign pull_request_comment - files: - assert_response: - status_code: 200 - assertMessage: - message: 断言接口返回包括字段total_count - expect_value: total_count - assert_type: contains - assert_sql: - extract: - case_dependence: - setup: - # 新建私有仓库 - interface: gitlink_projects_new_project_02 - # teardown: - # # 删除仓库 - # interface: gitlink_projects_delete_project_01 - -- - id: gitlink_get_repo_update_webhook_02 - title: 非仓库管理员更新Webhook,更新失败 - severity: normal - run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${webhook_id}.json - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - type: # 选填,类型, 默认值gitea, 枚举值:gitea slack discord dingtalk telegram msteams feishu matrix jianmu softbot - active: # 必填,是否开启, 布尔值 - content_type: # 必填,内容类型, 枚举值:json form - http_method: # 必填,请求方式,枚举值:GET POST - secret: # 选填,密钥 - url: # 必填,请求地址 - branch_filter: # 必填,分支白名单 推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 ,则将报告所有分支的事件。 - events: # 必填,事件,枚举值:push create delete issues_only issue_assign issue_label issue_comment pull_request_only pull_request_assign pull_request_comment - files: - assert_response: - status_code: 200 - assert_status: - message: 断言接口status=403 - expect_value: 403 - assert_type: == - type_jsonpath: $.status - assert_message: - message: 断言接口message=你不是管理员,没有权限操作 - expect_value: 你不是管理员,没有权限操作 - assert_type: == - type_jsonpath: $.message - assert_sql: - extract: - case_dependence: diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_update_webhook.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_update_webhook.yaml new file mode 100644 index 0000000..35b8fad --- /dev/null +++ b/interface/gitlink/projects/webhook/test_gitlink_get_repo_update_webhook.yaml @@ -0,0 +1,67 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: Webhook + case_markers: + - gitlink + - gitea + - webhook + - usefixtures: gitlink_login + +# 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 + +case_info: +- + id: gitlink_get_repo_update_webhook_01 + title: 仓库管理员更新Webhook,更新成功 + severity: normal + run: True + url: /api/${repo_owner}/${repo_identifier}/webhooks/${repo_webhook_id}.json + method: PATCH + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + cookies: + request_type: json + payload: + type: gitea # 选填,类型, 默认值gitea, 枚举值:gitea slack discord dingtalk telegram msteams feishu matrix jianmu softbot + active: true # 必填,是否开启, 布尔值 + content_type: json # 必填,内容类型, 枚举值:json form + http_method: ${random.choice(['GET', 'POST'])} # 必填,请求方式,枚举值:GET POST + secret: ${generate_identifier} # 选填,密钥 + url: ${faker.uri()} # 必填,请求地址 + branch_filter: '*' # 必填,分支白名单 推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 ,则将报告所有分支的事件。 + events: push # 必填,事件,枚举值:push create delete issues_only issue_assign issue_label issue_comment pull_request_only pull_request_assign pull_request_comment + files: + assert_response: + status_code: 200 + assert_status: + message: 断言接口status=0 + expect_value: 0 + assert_type: == + type_jsonpath: $.status + assert_message: + message: 断言接口message=success + expect_value: success + assert_type: == + type_jsonpath: $.message + assert_sql: + extract: + case_dependence: + setup: + interface: + # 新建webhook + - gitlink_get_repo_add_webhook_03 + teardown: + interface: + # 删除webhook + - gitlink_get_repo_delete_webhook_01 \ No newline at end of file diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_detail.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_detail.yaml index 9853a4f..390c381 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_detail.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_detail.yaml @@ -7,8 +7,17 @@ case_common: - gitea - webhook - usefixtures: gitlink_login - - skip: 暂时还未完成 -# 仅仓库管理员及以上角色才有权限 + +# 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 case_info: - @@ -16,7 +25,7 @@ case_info: title: 仓库管理员获取Webhook详情,获取成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${webhook_id}.json + url: /api/${repo_owner}/${repo_identifier}/webhooks/${repo_webhook_id}/edit.json method: GET headers: Content-Type: application/json; charset=utf-8; @@ -24,55 +33,21 @@ case_info: cookies: request_type: params payload: - owner: - repo: - id: files: assert_response: status_code: 200 assertMessage: - message: 断言接口返回包括字段total_count - expect_value: total_count + message: 断言接口返回包括字段id + expect_value: id assert_type: contains assert_sql: extract: case_dependence: setup: - # 新建私有仓库 - interface: gitlink_projects_new_project_02 - # teardown: - # # 删除仓库 - # interface: gitlink_projects_delete_project_01 - -- - id: gitlink_get_repo_webhook_detail_02 - title: 非仓库管理员获取Webhook详情,获取失败 - severity: normal - run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${webhook_id}.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - owner: - repo: - id: - files: - assert_response: - status_code: 200 - assert_status: - message: 断言接口status=403 - expect_value: 403 - assert_type: == - type_jsonpath: $.status - assert_message: - message: 断言接口message=你不是管理员,没有权限操作 - expect_value: 你不是管理员,没有权限操作 - assert_type: == - type_jsonpath: $.message - assert_sql: - extract: - case_dependence: + interface: + # 新建webhook + - gitlink_get_repo_add_webhook_03 + teardown: + interface: + # 删除webhook + - gitlink_get_repo_delete_webhook_01 diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_history_list.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_history_list.yaml index aed8948..0d9f13b 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_history_list.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_history_list.yaml @@ -7,8 +7,17 @@ case_common: - gitea - webhook - usefixtures: gitlink_login - - skip: 暂时还未完成 -# 仅仓库管理员及以上角色才有权限 + +# 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 case_info: - @@ -16,7 +25,7 @@ case_info: title: 仓库管理员获取Webhook历史推送列表,获取成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${id}/hooktasks.json.json + url: /api/${repo_owner}/${repo_identifier}/webhooks/${repo_webhook_id}/tasks.json method: GET headers: Content-Type: application/json; charset=utf-8; @@ -24,9 +33,8 @@ case_info: cookies: request_type: params payload: - owner: - repo: - id: + page: 1 + limit: 10 files: assert_response: status_code: 200 @@ -38,41 +46,12 @@ case_info: extract: case_dependence: setup: - # 新建私有仓库 - interface: gitlink_projects_new_project_02 - # teardown: - # # 删除仓库 - # interface: gitlink_projects_delete_project_01 - -- - id: gitlink_get_repo_webhook_history_list_02 - title: 非仓库管理员获取Webhook历史推送列表,获取失败 - severity: normal - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/webhooks/${id}/hooktasks.json.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - owner: - repo: - id: - files: - assert_response: - status_code: 200 - assert_status: - message: 断言接口status=403 - expect_value: 403 - assert_type: == - type_jsonpath: $.status - assert_message: - message: 断言接口message=你不是管理员,没有权限操作 - expect_value: 你不是管理员,没有权限操作 - assert_type: == - type_jsonpath: $.message - assert_sql: - extract: - case_dependence: + interface: + # 新建webhook + - gitlink_get_repo_add_webhook_03 + # 测试推送 + - gitlink_get_repo_webhook_test_01 + teardown: + interface: + # 删除webhook + - gitlink_get_repo_delete_webhook_01 \ No newline at end of file diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_list.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_list.yaml index 94e39bc..c0f5161 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_list.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_list.yaml @@ -7,8 +7,17 @@ case_common: - gitea - webhook - usefixtures: gitlink_login - - skip: 暂时还未完成 -# 仅仓库管理员及以上角色才有权限 + +# 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 case_info: - @@ -25,7 +34,7 @@ case_info: request_type: json payload: page: 1 - limit: 15 + limit: 10 files: assert_response: status_code: 200 @@ -35,42 +44,4 @@ case_info: assert_type: contains assert_sql: extract: - case_dependence: - setup: - # 新建私有仓库 - interface: gitlink_projects_new_project_02 - # teardown: - # # 删除仓库 - # interface: gitlink_projects_delete_project_01 - -- - id: gitlink_get_repo_webhook_list_02 - title: 非仓库管理员获取Webhook列表,获取失败 - severity: normal - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/webhooks.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - page: 1 - limit: 15 - files: - assert_response: - status_code: 200 - assert_status: - message: 断言接口status=403 - expect_value: 403 - assert_type: == - type_jsonpath: $.status - assert_message: - message: 断言接口message=你不是管理员,没有权限操作 - expect_value: 你不是管理员,没有权限操作 - assert_type: == - type_jsonpath: $.message - assert_sql: - extract: - case_dependence: + case_dependence: \ No newline at end of file diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_test.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_test.yaml index 76f572e..9c61267 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_test.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_test.yaml @@ -7,8 +7,17 @@ case_common: - gitea - webhook - usefixtures: gitlink_login - - skip: 暂时还未完成 -# 仅仓库管理员及以上角色才有权限 + +# 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook +common_dependence: + setup: + interface: + # 新建私有仓库 + - gitlink_projects_new_project_02 + teardown: + interface: + # 删除仓库 + - gitlink_projects_delete_project_01 case_info: - @@ -16,63 +25,35 @@ case_info: title: 仓库管理员测试Webhook推送,请求成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${id}/tests.json - method: GET + url: /api/${repo_owner}/${repo_identifier}/webhooks/${repo_webhook_id}/test.json + method: POST headers: Content-Type: application/json; charset=utf-8; cookies: ${cookies} cookies: - request_type: params + request_type: json payload: - owner: - repo: - id: - files: - assert_response: - status_code: 200 - assertMessage: - message: 断言接口返回包括字段total_count - expect_value: total_count - assert_type: contains - assert_sql: - extract: - case_dependence: - setup: - # 新建私有仓库 - interface: gitlink_projects_new_project_02 - # teardown: - # # 删除仓库 - # interface: gitlink_projects_delete_project_01 - -- - id: gitlink_get_repo_webhook_test_02 - title: 非仓库管理员测试Webhook推送,请求失败 - severity: normal - run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${id}/tests.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - owner: - repo: - id: files: assert_response: status_code: 200 assert_status: - message: 断言接口status=403 - expect_value: 403 + message: 断言接口status=0 + expect_value: 0 assert_type: == type_jsonpath: $.status assert_message: - message: 断言接口message=你不是管理员,没有权限操作 - expect_value: 你不是管理员,没有权限操作 + message: 断言接口message=success + expect_value: success assert_type: == type_jsonpath: $.message assert_sql: extract: case_dependence: + setup: + interface: + # 新建webhook + - gitlink_get_repo_add_webhook_03 + teardown: + interface: + # 删除webhook + - gitlink_get_repo_delete_webhook_01 diff --git a/interface/gitlink/glcc/test_gitlink_glcc_get_apply_information.yml b/interface/glcc/test_glcc_get_apply_information.yaml similarity index 100% rename from interface/gitlink/glcc/test_gitlink_glcc_get_apply_information.yml rename to interface/glcc/test_glcc_get_apply_information.yaml diff --git a/interface/glcc/test_glcc_get_project_category_list.yml b/interface/glcc/test_glcc_get_project_category_list.yml new file mode 100644 index 0000000..2e92d67 --- /dev/null +++ b/interface/glcc/test_glcc_get_project_category_list.yml @@ -0,0 +1,28 @@ +case_common: + allure_epic: 开源夏令营GLCC + allure_feature: 项目报名 + allure_story: 获取项目列表接口 + case_markers: + - gitlink + - glcc + +case_info: +- + id: glcc_get_project_category_list_01 + title: 获取项目分类列表 + severity: normal + run: True + url: /api/project_categories/pinned_index.json + method: GET + headers: + Content-Type": application/json; charset=utf-8; + cookies: + request_type: params + payload: + files: + assert_response: + status_code: 200 + assert_sql: + extract: + type_jsonpath: + project_category_names: $.project_categories[*].name \ No newline at end of file diff --git a/interface/glcc/test_glcc_get_project_reward_list.yaml b/interface/glcc/test_glcc_get_project_reward_list.yaml new file mode 100644 index 0000000..2a67dd5 --- /dev/null +++ b/interface/glcc/test_glcc_get_project_reward_list.yaml @@ -0,0 +1,33 @@ +case_common: + allure_epic: 开源夏令营GLCC + allure_feature: 项目报名 + allure_story: 获取课题奖励方式列表 + case_markers: + - gitlink + - glcc + + +case_info: +- + id: glcc_get_project_reward_list_01 + title: 获取课题奖励方式列表 + severity: normal + run: True + url: ${glcc_host}/api/glccSettings/settingList + method: GET + headers: + Content-Type": application/json; charset=utf-8; + cookies: + request_type: params + payload: + round: 3 + type: rewardSetting + files: + assert_response: + status_code: 200 + assert_sql: + extract: + type_jsonpath: + project_reward_id: $.data[*].id + project_money_reward_id: $.data[?(@.value =='现金奖励')].id + project_other_reward_ids: $.data[?(@.value !='现金奖励')].id \ No newline at end of file diff --git a/interface/glcc/test_glcc_teacher_apply_project.yaml b/interface/glcc/test_glcc_teacher_apply_project.yaml new file mode 100644 index 0000000..4173107 --- /dev/null +++ b/interface/glcc/test_glcc_teacher_apply_project.yaml @@ -0,0 +1,115 @@ +case_common: + allure_epic: 开源夏令营GLCC + allure_feature: 项目报名 + allure_story: 导师报名项目 + case_markers: + - glcc + - usefixtures: gitlink_login + +common_dependence: + setup: + interface: + # 获取项目分类 + - glcc_get_project_category_list_01 + # 获取奖励方式 + - glcc_get_project_reward_list_01 + +case_info: +- + id: glcc_teacher_apply_project_01 + title: 导师报名项目,报名成功 + severity: normal + run: True + url: ${glcc_host}/api/applyInformation/create + method: POST + headers: + Content-Type": application/json; charset=utf-8; + cookies: + request_type: json + payload: + round: 3 + userId: ${env_user_id} + userName: ${env_nickname} + projectName: ${generate_catch_phrase()} + projectType: ${random.choice(${project_category_names})} + gitlinkUrl: ${faker.uri()} + contactName: ${generate_name(lan='zh')} + contactPhone: ${generate_phone(lan='zh')} + contactMail: ${generate_email(lan='zh')} + projectIntro: ${generate_catch_phrase()} + projectLogoId: ${attachment_id} + joinCooperativeCommunity: true + registrationTaskList: + - + taskName: ${generate_catch_phrase()} + taskUrl: ${faker.uri()} + taskDifficulty: ${random.choice([1,2,3])} + settingRewardId: ${random.choice(${project_other_reward_ids})} + settingRewardRemark: ${generate_catch_phrase()} + tutorName: ${generate_name(lan='zh')} + tutorPhone: ${generate_phone(lan='zh')} + tutorMail: ${generate_email(lan='zh')} + tutorAddress: ${generate_address(lan='zh')} + taskDesc: ${generate_catch_phrase()} + round: 3 + - + taskName: ${generate_catch_phrase()} + taskUrl: ${faker.uri()} + taskDifficulty: ${random.choice([1,2,3])} + settingRewardId: ${random.choice(${project_other_reward_ids})} + settingRewardRemark: ${generate_catch_phrase()} + tutorName: ${generate_name(lan='zh')} + tutorPhone: ${generate_phone(lan='zh')} + tutorMail: ${generate_email(lan='zh')} + tutorAddress: ${generate_address(lan='zh')} + taskDesc: ${generate_catch_phrase()} + round: 3 + - + taskName: ${generate_catch_phrase()} + taskUrl: ${faker.uri()} + taskDifficulty: ${random.choice([1,2,3])} + settingRewardId: ${random.choice(${project_other_reward_ids})} + settingRewardRemark: ${generate_catch_phrase()} + tutorName: ${generate_name(lan='zh')} + tutorPhone: ${generate_phone(lan='zh')} + tutorMail: ${generate_email(lan='zh')} + tutorAddress: ${generate_address(lan='zh')} + taskDesc: ${generate_catch_phrase()} + round: 3 + - taskName: ${generate_catch_phrase()} + taskUrl: ${faker.uri()} + taskDifficulty: ${random.choice([1,2,3])} + settingRewardId: ${project_money_reward_id} # 现金奖励 + settingRewardRemark: ${random.choice([12000,11000,10000,9000,8000,7000,6000])} + tutorName: ${generate_name(lan='zh')} + tutorPhone: ${generate_phone(lan='zh')} + tutorMail: ${generate_email(lan='zh')} + tutorAddress: ${generate_address(lan='zh')} + taskDesc: ${generate_catch_phrase()} + round: 3 + - taskName: ${generate_catch_phrase()} + taskUrl: ${faker.uri()} + taskDifficulty: ${random.choice([1,2,3])} + settingRewardId: ${project_money_reward_id} # 现金奖励 + settingRewardRemark: ${random.choice([12000,11000,10000,9000,8000,7000,6000])} + tutorName: ${generate_name(lan='zh')} + tutorPhone: ${generate_phone(lan='zh')} + tutorMail: ${generate_email(lan='zh')} + tutorAddress: ${generate_address(lan='zh')} + taskDesc: ${generate_catch_phrase()} + round: 3 + files: + assert_response: + status_code: 200 + assert_message: + message: 断言接口message=success + expect_value: success + assert_type: == + type_jsonpath: $.message + assert_sql: + extract: + case_dependence: + setup: + interface: + # 上传项目logo,获取logo id + - glcc_upload_file_01 diff --git a/interface/glcc/test_glcc_upload_files.yaml b/interface/glcc/test_glcc_upload_files.yaml new file mode 100644 index 0000000..78ab70f --- /dev/null +++ b/interface/glcc/test_glcc_upload_files.yaml @@ -0,0 +1,37 @@ +# 公共参数 +case_common: + allure_epic: 开源夏令营GLCC + allure_feature: 项目报名 + allure_story: 上传文件 + case_markers: + - glcc + - upload_file + - usefixtures: gitlink_login + +# 用例数据 +case_info: +- + id: glcc_upload_file_01 + title: 上传项目logo + severity: + run: true + url: /api/attachments.json + method: POST + headers: + cookies: ${cookie} + Content-Type: application/json; charset=utf-8; + cookies: + request_type: file + payload: + files: 31image.png + assert_response: + status_code: 200 + asserFileName: + message: 断言接口返回的filename + expect_value: 30image.png + assert_type: == + type_jsonpath: $.title + assert_sql: + extract: + type_jsonpath: + attachment_id: $.id \ No newline at end of file diff --git a/interface/pms/open_close_enterprise/test_pms_close_enterprise.yaml b/interface/pms/open_close_enterprise/test_pms_close_enterprise.yaml index 5efd26b..7e4c9a9 100644 --- a/interface/pms/open_close_enterprise/test_pms_close_enterprise.yaml +++ b/interface/pms/open_close_enterprise/test_pms_close_enterprise.yaml @@ -4,7 +4,6 @@ case_common: allure_story: 开通/关闭工作台 case_markers: - pms - - ok - usefixtures: gitlink_login # 前提条件:当前存在gitlink组织,组织已开通工作台 diff --git a/interface/pms/open_close_enterprise/test_pms_open_enterprise.yaml b/interface/pms/open_close_enterprise/test_pms_open_enterprise.yaml index c0b76fb..b9a5365 100644 --- a/interface/pms/open_close_enterprise/test_pms_open_enterprise.yaml +++ b/interface/pms/open_close_enterprise/test_pms_open_enterprise.yaml @@ -4,8 +4,6 @@ case_common: allure_story: 开通/关闭工作台 case_markers: - pms - - debug - - ok - usefixtures: gitlink_login # 前提条件:当前存在gitlink组织,组织未开通工作台 diff --git a/utils/data_utils/faker_handle.py b/utils/data_utils/faker_handle.py index 2058a2c..06ca372 100644 --- a/utils/data_utils/faker_handle.py +++ b/utils/data_utils/faker_handle.py @@ -45,6 +45,12 @@ class FakerData: # 生成并返回随机整数 return random.randint(min_val, max_val) + def generate_catch_phrase(self): + """ + :return: 生成妙句(口号) (输出结果都是英文) + """ + return self.faker.catch_phrase() + def generate_phone(self, lan="en") -> int: """ :return: 随机生成手机号码 @@ -215,6 +221,17 @@ class FakerData: return faker.province() + def generate_address(self, lan="en") -> str: + """ + + :return: 生成地址 + """ + if lan == "zh": + address = self.fk_zh.address() + else: + address = self.faker.address() + return address + @classmethod def generate_time(cls, fmt='%Y-%m-%d %H:%M:%S') -> str: """ diff --git a/utils/requests_utils/api_workflow.py b/utils/requests_utils/api_workflow.py index 79fbc96..3fa9b9a 100644 --- a/utils/requests_utils/api_workflow.py +++ b/utils/requests_utils/api_workflow.py @@ -28,10 +28,9 @@ def get_api_data(api_file_path: str, key: str = None): api_data = [] if os.path.isdir(api_file_path): logger.debug(f"目标路径是一个目录:{api_file_path}") - api_files = get_files(target=api_file_path, end=".yaml") + api_files = get_files(target=api_file_path, end=".yaml") + get_files(target=api_file_path, end=".yml") for api_file in api_files: api_data.append(YamlHandle(filename=api_file).read_yaml) - elif os.path.isfile(api_file_path): logger.debug(f"目标路径是一个文件:{api_file_path}") api_data.append(YamlHandle(filename=api_file_path).read_yaml)