Commit ccff10c3 authored by zhanhuasheng's avatar zhanhuasheng

1、新增用例

2、新增超时睡眠机制
parent 6746b4db
import pytest
from Utils import yaml_handler
from Utils import req_handler
from TestData.setting.team_test_data import teamData
class TestTeam:
yaml_path = r'setting/team.yaml'
yaml_data = yaml_handler.yaml_handler.get_case(yaml_path)
@pytest.mark.flaky(reruns=teamData.rerun, reruns_delay=teamData.rerun_delay)
@pytest.mark.parametrize('case',yaml_data)
def test_team(self,case):
req_handler.ReqHandler.send_requests(case=case,var_class=teamData)
from Utils.global_variate import Global
from Utils.mockData_handler import data_handler
class teamData(Global):
teammate_email = 'autotest_customer%s@qq.com'%data_handler.random_id()
teammate_role = 'Agent'
new_teammate_role = 'Admin'
team_name = 'autotest_team%s'%data_handler.random_id()
new_team_name = 'autotest_team_new%s'%data_handler.random_id()
\ No newline at end of file
from Utils.sql_handler import test_env_conn
from TestData.setting.team_test_data import teamData
team_delete_sql = f'delete from `resource_item` where brand_id = {teamData.brandId} and (name in ("{teamData.team_name}","{teamData.new_team_name}") or id = {teamData.team_id})'
test_env_conn.execute_sql(team_delete_sql)
teammate_delete_sql = f'delete from `resource_item_cs_rel` where cs_id = {teamData.teammate_id}'
test_env_conn.execute_sql(teammate_delete_sql)
\ No newline at end of file
from Utils.sql_handler import test_env_conn
from TestData.setting.team_test_data import teamData
team_select_sql = f'select * from `resource_item` where brand_id = {teamData.brandId} and resource_id = 1'
team_select_result = test_env_conn.select_many_value(sql=team_select_sql)
if team_select_result:
team_num = len(team_select_result)
team_id_select_sql = f'select * from `resource_item` where brand_id = {teamData.brandId} and name = "{teamData.team_name}"'
team_id_result = test_env_conn.select_one_value(sql=team_id_select_sql)
if not team_id_result:
team_insert_sql = f"""INSERT INTO resource_item (name,picture,rel_id,brand_id,resource_id,sorts,is_delete,update_at,create_at) VALUES
("{teamData.team_name}",'',0,{teamData.brandId},1,0,0,'2024-05-11 15:47:45','2024-05-11 15:47:45');
"""
test_env_conn.execute_sql(sql=team_insert_sql)
team_id_select_sql = f'select * from `resource_item` where brand_id = {teamData.brandId} and name = "{teamData.team_name}"'
team_id_result = test_env_conn.select_one_value(sql=team_id_select_sql)
team_id = team_id_result['id']
else:
team_id = team_id_result['id']
setattr(teamData, 'team_id', team_id)
setattr(teamData, 'team_num', team_num)
else:
team_insert_sql = f"""INSERT INTO resource_item (name,picture,rel_id,brand_id,resource_id,sorts,is_delete,update_at,create_at) VALUES
("{teamData.team_name}",'',0,{teamData.brandId},1,0,0,'2024-05-11 15:47:45','2024-05-11 15:47:45');
"""
test_env_conn.execute_sql(sql=team_insert_sql)
team_id_select_sql = f'select * from `resource_item` where brand_id = {teamData.brandId} and name = "{teamData.team_name}"'
team_id_result = test_env_conn.select_one_value(sql=team_id_select_sql)
team_id = team_id_result['id']
team_num = 1
setattr(teamData, 'team_id', team_id)
setattr(teamData, 'team_num', team_num)
from Utils.sql_handler import test_env_conn
from TestData.setting.team_test_data import teamData
def insert_teammate():
teammate_insert_sql = f"""INSERT INTO `customer_service` (email,password,name,profile,is_update_password,is_open_window,enter_type,customer_type,local_lang,is_delete,create_at,update_at) VALUES
("{teamData.teammate_email}",'','','',0,1,1,0,'',0,1715397311,1715409940);
"""
test_env_conn.execute_sql(sql=teammate_insert_sql)
teammate_id_select_sql = f'select * from customer_service where email = "{teamData.teammate_email}"'
teammate_id_select_result = test_env_conn.select_one_value(sql=teammate_id_select_sql)
teammate_id = teammate_id_select_result['id']
all_conversation_channel_id_select_sql = f'select * from `resource_item` where brand_id = {teamData.brandId} and resource_id = 0'
all_conversation_channel_id_select_result = test_env_conn.select_one_value(
sql=all_conversation_channel_id_select_sql)
all_conversation_channel_id = all_conversation_channel_id_select_result['id']
teammate_rel_channel_insert_sql = f"""INSERT INTO `resource_item_cs_rel` (item_id,cs_id,sorts,is_hup,is_delete,update_at,create_at) VALUES
({all_conversation_channel_id},{teammate_id},0,1,0,'2024-05-11 15:03:16','2024-05-11 15:03:16');
"""
test_env_conn.execute_sql(sql=teammate_rel_channel_insert_sql)
teammate_brand_rel_insert_sql = f"""INSERT INTO `rel_customerservice_brand` (customer_service_id,brand_id,company_id,role_name,is_activation,is_delete,create_at,update_at) VALUES
({teammate_id},{teamData.brandId},{teamData.companyId},"{teamData.teammate_role}",1,0,1715415656,1715415629);
"""
test_env_conn.execute_sql(sql=teammate_brand_rel_insert_sql)
setattr(teamData, 'teammate_id', teammate_id)
team_id_list_select_sql = f'select id from `resource_item` where brand_id = {teamData.brandId} and resource_id in (0,1)'
team_id_list_select_result = test_env_conn.select_many_value(sql=team_id_list_select_sql)
team_id_list = tuple([team_id['id'] for team_id in team_id_list_select_result])
teammate_select_sql = f'select cs_id from `resource_item_cs_rel` where item_id in {team_id_list}'
teammate_select_result = test_env_conn.select_many_value(sql=teammate_select_sql)
if teammate_select_result:
teammate_id_list = list(set([teammate_id['cs_id'] for teammate_id in teammate_select_result]))
teammate_num = len(teammate_id_list)
teammate_id_select_sql = f'select * from customer_service where email = "{teamData.teammate_email}"'
teammate_id_select_result = test_env_conn.select_one_value(sql=teammate_id_select_sql)
if teammate_id_select_result:
teammate_id = teammate_id_select_result['id']
setattr(teamData, 'teammate_id', teammate_id)
else:
insert_teammate()
teammate_num += 1
else:
insert_teammate()
teammate_num = 1
setattr(teamData, 'teammate_num', teammate_num)
......@@ -7,6 +7,9 @@ import pytest
import requests
import re
import os
import urllib3.exceptions
from Utils import config_handler
from Utils import global_variate
from Utils import path_handler
......@@ -113,6 +116,10 @@ class ReqHandler:
except pymysql.err.InterfaceError:
print('数据库连接失败')
raise pymysql.err.InterfaceError
except urllib3.exceptions.MaxRetryError:
time.sleep(30) #超限时,暂停30秒
except requests.exceptions.ConnectionError:
time.sleep(30) #超限时,暂停30秒
except Exception as e:
import traceback
print(traceback.print_exc())
......
api1:
title: 新建一个队友
url: /api/v1/customerService/customerServiceSendInvitation
method: post
data: {"email":"${teammate_email}","role":"${teammate_role}","brand":"${brandName}","hasAllConversation":true,"resourceItemIds":[],"v":"${v}"}
expected:
- eq: {"$.code": 0}
api2:
title: 查看队友列表 + 检查新建队友是否成功
url: /api/v1/customerService/listCustomerService
method: post
data: {"isActivation":-1,"isDelete":0,"v":"${v}"}
before_sql: setting/team/teammate_select.py
expected:
- eq: {"$.code": 0}
- in_list: {"$.data.list[*].id": "${teammate_id}"}
- eq: {"$.data.list[?(@.id=='${teammate_id}')].email":"${teammate_email}"}
- eq: {"$.data.list[?(@.id=='${teammate_id}')].hasAllConversation": True}
- eq: {"$.data.list[?(@.id=='${teammate_id}')].role":"${teammate_role}"}
# - exec: {"code": "assert len(res.json()['data']['list']) == ${teammate_num} + 1"}
api3:
title: 编辑队友信息
url: /api/v1/customerService/updateCustomerServiceMember
method: post
data: {"email":"${teammate_email}","role":"${new_teammate_role}","id":"${teammate_id}","hasAllConversation":true,"resourceItemIds":[],"v":"${v}"}
expected:
- eq: {"$.code": 0}
api4:
title: 检查是否编辑成功
url: /api/v1/customerService/listCustomerService
method: post
data: {"isActivation":-1,"isDelete":0,"v":"${v}"}
expected:
- eq: {"$.code": 0}
- in_list: {"$.data.list[*].id": "${teammate_id}"}
- eq: {"$.data.list[?(@.id=='${teammate_id}')].email":"${teammate_email}"}
- eq: {"$.data.list[?(@.id=='${teammate_id}')].role":"${new_teammate_role}"}
api5:
title: 新增团队
url: /api/v1/resource/addResourceItem
method: post
data: {"name":"${team_name}","picture":"","customerServiceId":[],"resourceName":"team","v":"${v}"}
expected:
- eq: {"$.code": 0}
api6:
title: 检查团队信息 + 检查团队是否新增成功
url: /api/v1/resource/ownerGetResourceItemList
method: post
data: {"resourceType":"team","v":"${v}"}
before_sql: setting/team/team_select.py
expected:
- eq: {"$.code": 0}
- in_list: {"$.data.list[*].id": "${team_id}"}
- eq: {"$.data.list[?(@.id=='${team_id}')].name":"${team_name}"}
- eq: {"$.data.list[?(@.id=='${team_id}')].members": []}
- eq: {"$.data.list[?(@.id=='${team_id}')].picture":""}
- exec: {"code": "assert len(res.json()['data']['list']) == ${team_num}"}
api7:
title: 检查团队信息 + 检查团队是否新增成功
url: /api/v1/resource/getResourceItemList
method: post
data: {"resourceType":"team","v":"${v}"}
expected:
- eq: {"$.code": 0}
- in_list: {"$.data.list[*].id": "${team_id}"}
- eq: {"$.data.list[?(@.id=='${team_id}')].name":"${team_name}"}
- eq: {"$.data.list[?(@.id=='${team_id}')].members": []}
- eq: {"$.data.list[?(@.id=='${team_id}')].picture":""}
- exec: {"code" :"assert len(res.json()['data']['list']) == ${team_num}"}
api8:
title: 新增团队成员
url: /api/v1/resource/addResourceItemMember
method: post
data: {"resourceItemId":"${team_id}","customerServiceId":"${teammate_id}","resourceName":"team","v":"${v}"}
expected:
- eq: {"$.code": 0}
api9:
title: 检查是否新增团队成员成功
url: /api/v1/resource/ownerGetResourceItemList
method: post
data: {"resourceType":"team","v":"${v}"}
expected:
- eq: {"$.code": 0}
- eq: {"$.data.list[?(@.id=='${team_id}')].memberCount": 1}
- eq: {"$.data.list[?(@.id=='${team_id}')].members[?(@.id=='${teammate_id}')].email": "${teammate_email}"}
api10:
title: 检查是否新增团队成员成功
url: /api/v1/resource/getResourceItemList
method: post
data: {"resourceType":"team","v":"${v}"}
expected:
- eq: {"$.code": 0}
- eq: {"$.data.list[?(@.id=='${team_id}')].memberCount": 1}
- eq: {"$.data.list[?(@.id=='${team_id}')].members[?(@.id=='${teammate_id}')].email": "${teammate_email}"}
api11:
title: 删除团队成员
url: /api/v1/resource/removeResourceItemMember
method: post
data: {"resourceItemId": "${team_id}","customerServiceId": "${teammate_id}","resourceName": "team","v": "${v}"}
expected:
- eq: {"$.code": 0}
api12:
title: 编辑团队信息
url: /api/v1/resource/updateResourceItem
method: post
data: {"resourceItemId": "${team_id}","name": "${new_team_name}","picture": "","v": "${v}"}
expected:
- eq: { "$.code": 0 }
api13:
title: 检查是否编辑团队信息成功
url: /api/v1/resource/ownerGetResourceItemList
method: post
data: {"resourceType": "team","v": "${v}"}
expected:
- eq: {"$.code": 0}
- eq: {"$.data.list[?(@.id=='${team_id}')].name": "${new_team_name}"}
api14:
title: 检查是否编辑团队信息成功
url: /api/v1/resource/getResourceItemList
method: post
data: {"resourceType": "team","v": "${v}"}
expected:
- eq: {"$.code": 0}
- eq: {"$.data.list[?(@.id=='${team_id}')].name": "${new_team_name}"}
api15:
title: 检查是否删除团队成员成功
url: /api/v1/resource/ownerGetResourceItemList
method: post
data: {"resourceType": "team","v": "${v}"}
expected:
- eq: { "$.code": 0}
- eq: { "$.data.list[?(@.id=='${team_id}')].memberCount": 0}
- eq: {"$.data.list[?(@.id=='${team_id}')].members": []}
api16:
title: 检查是否删除团队成员成功
url: /api/v1/resource/getResourceItemList
method: post
data: {"resourceType": "team","v": "${v}"}
expected:
- eq: {"$.code": 0}
- eq: {"$.data.list[?(@.id=='${team_id}')].memberCount": 0}
- eq: {"$.data.list[?(@.id=='${team_id}')].members": []}
api17:
title: 删除团队成员
url: /api/v1/customerService/deleteCustomerServiceMember
method: post
after_sql: setting/team/team_delete.py
data: {"id":"${teammate_id}","assignId":"${userId}","v":"${v}"}
expected:
- eq: {"$.code": 0}
api18:
title: 检查是否删除团队成员成功
url: /api/v1/customerService/listCustomerService
method: post
data: {"isActivation":-1,"isDelete":0,"v":"${v}"}
expected:
- eq: {"$.code": 0}
- not_in_list: {"$.data.list[*].id": "${teammate_id}"}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment