Files
apiautotest/interface/gitlink/test_gitlink_login.yaml
T
2025-01-10 10:56:45 +08:00

152 lines
4.1 KiB
YAML

# 公共参数
case_common:
allure_epic: GitLink接口 # 敏捷里面的概念,定义史诗,相当于module级的标签, 往下是 feature
allure_feature: 用户模块 # 功能点的描述,相当于class级的标签, 理解成模块往下是 story
allure_story: 登录接口 # 故事,可以理解为场景,相当于method级的标签, 往下是 title
case_markers: # pytest框架的标记 pytest.mark.
- gitlink
- smoke
- login: 登录接口
# 用例数据
case_info:
-
id: gitlink_login_01
title: 用户名密码正确,登录成功(不校验数据库)
run: True
severity: normal
url: /api/accounts/login.json
method: POST
headers:
Content-Type: application/json; charset=utf-8;
cookies:
request_type: json
payload:
login: ${env_login}
password: ${aes_encrypt_data('${env_password}','${ace_key}')}
autologin: 1
files:
assert_response:
status_code: 200
assertLogin:
message: 断言接口返回的login
expect_value: ${env_login}
assert_type: ==
type_jsonpath: $.login
assert_sql:
extract:
type_re:
nickname: \"username":"(.*?)"
login: \"login":"(.*?)"
user_id: \"user_id":(.*?),
type_response:
cookies: response.cookies
-
id: gitlink_login_02
title: 用户名密码正确,登录成功(校验数据库)
run: false
severity: minor
url: /api/accounts/login.json
method: POST
headers:
Content-Type: application/json; charset=utf-8;
cookies:
request_type: json
payload:
login: ${env_login}
password: ${aes_encrypt_data('${env_password}','${ace_key}')}
autologin: 1
files:
assert_response:
status_code: 200
user_id:
expect_value: ${user_id}
assert_type: ==
type_jsonpath: $.user_id
login:
message: 断言接口返回的login
expect_value: ${env_login}
assert_type: ==
type_jsonpath: $.login
assert_sql:
contains_user:
message: 断言数据库:查询tokens表,表中存在该登录用户记录;预期查询结果的长度为1
sql: select * from tokens where user_id=${user_id};
expect_value: 1
assert_type: len_eq
contains_user2:
message: 断言数据库:查询tokens表,表中存在该登录用户记录;预期 ${user_id} in 查询结果(jsonpath式匹配后的结果)
sql: select * from tokens where user_id=${user_id};
type_jsonpath: $..user_id
expect_value: ${env_user_id}
assert_type: ==
contains_user3:
message: 断言数据库:查询tokens表,表中存在该登录用户记录;预期 ${user_id} in 查询结果(正则表达式匹配后的结果)
sql: select * from tokens;
type_re: "'user_id': (.*?),"
expect_value: ${user_id}
assert_type: contains
extract:
type_jsonpath:
nickname: $.username
login: $.login
user_id: $.user_id
-
id: gitlink_login_03
title: 用户名正确,密码错误,登录失败
severity: critical
run: true
url: /api/accounts/login.json
method: POST
headers:
Content-Type: application/json; charset=utf-8;
cookies:
request_type: json
payload:
login: ${env_login}
password: 12345678900
autologin: 1
files:
assert_response:
status_code: 200
user_id:
message: 断言接口返回的status
expect_value: -1
assert_type: ==
type_jsonpath: $.status
assert_sql:
extract:
-
id: gitlink_super_login_04
title: 用户名密码正确,登录成功(管理员登录)
run: False
severity: normal
url: /api/accounts/login.json
method: POST
headers:
Content-Type: application/json; charset=utf-8;
cookies:
request_type: json
payload:
login: ${env_super_login}
password: ${aes_encrypt_data('${env_super_password}','${ace_key}')}
autologin: 1
files:
assert_response:
status_code: 200
assertLogin:
message: 断言接口返回的login
expect_value: ${env_super_login}
assert_type: ==
type_jsonpath: $.login
assert_sql:
extract:
response:
type_response:
admin_cookies: response.cookies
type_jsonpath:
user_id: $.user_id