diff --git a/TestCase/inbox/test_ticketStatus_02.py b/TestCase/inbox/test_ticketStatus_02.py new file mode 100644 index 0000000000000000000000000000000000000000..63f49523f29c1330f49e5fa755b289ac8b3461e1 --- /dev/null +++ b/TestCase/inbox/test_ticketStatus_02.py @@ -0,0 +1,13 @@ +import pytest +from Utils import yaml_handler +from Utils import req_handler +from TestData.inbox.ticketStatus_test_data import ticketStatusData + +class TestLivechat: + + yaml_path = r'inbox\ticketStatus.yaml' + yaml_data = yaml_handler.yaml_handler.get_case(yaml_path) + @pytest.mark.parametrize('case',yaml_data) + def test_ticketStatus(self,case): + print(case) + req_handler.ReqHandler.send_requests(case=case,var_class=ticketStatusData) diff --git a/TestData/inbox/ticketStatus_test_data.py b/TestData/inbox/ticketStatus_test_data.py new file mode 100644 index 0000000000000000000000000000000000000000..2c597f9c6294c1a60f1dc3df4db52b4b00fc9a09 --- /dev/null +++ b/TestData/inbox/ticketStatus_test_data.py @@ -0,0 +1,4 @@ +from Utils.global_variate import Global + +class ticketStatusData(Global): + pass \ No newline at end of file diff --git a/TestFile/inbox/ticketStatus_selectStatus.py b/TestFile/inbox/ticketStatus_selectStatus.py new file mode 100644 index 0000000000000000000000000000000000000000..399a44436855f1649fb9160e7cca4a1fbee9e703 --- /dev/null +++ b/TestFile/inbox/ticketStatus_selectStatus.py @@ -0,0 +1,34 @@ +from Utils.sql_handler import test_env_conn +from TestData.inbox.ticketStatus_test_data import ticketStatusData + +all_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketStatusData.brandId} and `status` = 1' +your_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketStatusData.brandId} and `status` = 1 and `allocation_uid` = {ticketStatusData.userId}' +unread_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketStatusData.brandId} and `status` = 1 and `read_status` = 1' +unassigned_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketStatusData.brandId} and `status` = 1 and `allocation_uid` = 0' + + +all_ticket_num = len(test_env_conn.select_many_value(sql=all_ticket_select_sql)) +your_ticket_num = len(test_env_conn.select_many_value(sql=your_ticket_select_sql)) +unread_ticket_num = test_env_conn.select_many_value(sql=unread_ticket_select_sql) +unassigned_ticket_num = test_env_conn.select_many_value(sql=unassigned_ticket_select_sql) + + +setattr(ticketStatusData,'all_ticket_num',all_ticket_num) +setattr(ticketStatusData,'your_ticket_num',your_ticket_num) +setattr(ticketStatusData,'your_ticket_num_add',your_ticket_num+1) +setattr(ticketStatusData,'unread_ticket_num',len(unread_ticket_num)) +setattr(ticketStatusData,'unread_ticket_num_add',len(unread_ticket_num)+1) +setattr(ticketStatusData,'unassigned_ticket_num',len(unassigned_ticket_num)) +setattr(ticketStatusData,'unassigned_ticket_num_minus',len(unassigned_ticket_num)-1) + +setattr(ticketStatusData,'unassigned_ticket_id',unassigned_ticket_num[0]['room_id']) + +read_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketStatusData.brandId} and `status` = 1 and `read_status` = 2 and `room_platform` = "willdesk"' +read_ticket_select_result = test_env_conn.select_one_value(sql=read_ticket_select_sql) +setattr(ticketStatusData,'read_ticket_id',read_ticket_select_result["room_id"]) + +msg_select_sql = f'select * from `im_record` where `room_id` = {read_ticket_select_result["room_id"]} order by send_time limit 1' +msg_select_result = test_env_conn.select_one_value(sql=msg_select_sql) +setattr(ticketStatusData,'unread_msg_id',msg_select_result['msg_id']) +setattr(ticketStatusData,'unread_send_time',msg_select_result['send_time']) + diff --git a/YamlCase/inbox/ticketStatus.yaml b/YamlCase/inbox/ticketStatus.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4eec9f819749798c8813950165d1d28258bd91d5 --- /dev/null +++ b/YamlCase/inbox/ticketStatus.yaml @@ -0,0 +1,85 @@ +api1: + title: 检查打开的会话数量 + url: /api/v1/chat/local/count + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"keyword":"","countType":["all","unread","mention","assigned","unassigned","chatbot","spam"],"v":"${v}"} + before_sql: inbox/ticketStatus_selectStatus.py + expected: + - eq: {"$.code" : 0} + - eq: {"$.data.list.all.openCount" : "${all_ticket_num}"} + - eq: {"$.data.list.assigned.openCount" : "${your_ticket_num}"} + - eq: {"$.data.list.unread.openCount" : "${unread_ticket_num}"} + - eq: {"$.data.list.unassigned.openCount" : "${unassigned_ticket_num}"} + +api2: + title: 分配一个会话给自己 + url: /api/v1/chatRoom/operate + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"roomId":"${unassigned_ticket_id}","clientId":"${willdesk_clientId}","event":"allocat","username":"${name}","isMark":false,"allocationUid":"${userId}","v":"${v}"} + expected: + - eq: {"$.code" : 0} + +api3: + title: 检查分配是否成功 + url: /api/v1/chat/local/count + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"keyword":"","countType":["all","unread","mention","assigned","unassigned","chatbot","spam"],"v":"${v}"} + expected: + - eq: {"$.code" : 0} + - like: {"$.data.list.assigned.openCount" : "${your_ticket_num_add}"} + - like: {"$.data.list.unassigned.openCount": "${unassigned_ticket_num_minus}" } + + +api4: + title: 再次设为未分配 + url: /api/v1/chatRoom/operate + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"roomId":"${unassigned_ticket_id}","clientId":"${willdesk_clientId}","event":"allocat","username":"${name}","isMark":false,"allocationUid":"0","v":"${v}"} + expected: + - eq: {"$.code" : 0} + +api5: + title: 恢复分配数据 + url: /api/v1/chat/local/count + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"keyword":"","countType":["all","unread","mention","assigned","unassigned","chatbot","spam"],"v":"${v}"} + expected: + - eq: {"$.code" : 0} + - like: {"$.data.list.assigned.openCount" : "${your_ticket_num}"} + - like: {"$.data.list.unassigned.openCount": "${unassigned_ticket_num}" } + +api6: + title: 将会话标为已读 + url: /api/v1/chatRoom/operate + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"roomId":"${read_ticket_id}","clientId":"${willdesk_clientId}","event":"unread","username":"${name}","isMark":false,"allocationUid":"${userId}","v":"${v}"} + expected: + - eq: {"$.code" : 0} + +api7: + title: 检查设置未读是否成功 + url: /api/v1/chat/local/count + method: post + data: { "uid": "${userId}","uType": 2,"platform": 1,"siteIds": [ "${shopId}" ],"keyword": "","countType": [ "all","unread","mention","assigned","unassigned","chatbot","spam" ],"v": "${v}" } + expected: + - eq: { "$.code": 0 } + - like: { "$.data.list.unread.openCount": "${unread_ticket_num_add}" } + +api8: + title: 读取会话 + ws: willdesk + action: readMsg + data: + roomId: "${read_ticket_id}" + msgId: "${unread_msg_id}" + msgTime: "${unread_send_time}" + sleep: 0.5 + +api9: + title: 检查读取消息是否成功 + url: /api/v1/chat/local/count + method: post + data: { "uid": "${userId}","uType": 2,"platform": 1,"siteIds": [ "${shopId}" ],"keyword": "","countType": [ "all","unread","mention","assigned","unassigned","chatbot","spam" ],"v": "${v}" } + expected: + - eq: { "$.code": 0 } + - like: { "$.data.list.unread.openCount": "${unread_ticket_num}" }