From 4657092519d086bb4f11541c76af2db48c9f6fbb Mon Sep 17 00:00:00 2001 From: zhanhuasheng Date: Fri, 22 Mar 2024 14:41:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TestCase/inbox/test_04_ticketInfo.py | 17 +++ TestData/inbox/ticketInfo_test_data.py | 4 + TestData/inbox/ticketStatus_test_data.py | 3 +- TestFile/inbox/ticketInfo_select.py | 24 ++++ TestFile/inbox/ticketInfo_select2.py | 11 ++ TestFile/inbox/ticketStatus_selectStatus.py | 2 +- YamlCase/inbox/ticketInfo.yaml | 39 ++++++ YamlCase/inbox/ticketOpreate.yaml | 144 +++++++++++++++++++- 8 files changed, 238 insertions(+), 6 deletions(-) create mode 100644 TestCase/inbox/test_04_ticketInfo.py create mode 100644 TestData/inbox/ticketInfo_test_data.py create mode 100644 TestFile/inbox/ticketInfo_select.py create mode 100644 TestFile/inbox/ticketInfo_select2.py create mode 100644 YamlCase/inbox/ticketInfo.yaml diff --git a/TestCase/inbox/test_04_ticketInfo.py b/TestCase/inbox/test_04_ticketInfo.py new file mode 100644 index 0000000..a5d18bf --- /dev/null +++ b/TestCase/inbox/test_04_ticketInfo.py @@ -0,0 +1,17 @@ +import pytest +from Utils import yaml_handler +from Utils import req_handler +from TestData.inbox.ticketInfo_test_data import ticketInfoData + +''' +这个文件和ticketStatus公用一个变量类 +''' + +class TestTicketInfo: + + yaml_path = r'inbox\ticketInfo.yaml' + yaml_data = yaml_handler.yaml_handler.get_case(yaml_path) + @pytest.mark.parametrize('case',yaml_data) + def test_ticketInfo(self,case): + print(case) + req_handler.ReqHandler.send_requests(case=case,var_class=ticketInfoData) diff --git a/TestData/inbox/ticketInfo_test_data.py b/TestData/inbox/ticketInfo_test_data.py new file mode 100644 index 0000000..e6fb099 --- /dev/null +++ b/TestData/inbox/ticketInfo_test_data.py @@ -0,0 +1,4 @@ +from Utils.global_variate import Global + +class ticketInfoData(Global): + pass \ No newline at end of file diff --git a/TestData/inbox/ticketStatus_test_data.py b/TestData/inbox/ticketStatus_test_data.py index 2c597f9..2c11d3e 100644 --- a/TestData/inbox/ticketStatus_test_data.py +++ b/TestData/inbox/ticketStatus_test_data.py @@ -1,4 +1,5 @@ from Utils.global_variate import Global class ticketStatusData(Global): - pass \ No newline at end of file + ticket_title = 'autotest_ticket_title' + #别改这里的数据 \ No newline at end of file diff --git a/TestFile/inbox/ticketInfo_select.py b/TestFile/inbox/ticketInfo_select.py new file mode 100644 index 0000000..95d41d9 --- /dev/null +++ b/TestFile/inbox/ticketInfo_select.py @@ -0,0 +1,24 @@ +from Utils.sql_handler import test_env_conn +from TestData.inbox.ticketInfo_test_data import ticketInfoData + +all_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketInfoData.brandId} and `status` = 1 and `is_ignore` = 0' +wait_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketInfoData.brandId} and `status` = 2 and `is_ignore` = 0' +close_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketInfoData.brandId} and `status` = 3 and `is_ignore` = 0' +your_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketInfoData.brandId} and `status` = 1 and `allocation_uid` = {ticketInfoData.userId} and `is_ignore` = 0' +your_wait_ticket_sql = f'select * from `im_room` where `cate_id` = {ticketInfoData.brandId} and `status` = 2 and `allocation_uid` = {ticketInfoData.userId} and `is_ignore` = 0' +your_close_ticket_sql = f'select * from `im_room` where `cate_id` = {ticketInfoData.brandId} and `status` = 3 and `allocation_uid` = {ticketInfoData.userId} and `is_ignore` = 0' + +all_ticket_num = len(test_env_conn.select_many_value(sql=all_ticket_select_sql)) +wait_ticket_num = len(test_env_conn.select_many_value(sql=wait_ticket_select_sql)) +close_ticket_num = len(test_env_conn.select_many_value(sql=close_ticket_select_sql)) +your_ticket_num = len(test_env_conn.select_many_value(sql=your_ticket_select_sql)) +your_wait_ticket_num = len(test_env_conn.select_many_value(sql=your_wait_ticket_sql)) +your_close_ticket_num = len(test_env_conn.select_many_value(sql=your_close_ticket_sql)) + +setattr(ticketInfoData,'all_ticket_num',all_ticket_num) +setattr(ticketInfoData,'close_ticket_num',close_ticket_num) +setattr(ticketInfoData,'wait_ticket_num',wait_ticket_num) +setattr(ticketInfoData,'your_ticket_num',your_ticket_num) +setattr(ticketInfoData,'your_wait_ticket_num',your_wait_ticket_num) +setattr(ticketInfoData,'your_close_ticket_num',your_close_ticket_num) + diff --git a/TestFile/inbox/ticketInfo_select2.py b/TestFile/inbox/ticketInfo_select2.py new file mode 100644 index 0000000..6847ef8 --- /dev/null +++ b/TestFile/inbox/ticketInfo_select2.py @@ -0,0 +1,11 @@ +from Utils.sql_handler import test_env_conn +from TestData.inbox.ticketInfo_test_data import ticketInfoData + +ticket_info_select_sql = f'select * from im_room where room_id = {ticketInfoData.roomId}' +ticket_info_result = test_env_conn.select_one_value(sql=ticket_info_select_sql) + +setattr(ticketInfoData, 'ticketCustomerImage', ticket_info_result['first_send_avatar']) +setattr(ticketInfoData, 'ticketCustomerName', ticket_info_result['first_send_name']) +setattr(ticketInfoData, 'ticketLastMsg', ticket_info_result['last_msg_context']) +setattr(ticketInfoData, 'ticketLastMsgTime', str(ticket_info_result['last_msg_time'])) +setattr(ticketInfoData, 'ticketTitle', ticket_info_result['title']) \ No newline at end of file diff --git a/TestFile/inbox/ticketStatus_selectStatus.py b/TestFile/inbox/ticketStatus_selectStatus.py index f5b7288..ef866ba 100644 --- a/TestFile/inbox/ticketStatus_selectStatus.py +++ b/TestFile/inbox/ticketStatus_selectStatus.py @@ -23,7 +23,7 @@ setattr(ticketStatusData,'unassigned_ticket_num_minus',len(unassigned_ticket_num 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" and `is_ignore` = 0' +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" and `is_ignore` = 0 and `site_id` = {ticketStatusData.shopId}' read_ticket_select_result = test_env_conn.select_one_value(sql=read_ticket_select_sql) setattr(ticketStatusData,'read_ticket_id',str(read_ticket_select_result["room_id"])) diff --git a/YamlCase/inbox/ticketInfo.yaml b/YamlCase/inbox/ticketInfo.yaml new file mode 100644 index 0000000..f855f30 --- /dev/null +++ b/YamlCase/inbox/ticketInfo.yaml @@ -0,0 +1,39 @@ +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/ticketInfo_select.py + expected: + - eq: { "$.code": 0 } + - eq: { "$.data.list.all.openCount": "${all_ticket_num}" } + - eq: { "$.data.list.all.waitCount": "${wait_ticket_num}" } + - eq: { "$.data.list.all.closeCount": "${close_ticket_num}" } + - eq: { "$.data.list.assigned.openCount": "${your_ticket_num}" } + - eq: { "$.data.list.assigned.waitCount": "${your_wait_ticket_num}" } + - eq: { "$.data.list.assigned.closeCount": "${your_close_ticket_num}" } + + +api2: + title: 获取一个会话id + url: /api/v1/chat/local/roomList + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"status":1,"page":1,"pageSize":20,"sortName":"all","keyword":"","v":"${v}"} + set_value: {"roomId" : "$.data.list[0].roomId"} + expected: + - eq: { "$.code": 0 } + +api3: + title: 检查会话信息 + url: /api/v1/chat/local/roomList + method: post + data: { "uid": "${userId}","uType": 2,"platform": 1,"siteIds": [ "${shopId}" ],"status": 1,"page": 1,"pageSize": 20,"sortName": "all","keyword": "","v": "${v}" } + before_sql: inbox/ticketInfo_select2.py + expected: + - eq: { "$.code": 0 } + - eq: { "$.data.list[?(@.roomId == '${roomId}')].title": "${ticketTitle}"} + - eq: { "$.data.list[?(@.roomId == '${roomId}')].firstSendName": "${ticketCustomerName}"} + - eq: { "$.data.list[?(@.roomId == '${roomId}')].firstSendAvatar": "${ticketCustomerImage}"} + - eq: { "$.data.list[?(@.roomId == '${roomId}')].lastMsgContext": "${ticketLastMsg}"} +# - eq: { "$.data.list[?(@.roomId == '${roomId}')].lastMsgTime": "${ticketLastMsgTime}"} + diff --git a/YamlCase/inbox/ticketOpreate.yaml b/YamlCase/inbox/ticketOpreate.yaml index db4e93d..868ebed 100644 --- a/YamlCase/inbox/ticketOpreate.yaml +++ b/YamlCase/inbox/ticketOpreate.yaml @@ -1,5 +1,5 @@ api1: - title: 标记为垃圾邮件 + title: 标记为垃圾会话 url: /api/v1/chat/local/moveToSpamList method: post data: {"roomId":"${read_ticket_id}","isMoveToSpam":true,"v":"${v}"} @@ -7,7 +7,7 @@ api1: - eq: {"$.code": 0} api2: - title: 检查是否标记为垃圾邮件 + title: 检查是否标记为垃圾会话 url: /api/v1/chat/local/roomList method: post data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"status":1,"page":1,"pageSize":20,"sortName":"spam","keyword":"","v":"${v}"} @@ -15,7 +15,7 @@ api2: - eq: {"$.data.list[?(@.roomId == '${read_ticket_id}')].isIgnore" : true} api3: - title: 取消标记为垃圾邮件 + title: 取消标记为垃圾会话 url: /api/v1/chat/local/moveToSpamList method: post data: {"roomId":"${read_ticket_id}","isMoveToSpam":false,"v":"${v}"} @@ -29,4 +29,140 @@ api4: data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"keyword":"","countType":["all","unread","mention","assigned","unassigned","chatbot","spam"],"v":"${v}"} expected: - eq: {"$.code" : 0} - - eq: {"$.data.list.all.openCount" : "${all_ticket_num}"} \ No newline at end of file + - eq: {"$.data.list.all.openCount" : "${all_ticket_num}"} + +api5: + title: 标记为紧急会话 + url: /api/v1/chatRoom/operate + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"roomId":"${read_ticket_id}","clientId":"${willdesk_clientId}","event":"mark","username":"${name}","isMark":true,"allocationUid":"${userId}","v":"${v}"} + expected: + - eq: {"$.code": 0} + +api6: + title: 检查是否标记为紧急会话 + url: /api/v1/chat/local/roomList + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"status":1,"page":1,"pageSize":20,"sortName":"all","keyword":"","v":"${v}"} + expected: + - eq: {"$.code" : 0} + - eq: {"$.data.list[?(@.roomId == '${read_ticket_id}')].isMark" : true} + +api7: + title: 取消标记为紧急会话 + url: /api/v1/chatRoom/operate + method: post + data: { "uid": "${userId}","uType": 2,"platform": 1,"roomId": "${read_ticket_id}","clientId": "${willdesk_clientId}","event": "mark","username": "${name}","isMark": false,"allocationUid": "${userId}","v": "${v}" } + expected: + - eq: { "$.code": 0 } + +api8: + title: 检查是否取消标记为紧急会话 + url: /api/v1/chat/local/roomList + method: post + data: { "uid": "${userId}","uType": 2,"platform": 1,"siteIds": ["${shopId}"],"status": 1,"page": 1,"pageSize": 20,"sortName": "all","keyword": "","v": "${v}" } + expected: + - eq: { "$.code": 0 } + - eq: { "$.data.list[?(@.roomId == '${read_ticket_id}')].isMark": false } + +api9: + title: 标记为待定会话 + url: /api/v1/chatRoom/operate + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"roomId":"${read_ticket_id}","clientId":"${willdesk_clientId}","event":"wait","username":"${name}","isMark":false,"allocationUid":"${userId}","v":"${v}"} + expected: + - eq: {"$.code": 0} + +api10: + title: 检查是否标记为待定会话 + url: /api/v1/chat/local/roomList + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"status":2,"page":1,"pageSize":20,"sortName":"all","keyword":"","v":"${v}"} + expected: + - eq: {"$.code" : 0} + - eq: {"$.data.list[?(@.roomId == '${read_ticket_id}')].status" : 2} + +api11: + title: 取消标记为待定会话 + url: /api/v1/chatRoom/operate + method: post + data: {"uid": "${userId}","uType": 2,"platform": 1,"roomId": "${read_ticket_id}","clientId": "${willdesk_clientId}","event": "open","username": "${name}","isMark": false,"allocationUid": "${userId}","v": "${v}" } + expected: + - eq: { "$.code": 0 } + +api12: + title: 检查是否取消标记为待定会话 + url: /api/v1/chat/local/roomList + method: post + data: { "uid": "${userId}","uType": 2,"platform": 1,"siteIds": ["${shopId}"],"status": 1,"page": 1,"pageSize": 20,"sortName": "all","keyword": "","v": "${v}" } + expected: + - eq: { "$.code": 0 } + - eq: { "$.data.list[?(@.roomId == '${read_ticket_id}')].status": 1} + +api13: + title: 关闭会话 + url: /api/v1/chatRoom/operate + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"roomId":"${read_ticket_id}","clientId":"${willdesk_clientId}","event":"close","username":"${name}","isMark":false,"allocationUid":"${userId}","v":"${v}"} + expected: + - eq: {"$.code": 0} + +api14: + title: 检查是否关闭会话 + url: /api/v1/chat/local/roomList + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"status":3,"page":1,"pageSize":20,"sortName":"all","keyword":"","v":"${v}"} + expected: + - eq: {"$.code" : 0} + - eq: {"$.data.list[?(@.roomId == '${read_ticket_id}')].status" : 3} + +api15: + title: 重新打开会话 + url: /api/v1/chatRoom/operate + method: post + data: {"uid": "${userId}","uType": 2,"platform": 1,"roomId": "${read_ticket_id}","clientId": "${willdesk_clientId}","event": "open","username": "${name}","isMark": false,"allocationUid": "${userId}","v": "${v}" } + expected: + - eq: { "$.code": 0 } + +api16: + title: 检查是否重新打开会话 + url: /api/v1/chat/local/roomList + method: post + data: { "uid": "${userId}","uType": 2,"platform": 1,"siteIds": ["${shopId}"],"status": 1,"page": 1,"pageSize": 20,"sortName": "all","keyword": "","v": "${v}" } + expected: + - eq: { "$.code": 0 } + - eq: { "$.data.list[?(@.roomId == '${read_ticket_id}')].status": 1} + +api17: + title: 添加会话标题 + url: /api/v1/chatRoom/operate + method: post + data: {"avatar":"","uid":5746,"uType":2,"platform":1,"roomId":"${read_ticket_id}","clientId":"${willdesk_clientId}","event":"title","isMark":true,"title":"${ticket_title}","allocationUid":"${userId}","allocationName":"${name}","allocationAvatar":"","username":"${name}","v":"${v}"} + expected: + - eq: {"$.code": 0} + +api18: + title: 检查是否成功添加会话标题 + url: /api/v1/chat/local/roomList + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"status":1,"page":1,"pageSize":20,"sortName":"all","keyword":"","v":"${v}"} + expected: + - eq: {"$.code" : 0} + - eq: {"$.data.list[?(@.roomId == '${read_ticket_id}')].title" : "${ticket_title}"} + +api19: + title: 删除会话标题 + url: /api/v1/chatRoom/operate + method: post + data: {"avatar":"","uid":5746,"uType":2,"platform":1,"roomId":"${read_ticket_id}","clientId":"${willdesk_clientId}","event":"title","isMark":true,"title":"","allocationUid":"${userId}","allocationName":"${name}","allocationAvatar":"","username":"${name}","v":"${v}"} + expected: + - eq: { "$.code": 0 } + +api20: + title: 检查是否成功删除会话标题 + url: /api/v1/chat/local/roomList + method: post + data: { "uid": "${userId}","uType": 2,"platform": 1,"siteIds": ["${shopId}"],"status": 1,"page": 1,"pageSize": 20,"sortName": "all","keyword": "","v": "${v}" } + expected: + - eq: { "$.code": 0 } + - eq: {"$.data.list[?(@.roomId == '${read_ticket_id}')].title" : ""} -- GitLab