新增和更新用例

This commit is contained in:
floraachy
2024-04-09 11:44:17 +08:00
parent a4197a06c1
commit f5fbe11446
74 changed files with 1485 additions and 411 deletions

View File

@@ -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",

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:
extract:
type_jsonpath:
ignores_id: $.ignores[0].id
ignores_name: $.ignores[0].name

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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

View File

@@ -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
pms_product_name: $.data.productName

View File

@@ -7,6 +7,9 @@ case_common:
- pms_product
- usefixtures: gitlink_login
# 当前组织下,具有编辑产品权限角色的成员用户,可以被选择为产品负责人。
# 该接口会自动筛选出这部分用户,并进行返回
case_info:
-
id: pms_get_product_user_list_01

View File

@@ -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

View File

@@ -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

View File

@@ -7,6 +7,8 @@ case_common:
- pms_product
- usefixtures: gitlink_login
# 前提条件:当前存在某组织
case_info:
-
id: pms_get_product_list_01

View File

@@ -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:
case_dependence:
setup:
interface: pms_get_product_detail_01

View File

@@ -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

View File

@@ -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
- pms_new_product_module_children_02
teardown:
interface:
- pms_delete_product_children_module_02
- pms_delete_product_module_01

View File

@@ -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

View File

@@ -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
-

View File

@@ -8,6 +8,8 @@ case_common:
- product_plan
- usefixtures: gitlink_login
# 前提条件:当前某组织下存在某产品, 产品下存在计划
case_info:
-
id: pms_get_product_plan_detail_01

View File

@@ -8,6 +8,9 @@ case_common:
- product_plan
- usefixtures: gitlink_login
# 前提条件:当前某组织下存在某产品, 产品下存在计划
case_info:
-
id: pms_delete_product_plan_01

View File

@@ -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:
-

View File

@@ -8,6 +8,8 @@ case_common:
- product_plan
- usefixtures: gitlink_login
# 前提条件:当前某组织下存在某产品, 产品下存在计划
case_info:
-
id: pms_get_product_plan_list_01

View File

@@ -8,6 +8,8 @@ case_common:
- product_plan
- usefixtures: gitlink_login
# 前提条件:当前某组织下存在某产品, 产品下存在计划
case_info:
-
id: pms_new_product_plan_01

View File

@@ -8,6 +8,7 @@ case_common:
- product_requirement
- usefixtures: gitlink_login
# 前提条件: 组织下存在产品,产品下存在产品需求
case_info:
-

View File

@@ -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
case_dependence:

View File

@@ -8,6 +8,8 @@ case_common:
- product_requirement
- usefixtures: gitlink_login
# 前提条件:当前某组织下存在某产品
case_info:
-
id: pms_get_product_requirement_list_01

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -9,6 +9,8 @@ case_common:
- journal
- usefixtures: gitlink_login
# 前提条件: 组织下存在产品,产品下存在产品需求, 需求下存在评论
common_dependence:
setup:
interface:

View File

@@ -9,6 +9,8 @@ case_common:
- journal
- usefixtures: gitlink_login
# 前提条件: 组织下存在产品,产品下存在产品需求, 需求下存在评论
common_dependence:
setup:
interface:

View File

@@ -9,6 +9,8 @@ case_common:
- journal
- usefixtures: gitlink_login
# 前提条件: 组织下存在产品,产品下存在产品需求, 需求下存在评论
case_info:
-
id: pms_get_journal_list_01

View File

@@ -7,6 +7,9 @@ case_common:
- pms_product
- usefixtures: gitlink_login
# 前提条件:当前存在组织, 组织下存在项目
case_info:
-
id: pms_get_project_user_list_01

View File

@@ -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}

View File

@@ -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:
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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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
# 获取无父级无子级的需求
- pms_pms_get_unlink_requirement_list_01

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -8,6 +8,8 @@ case_common:
- project_requirement
- usefixtures: gitlink_login
# 前提条件:当前组织下存在项目,项目下存在需求
common_dependence:
setup:
interface: pms_new_project_requirement_02

View File

@@ -8,6 +8,8 @@ case_common:
- project_requirement
- usefixtures: gitlink_login
# 前提条件:当前组织下存在项目,项目下存在需求
case_info:
-
id: pms_get_project_requirement_list_01

View File

@@ -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:

View File

@@ -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:

View File

@@ -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
case_dependence:

View File

@@ -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

View File

@@ -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:
interface: pms_project_gitlink_upload_files_01

View File

@@ -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:

View File

@@ -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}

View File

@@ -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

View File

@@ -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])}

View File

@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -39,4 +39,6 @@ case_info:
extract:
type_jsonpath:
repo_id: $.id # 项目id
repo_owner: $.login
repo_identifier: $.identifier
case_dependence:

View File

@@ -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;

View File

@@ -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

2
run.py
View File

@@ -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:

View File

@@ -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