diff --git a/TestData/homepage/homepage_test_data.py b/TestData/homepage/homepage_test_data.py index 7361c40935a04963f598be3d1ac69561157532ab..fe14eef140ae6ad8a419b6caacf8fe61cd38c445 100644 --- a/TestData/homepage/homepage_test_data.py +++ b/TestData/homepage/homepage_test_data.py @@ -1,4 +1,4 @@ from Utils.global_variate import Global class homepageTestData(Global): - pass \ No newline at end of file + willdesk_brand_id = 4877 \ No newline at end of file diff --git a/TestData/inbox/team_test_data.py b/TestData/inbox/team_test_data.py index b9bf78cca0cb4dd817b33d5690274c3b7c529b2e..82714c6210a131313b01162b0bb71b66e10ac446 100644 --- a/TestData/inbox/team_test_data.py +++ b/TestData/inbox/team_test_data.py @@ -1,7 +1,9 @@ from Utils.global_variate import Global +from Utils.sql_handler import SqlHandler +from Utils.config_handler import base_config class teamData(Global): - pass + team_db = SqlHandler(address=base_config.get_value('mysql','address'),port=int(base_config.get_value('mysql','port')),account=base_config.get_value('mysql','account'),password=base_config.get_value('mysql','password')) # brandId = 6052 # shopId = 7238 diff --git a/TestFile/homepage/no_reply_select.py b/TestFile/homepage/no_reply_select.py new file mode 100644 index 0000000000000000000000000000000000000000..6f614e55640b63791e565f2f85d112c05b6836bb --- /dev/null +++ b/TestFile/homepage/no_reply_select.py @@ -0,0 +1,12 @@ +from Utils.sql_handler import test_env_conn +from TestData.homepage.homepage_test_data import homepageTestData + +customer_service_id_select_sql = f'select * from `rel_customerservice_brand` where brand_id = {homepageTestData.brandId}' +customer_service_id_select_result = test_env_conn.select_many_value(sql=customer_service_id_select_sql) +customer_id_list = tuple([cs['customer_service_id'] for cs in customer_service_id_select_result]) + +no_reply_room_select_sql = f'select * from `im_room` where cate_id = {homepageTestData.brandId} and last_msg_uid not in {customer_id_list} and room_type = 1 and is_ignore = 0 and status =1' +no_reply_room_select_result = test_env_conn.select_many_value(sql=no_reply_room_select_sql) +no_reply_num = len(no_reply_room_select_result) + +setattr(homepageTestData, 'no_reply_num', no_reply_num) \ No newline at end of file diff --git a/TestFile/homepage/willdesk_customer_service_select.py b/TestFile/homepage/willdesk_customer_service_select.py new file mode 100644 index 0000000000000000000000000000000000000000..0391516236c3febc9dc7f4d8bb9f77e11a613c7d --- /dev/null +++ b/TestFile/homepage/willdesk_customer_service_select.py @@ -0,0 +1,19 @@ +from Utils.sql_handler import test_env_conn +from TestData.homepage.homepage_test_data import homepageTestData + +willdesk_cs_id_select_sql = f'select * from `rel_customerservice_brand` where brand_id = {homepageTestData.willdesk_brand_id} and is_activation = 1' +willdesk_cs_id_select_result = test_env_conn.select_many_value(sql=willdesk_cs_id_select_sql) +cs_num = len(willdesk_cs_id_select_result) +cs = willdesk_cs_id_select_result[0] +cs_id = cs['customer_service_id'] + +cs_info_select_sql = f'select * from `customer_service` where id = {cs_id}' +cs_info_select_result = test_env_conn.select_one_value(sql=cs_info_select_sql) +cs_name = cs_info_select_result['name'] +cs_profile = cs_info_select_result['profile'] +cs_customer_type = cs_info_select_result['customer_type'] +setattr(homepageTestData, 'cs_id', cs_id) +setattr(homepageTestData, 'cs_name', cs_name) +setattr(homepageTestData, 'cs_profile', cs_profile) +setattr(homepageTestData, 'cs_customer_type', cs_customer_type) +setattr(homepageTestData, 'cs_num', cs_num) \ No newline at end of file diff --git a/TestFile/inbox/team_select.py b/TestFile/inbox/team_select.py index 063db4c4a7315c1ddb090ee2d74f45f75e639d3e..0379093f7fed1c24c5bdc22c94acb48e356bc3c8 100644 --- a/TestFile/inbox/team_select.py +++ b/TestFile/inbox/team_select.py @@ -1,8 +1,7 @@ -from Utils.sql_handler import test_env_conn from TestData.inbox.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) +team_select_result = teamData.team_db.select_many_value(sql=team_select_sql) team_num = len(team_select_result) team_id = team_select_result[0]['id'] @@ -11,16 +10,16 @@ setattr(teamData, 'team_num', team_num) setattr(teamData, 'team_id', team_id) setattr(teamData, 'team_name', team_name) team_room_list_select_sql = f'select room_id from `resource_room_rel` where item_id = {team_id}' -team_room_list_select_result = test_env_conn.select_many_value(sql=team_room_list_select_sql) +team_room_list_select_result = teamData.team_db.select_many_value(sql=team_room_list_select_sql) team_room_list = tuple(i['room_id'] for i in team_room_list_select_result) if team_room_list != (): open_room_select_sql = f'select * from `im_room` where room_id in {team_room_list} and status = 1 and room_type != 2' - open_room_select_result = test_env_conn.select_many_value(sql=open_room_select_sql) + open_room_select_result = teamData.team_db.select_many_value(sql=open_room_select_sql) pending_room_select_sql = f'select * from `im_room` where room_id in {team_room_list} and status = 2 and room_type != 2' - pending_room_select_result = test_env_conn.select_many_value(sql=pending_room_select_sql) + pending_room_select_result = teamData.team_db.select_many_value(sql=pending_room_select_sql) close_room_select_sql = f'select * from `im_room` where room_id in {team_room_list} and status = 3 and room_type != 2' - close_room_select_result = test_env_conn.select_many_value(sql=close_room_select_sql) + close_room_select_result = teamData.team_db.select_many_value(sql=close_room_select_sql) setattr(teamData, 'open_room_num', len(open_room_select_result)) setattr(teamData, 'pending_room_num', len(pending_room_select_result)) setattr(teamData, 'close_room_num', len(close_room_select_result)) @@ -31,24 +30,25 @@ else: setattr(teamData, 'close_room_num', 0) other_room_select_sql = f'select * from `im_room` where `cate_id` = {teamData.brandId} and room_type != 2 and site_id = {teamData.shopId} and status = 1 limit 10' -other_room_select_result = test_env_conn.select_one_value(sql=other_room_select_sql) +other_room_select_result = teamData.team_db.select_one_value(sql=other_room_select_sql) setattr(teamData, 'other_room_id', other_room_select_result['room_id']) setattr(teamData, 'open_room_num_add' , teamData.open_room_num + 1) team_member_select_sql = f'select * from `resource_item_cs_rel` where item_id = {team_id}' -team_member_select_result = test_env_conn.select_many_value(sql=team_member_select_sql) +team_member_select_result = teamData.team_db.select_many_value(sql=team_member_select_sql) team_member_num = len(team_member_select_result) team_member_id = team_member_select_result[0]['cs_id'] setattr(teamData, 'team_member_num', team_member_num) setattr(teamData, 'team_member_id', team_member_id) team_member_info_select_sql = f'select * from `customer_service` where id = {team_member_id}' -team_member_info_select_result = test_env_conn.select_one_value(sql=team_member_info_select_sql) +team_member_info_select_result = teamData.team_db.select_one_value(sql=team_member_info_select_sql) setattr(teamData, 'team_member_name', team_member_info_select_result['name']) setattr(teamData, 'team_member_image', team_member_info_select_result['profile']) setattr(teamData, 'team_member_email', team_member_info_select_result['email']) team_member_open_room_select_sql = f'select * from `im_room` where room_id in {team_room_list} and room_type != 2 and status = 1 and allocation_uid = {team_member_id}' -team_member_open_room_select_result = test_env_conn.select_many_value(sql=team_member_open_room_select_sql) +team_member_open_room_select_result = teamData.team_db.select_many_value(sql=team_member_open_room_select_sql) setattr(teamData, 'team_member_open_room_num', len(team_member_open_room_select_result)) +teamData.team_db.close_db() \ No newline at end of file diff --git a/TestFile/inbox/ticketDetail_finalChat_select.py b/TestFile/inbox/ticketDetail_finalChat_select.py new file mode 100644 index 0000000000000000000000000000000000000000..b893a636d29fe7e1fddaf73c069fb1cb01a2a426 --- /dev/null +++ b/TestFile/inbox/ticketDetail_finalChat_select.py @@ -0,0 +1,21 @@ +from Utils.sql_handler import test_env_conn +from TestData.inbox.ticketDetail_test_data import ticketDetailData + +final_chat_select_sql = f'select * from `im_room` where first_send_uid = {ticketDetailData.customerId} and is_ignore = 0 and room_id != {ticketDetailData.roomId} order by last_msg_time desc' +final_chat_select_result = test_env_conn.select_many_value(sql=final_chat_select_sql) + +final_chat_num = len(final_chat_select_result) +first_chat = final_chat_select_result[0] +first_chat_id = first_chat['room_id'] +first_chat_allocation_name = first_chat['allocation_name'] +first_chat_allocation_avatar = first_chat['allocation_avatar'] +first_chat_allocation_uid = first_chat['allocation_uid'] +first_chat_last_msg = first_chat['last_msg_context'] +first_chat_close_time = first_chat['close_time'] +setattr(ticketDetailData, 'first_chat_id', str(first_chat_id)) +setattr(ticketDetailData, 'first_chat_allocation_name', first_chat_allocation_name) +setattr(ticketDetailData, 'first_chat_allocation_avatar', first_chat_allocation_avatar) +setattr(ticketDetailData, 'first_chat_allocation_uid', first_chat_allocation_uid) +setattr(ticketDetailData, 'first_chat_last_msg', first_chat_last_msg) +setattr(ticketDetailData, 'first_chat_close_time', str(first_chat_close_time)) +setattr(ticketDetailData, 'final_chat_num', final_chat_num) \ No newline at end of file diff --git a/TestFile/inbox/ticketDetail_select.py b/TestFile/inbox/ticketDetail_select.py index 48cae84d7cc6b87d71ec1b76c61ca7176c02d9d8..bb2d3791717105983fd12622582366109d83cad0 100644 --- a/TestFile/inbox/ticketDetail_select.py +++ b/TestFile/inbox/ticketDetail_select.py @@ -1,5 +1,3 @@ -import random - from Utils.sql_handler import test_env_conn from TestData.inbox.ticketDetail_test_data import ticketDetailData diff --git a/YamlCase/homepage/homepage.yaml b/YamlCase/homepage/homepage.yaml index 02d574b0aed4a55c3b9d44d9226a5483ecb98580..6990930f9b2299327f8c0c899cba4eb5289b36b3 100644 --- a/YamlCase/homepage/homepage.yaml +++ b/YamlCase/homepage/homepage.yaml @@ -61,4 +61,43 @@ api6: url: https://api-admin.seoant.com/open-api/getPageSpeedDataByGoogle?domain=${shopDomain}&is_refresh=0 method: get expected: - - eq: {"$.code": 200} \ No newline at end of file + - eq: {"$.code": 200} + +api7: + title: 检查exec接口 + url: /api/v1/autoanswer/execPostRule + method: post + data: {"eventId":"cjhd9umein6c1gkes7ug","shopDomain":"willdesktest-system.myshopify.com","ruleData":{"ruleCondList":[{"condList":[{"robId":"cjhdpumein6edbdndpkg","objName":"ChatBotWorkingHours","objDescribe":"Working hours","objType":"bool","objValue":"true","showType":"","showKind":"","showPlaceholder":""},{"robId":"cjksanuein6akm1n0020","objName":"ChatBotCurrentUrl","objDescribe":"Current URL","objType":"string","objValue":"https://hstest.sealapps.com/helpdesk/home","showType":"","showKind":"url","showPlaceholder":""},{"robId":"cjhd9umein6c1gkes7ug","objName":"ChatBotCustomerVisitsPage","objType":"bool","objValue":"true","showType":"","showKind":"","objDescribe":"ChatBotCustomerVisitsPage"}]}]}} + expected: + - eq: {"$.code": 0} + +api8: + title: 检查willdesk客服接口 + url: /api/v1/customerService/listPublicCustomerService + method: post + data: {"shopId": "${willdesk_brand_id}"} + before_sql: homepage/willdesk_customer_service_select.py + expected: + - eq: { "$.code": 0 } + - eq: { "$.data.list[?(@.id == ${cs_id})].name": "${cs_name}" } + - eq: { "$.data.list[?(@.id == ${cs_id})].profile": "${cs_profile}" } + - eq: { "$.data.list[?(@.id == ${cs_id})].isActive": 1 } + - eq: { "$.data.list[?(@.id == ${cs_id})].customerType": "${cs_customer_type}" } + - exec: {"code": "assert len(res.json()['data']['list']) == ${cs_num}"} + +api9: + title: 检查未读消息数量 + url: /api/v1/chatRoom/noReply + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"cateId":"${brandId}","v":"${v}"} + before_sql: homepage/no_reply_select.py + expected: + - eq: {"$.code": 0} + - eq: {"$.data.total": "${no_reply_num}"} + +api10: + title: 检查advConfig接口 + url: /api/v1/shop/getAdvConfig?v=${v} + method: get + expected: + - eq: {"$.code": 0} diff --git a/YamlCase/inbox/ticketDetail.yaml b/YamlCase/inbox/ticketDetail.yaml index 37990fb862828987d90c1274f4948be3ce9a80ea..7876b73c733899ee9b734bf40a520aac1a2c7c4f 100644 --- a/YamlCase/inbox/ticketDetail.yaml +++ b/YamlCase/inbox/ticketDetail.yaml @@ -95,4 +95,29 @@ api11: method: get expected: - eq: {"$.code" : 0} - - eq: {"$.data.enterType" : 1} \ No newline at end of file + - eq: {"$.data.enterType" : 1} + +api12: + title: b端获取房间号 + 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[?(@.fromID == '${customerId}')].roomId"} + expected: + - eq: {"$.code" : 0} + - like: {"$.data.list[?(@.fromID == '${customerId}')].firstSendUid" : "${customerId}"} + +api13: + title: 检查其他最后会话信息 + url: /api/v1/chatRoom/closeList + method: post + data: {"uid":"${userId}","uType":2,"platform":1,"firstSendUid":"${customerId}","firstSendUidType":1,"siteId":"${shopId}","roomId":"${roomId}","page":1,"pageSize":2,"v":"${v}"} + before_sql: inbox/ticketDetail_finalChat_select.py + expected: + - eq: {"$.code": 0} + - eq: {"$.data.total": "${final_chat_num}"} + - eq: {"$.data.list[0].roomId": "${first_chat_id}"} + - eq: {"$.data.list[0].allocationName": "${first_chat_allocation_name}"} + - eq: {"$.data.list[0].allocationUid": "${first_chat_allocation_uid}"} + - eq: {"$.data.list[0].lastMsgContext": "${first_chat_last_msg}"} + - eq: {"$.data.list[0].closeTime": "${first_chat_close_time}"} \ No newline at end of file diff --git a/YamlCase/setting/notification.yaml b/YamlCase/setting/notification.yaml index ff3db82cb44b5f2994e2c8ff8a3da1b47b35d239..1603f9b855e90e099abc1006c39a5bdcdc2aed95 100644 --- a/YamlCase/setting/notification.yaml +++ b/YamlCase/setting/notification.yaml @@ -48,3 +48,23 @@ api6: - eq: {"$.code": 0} - eq: {"$.data.settingInfoMap.mapList.0.settings[?(@.itemId == 102)].itemValue": "1"} - eq: {"$.data.settingInfoMap.mapList.0.settings[?(@.itemId == 103)].itemValue": "0"} + +api7: + title: b端获取房间号 + 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[?(@.fromID == '${customerId}')].roomId"} + expected: + - eq: {"$.code" : 0} + - like: {"$.data.list[?(@.fromID == '${customerId}')].firstSendUid" : "${customerId}"} + + +api8: + title: 检查通知接口是否ping通 + url: /api/v1/resource/roomNotify + method: post + data: {"roomId":"${roomId}","v":"${v}"} + expected: + - eq: {"$.code" : 0} + - eq: {"$.data.res": true} \ No newline at end of file