Commit b0b66f06 authored by zhanhuasheng's avatar zhanhuasheng

bugfix

新增用例
parent 0f5fbd61
import pytest
from Utils import yaml_handler
from Utils import req_handler
from TestData.setting.email_integration_test_data import emailIntegrationData
class TestEmailIntegration:
yaml_path = r'setting\emailIntegration.yaml'
yaml_data = yaml_handler.yaml_handler.get_case(yaml_path)
@pytest.mark.parametrize('case',yaml_data)
def test_emailIntegration(self,case):
print(case)
req_handler.ReqHandler.send_requests(case=case,var_class=emailIntegrationData)
import pytest
from Utils import yaml_handler
from Utils import req_handler
from TestData.setting.whatsapp_integration_test_data import whatsappIntegrationData
class TestWhatsappIntegration:
yaml_path = r'setting\whatsappIntegration.yaml'
yaml_data = yaml_handler.yaml_handler.get_case(yaml_path)
@pytest.mark.parametrize('case',yaml_data)
def test_whatsappIntegration(self,case):
print(case)
req_handler.ReqHandler.send_requests(case=case,var_class=whatsappIntegrationData)
from Utils.global_variate import Global
class emailIntegrationData(Global):
append_email_address = 'autotest@channelwill.cn'
append_email_name = 'autotest'
append_email_status = 0
new_email_name = 'autotest2'
\ No newline at end of file
from Utils.global_variate import Global
from Utils.mockData_handler import data_handler
class whatsappIntegrationData(Global):
insert_waba_id = '278209842035999'
brandId = 6052
# whatsapp_waba_id = '244934102041248'
insert_whatsapp_phone = data_handler.phone()
insert_whatsapp_name = 'autotest_whatsapp'
insert_space_id = 'C932156710588723999'
insert_waba_name = 'autotest_waba_name'
insert_whatsapp_status = 'CONNECTED'
template_category = 'MARKETING'
template_language = 'en'
template_content = 'whatsapp_autotest_content'
template_update_content = 'whatsapp_autotest_update_content'
template_header = data_handler.name()
template_footer = 'whatsapp_autotest_footer'
delete_template_code = '940158777543966999'
delete_template_content = [{"Text":"111","Type":"BODY"},{"Text":"222","Type":"FOOTER"}]
\ No newline at end of file
from Utils.sql_handler import test_env_conn
from TestData.setting.email_integration_test_data import emailIntegrationData
email_select_sql = f'select * from `email_config` where brand_id = {emailIntegrationData.brandId}'
email_select_result = test_env_conn.select_many_value(sql=email_select_sql)
email_insert_sql = f"""INSERT INTO email_config (brand_id,email_servicer_id,email,email_name,auth_code,refresh_token,raw_token,code_type,imap_addr,imap_port,imap_ssl,smtp_addr,smtp_port,smtp_ssl,enable_signature,signature_content,auth_folder,connect_status,failed_reason,status,create_at,update_at) VALUES
({emailIntegrationData.brandId},7,'{emailIntegrationData.append_email_address}','{emailIntegrationData.append_email_name}','mFmir6+EXv7TMXstfilhdjOJ3YeDJ/O+qjWQnp3540k=','','',0,'imap.exmail.qq.com',993,1,'smtp.exmail.qq.com',465,1,1,'<p>Best wishes&nbsp;</p><span class="agent-name unique-tags" contenteditable="false">Agent name</span> | <span>Customer Support</span>','1',{emailIntegrationData.append_email_status},'',1,'2024-03-20 18:45:25','2024-03-20 18:50:02');
"""
if email_select_result:
email = email_select_result[0]
email_id = email['id']
email_name = email['email_name']
email_address = email['email']
email_status = email['connect_status']
email_num = len(email_select_result)
else:
test_env_conn.execute_sql(sql=email_insert_sql)
email_address = emailIntegrationData.append_email_address
email_name = emailIntegrationData.append_email_name
email_status = emailIntegrationData.append_email_status
email_select_sql = f'select * from `email_config` where brand_id = {emailIntegrationData.brandId} and email = "{email_address}"'
email_select_result = test_env_conn.select_one_value(sql=email_select_sql)
email_id = email_select_result['id']
email_num = 1
setattr(emailIntegrationData, 'email_id', email_id)
setattr(emailIntegrationData, 'email_address', email_address)
setattr(emailIntegrationData, 'email_name', email_name)
setattr(emailIntegrationData, 'email_status', email_status)
setattr(emailIntegrationData, 'email_num', email_num)
\ No newline at end of file
from Utils.sql_handler import test_env_conn
from TestData.setting.email_integration_test_data import emailIntegrationData
email_select_sql = f'select * from `email_config` where brand_id = {emailIntegrationData.brandId} and email = "{emailIntegrationData.append_email_address}" and email_name = "{emailIntegrationData.append_email_name}"'
email_select_result = test_env_conn.select_one_value(sql=email_select_sql)
if email_select_result:
append_email_id = email_select_result['id']
else:
email_insert_sql = f"""INSERT INTO email_config (brand_id,email_servicer_id,email,email_name,auth_code,refresh_token,raw_token,code_type,imap_addr,imap_port,imap_ssl,smtp_addr,smtp_port,smtp_ssl,enable_signature,signature_content,auth_folder,connect_status,failed_reason,status,create_at,update_at) VALUES
({emailIntegrationData.brandId},7,'{emailIntegrationData.append_email_address}','{emailIntegrationData.append_email_name}','mFmir6+EXv7TMXstfilhdjOJ3YeDJ/O+qjWQnp3540k=','','',0,'imap.exmail.qq.com',993,1,'smtp.exmail.qq.com',465,1,1,'<p>Best wishes&nbsp;</p><span class="agent-name unique-tags" contenteditable="false">Agent name</span> | <span>Customer Support</span>','1',{emailIntegrationData.append_email_status},'',1,'2024-03-20 18:45:25','2024-03-20 18:50:02');
"""
test_env_conn.execute_sql(sql=email_insert_sql)
email_select_sql = f'select * from `email_config` where brand_id = {emailIntegrationData.brandId} and email = "{emailIntegrationData.append_email_address}"'
email_select_result = test_env_conn.select_one_value(sql=email_select_sql)
append_email_id = email_select_result['id']
setattr(emailIntegrationData, 'append_email_id', append_email_id)
\ No newline at end of file
from Utils.sql_handler import test_env_conn
from TestData.setting.whatsapp_integration_test_data import whatsappIntegrationData
whatsapp_account_select_sql = f'select * from `whatsapp_phone` where brand_id = {whatsappIntegrationData.brandId} and is_deleted = 0'
whatsapp_account_select_result = test_env_conn.select_many_value(sql=whatsapp_account_select_sql)
if whatsapp_account_select_result:
whatsapp_account = whatsapp_account_select_result[0]
whatsapp_display_name = whatsapp_account['verified_name']
whatsapp_phone_number = whatsapp_account['phone_number']
whatsapp_status = whatsapp_account['status']
whatsapp_id = whatsapp_account['id']
whatsapp_waba_id = whatsapp_account['waba_id']
waba_account_select_sql = f'select * from `whatsapp_conf` where waba_id = {whatsapp_waba_id}'
waba_account_select_result = test_env_conn.select_one_value(sql=waba_account_select_sql)
whatsapp_waba_name = waba_account_select_result['display_name']
whatsapp_num = len(whatsapp_account_select_result)
else:
whatsapp_insert_sql = f"""INSERT INTO `whatsapp_phone` (waba_id,brand_id,shop_id,phone_number,verified_name,status,quality_rating,code_verification_status,new_name_status,name_status,messaging_limit_tier,is_deleted,created_at,updated_at) VALUES
('{whatsappIntegrationData.insert_waba_id}',{whatsappIntegrationData.brandId},7314,'{whatsappIntegrationData.insert_whatsapp_phone}','{whatsappIntegrationData.insert_whatsapp_name}','{whatsappIntegrationData.insert_whatsapp_status}','GREEN','EXPIRED','NONE','APPROVED','TIER_250',0,'2024-03-26 16:34:29','2024-04-15 16:32:43');
"""
waba_insert_sql = f"""INSERT INTO `whatsapp_conf` (brand_id,cust_space_id,waba_id,display_name,currency,account_review_status,is_deleted,created_at,updated_at) VALUES
({whatsappIntegrationData.brandId},'{whatsappIntegrationData.insert_space_id}','{whatsappIntegrationData.insert_waba_id}','{whatsappIntegrationData.insert_waba_name}','USD','APPROVED',0,'2024-03-25 16:24:52','2024-04-15 16:35:46');
"""
test_env_conn.execute_sql(sql=whatsapp_insert_sql)
test_env_conn.execute_sql(sql=waba_insert_sql)
whatsapp_display_name = whatsappIntegrationData.insert_whatsapp_name
whatsapp_phone_number = whatsappIntegrationData.insert_whatsapp_phone
whatsapp_status = whatsappIntegrationData.insert_whatsapp_status
whatsapp_waba_id = whatsappIntegrationData.insert_waba_id
whatsapp_waba_name = whatsappIntegrationData.insert_waba_name
whatsapp_account_select_sql = f'select * from `whatsapp_phone` where brand_id = {whatsappIntegrationData.brandId} and verified_name = "{whatsapp_display_name}" and phone_number = "{whatsapp_phone_number}" and is_deleted = 0'
whatsapp_account_select_result = test_env_conn.select_one_value(sql=whatsapp_account_select_sql)
whatsapp_id = whatsapp_account_select_result['id']
whatsapp_num = 1
waba_num_select_sql = f'select * from `whatsapp_conf` where brand_id = {whatsappIntegrationData.brandId}'
waba_num_select_result = test_env_conn.select_many_value(sql=waba_num_select_sql)
waba_num = len(waba_num_select_result)
setattr(whatsappIntegrationData, 'whatsapp_id', whatsapp_id)
setattr(whatsappIntegrationData, 'whatsapp_waba_id', whatsapp_waba_id)
setattr(whatsappIntegrationData, 'whatsapp_waba_name', whatsapp_waba_name)
setattr(whatsappIntegrationData, 'whatsapp_display_name', whatsapp_display_name)
setattr(whatsappIntegrationData, 'whatsapp_phone_number', whatsapp_phone_number)
setattr(whatsappIntegrationData, 'whatsapp_status', whatsapp_status)
setattr(whatsappIntegrationData, 'waba_num', waba_num)
setattr(whatsappIntegrationData, 'whatsapp_num', whatsapp_num)
from Utils.sql_handler import test_env_conn
from TestData.setting.whatsapp_integration_test_data import whatsappIntegrationData
try:
whatsapp_account_delete_sql = f'delete from whatsapp_phone where brand_id = {whatsappIntegrationData.brandId} and verified_name = "{whatsappIntegrationData.insert_whatsapp_name}" and waba_id = "{whatsappIntegrationData.insert_waba_id}"'
whatsapp_waba_delete_sql = f'delete from whatsapp_conf where brand_id = {whatsappIntegrationData.brandId} and waba_id = "{whatsappIntegrationData.insert_waba_id}" and display_name = "{whatsappIntegrationData.insert_waba_name}"'
whatsapp_template_delete_sql = f'delete from whatsapp_template where brand_id = {whatsappIntegrationData.brandId} and template_name like "%autotest%"'
test_env_conn.execute_sql(sql=whatsapp_account_delete_sql)
test_env_conn.execute_sql(sql=whatsapp_waba_delete_sql)
test_env_conn.execute_sql(sql=whatsapp_template_delete_sql)
except Exception as e:
print('执行失败',e)
\ No newline at end of file
from Utils.sql_handler import test_env_conn
from TestData.setting.whatsapp_integration_test_data import whatsappIntegrationData
whatsapp_template_select_sql = f'select * from `whatsapp_template` where brand_id = {whatsappIntegrationData.brandId} and waba_id = {whatsappIntegrationData.whatsapp_waba_id}'
whatsapp_template_select_result = test_env_conn.select_many_value(sql=whatsapp_template_select_sql)
whatsapp_template = whatsapp_template_select_result[0]
whatsapp_template_code = whatsapp_template['template_code']
whatsapp_template_status = whatsapp_template['audit_status']
whatsapp_template_category = whatsapp_template['category']
whatsapp_template_language = whatsapp_template['language']
whatsapp_template_name = whatsapp_template['template_name']
whatsapp_template_content = whatsapp_template['components']
whatsapp_template_example = whatsapp_template['example']
whatsapp_template_num = len(whatsapp_template_select_result)
setattr(whatsappIntegrationData, 'whatsapp_template_num', whatsapp_template_num)
setattr(whatsappIntegrationData, 'whatsapp_template_code', whatsapp_template_code)
setattr(whatsappIntegrationData, 'whatsapp_template_status', whatsapp_template_status)
setattr(whatsappIntegrationData, 'whatsapp_template_category', whatsapp_template_category)
setattr(whatsappIntegrationData, 'whatsapp_template_language', whatsapp_template_language)
setattr(whatsappIntegrationData, 'whatsapp_template_name', whatsapp_template_name)
setattr(whatsappIntegrationData, 'whatsapp_template_content', whatsapp_template_content)
setattr(whatsappIntegrationData, 'whatsapp_template_example', whatsapp_template_example)
whatsapp_active_account_select_sql = f'select * from whatsapp_phone where brand_id = {whatsappIntegrationData.brandId} and is_deleted = 0'
whatsapp_active_account_select_result = test_env_conn.select_many_value(sql=whatsapp_active_account_select_sql)
whatsapp_active_account_num = len(whatsapp_active_account_select_result)
setattr(whatsappIntegrationData, 'whatsapp_active_account_num', whatsapp_active_account_num)
delete_template_select_sql = f'select * from whatsapp_template where brand_id = {whatsappIntegrationData.brandId} and template_name like "%autotest%"'
delete_template_select_result = test_env_conn.select_one_value(sql=delete_template_select_sql)
if delete_template_select_result:
delete_template_code = delete_template_select_result['template_code']
setattr(whatsappIntegrationData, 'delete_template_code', delete_template_code)
import random
import string
class MockData:
......@@ -6,6 +7,8 @@ class MockData:
number = '13' + str(random.randint(100000000, 999999999))
return number
def name(self):
name = "autotest_" + ''.join(random.choices(string.ascii_lowercase + string.digits, k=5))
return name
data_handler = MockData()
\ No newline at end of file
data_handler = MockData()
api1:
title: 添加邮箱集成
url: /api/v1/email/addEmailConfig
method: post
data: {"emailServicerId":7,"email":"${append_email_address}","authCode":"123456","imapAddr":"imap.com","imapPort":993,"imapSsl":0,"smtpAddr":"smtp.com","smtpPort":587,"smtpSsl":0,"enableSignature":1,"signatureContent":"<p >Best wishes&nbsp;</p><span class=\"agent-name unique-tags\" contenteditable=\"false\">Agent name</span> | <span>Customer Support</span>","authFolder":["1","2"],"id":0,"emailName":"${append_email_name}","v":"${v}"}
set_value: {"append_email_id" : "$.data.id"}
expected:
- eq: {"$.code": 0}
api2:
title: 检查邮箱是否添加成功
url: /api/v1/email/listEmailConfig
method: post
data: {"v":"${v}"}
expected:
- eq: {"$.code": 0}
- eq: {"$.data.list[?(@.id==${append_email_id})].emailName": "${append_email_name}"}
- eq: {"$.data.list[?(@.id==${append_email_id})].email":"${append_email_address}"}
api3:
title: 检查邮箱信息
url: /api/v1/email/listEmailConfig
method: post
before_sql: /setting/emailIntegration/emailIntegration_select.py
data: {"v":"${v}"}
expected:
- eq: {"$.code": 0}
- eq: {"$.data.list[?(@.id==${email_id})].email":"${email_address}"}
- eq: {"$.data.list[?(@.id==${email_id})].emailName":"${email_name}"}
- eq: {"$.data.list[?(@.id==${email_id})].connectStatus":"${email_status}"}
- exec: {"code": "assert len(res.json()['data']['list']) == ${email_num}"}
api4:
title: 编辑邮箱信息
url: /api/v1/email/editEmailConfig
method: post
data: {"brandId":"${brandId}","emailServicerId":7,"email":"${append_email_address}","emailName":"${new_email_name}","authCode":"123456","imapAddr":"imap.com","imapPort":993,"imapSsl":0,"smtpAddr":"smtp.com","smtpPort":587,"smtpSsl":0,"enableSignature":1,"signatureContent":"<p>Best wishes&nbsp;</p><span class=\"agent-name unique-tags\" contenteditable=\"false\">Agent name</span> | <span>Customer Support</span>","authFolder":["1","2"],"id":"${append_email_id}","failedReason":"","codeType":0,"v":"${v}"}
expected:
- eq: {"$.code": 0}
api5:
title: 检查邮箱信息是否编辑成功
url: /api/v1/email/listEmailConfig
method: post
data: {"v":"${v}"}
expected:
- eq: {"$.code": 0}
- eq: {"$.data.list[?(@.id==${append_email_id})].emailName": "${new_email_name}"}
api6:
title: 删除邮箱
url: /api/v1/email/removeEmailConfig
method: post
before_sql: /setting/emailIntegration/emailIntegration_select2.py
data: {"id":"${append_email_id}","v":"${v}"}
expected:
- eq: {"$.code": 0}
api7:
title: 检查邮箱是否删除成功
url: /api/v1/email/listEmailConfig
method: post
data: {"v":"${v}"}
expected:
- eq: {"$.code": 0}
- not_in_list: {"$.data.list[*].id": "${append_email_id}"}
api1:
title: 检查WhatsApp集成列表
url: /api/v1/whatsapp/local/getWABAInfo
method: post
data: {"v":"${v}"}
before_sql: setting/whatsappIntegration/whatsappIntegration_account_select.py
expected:
- eq: {"$.code": 0}
- eq: {"$.data.wabas[?(@.wabaId == '${whatsapp_waba_id}')].displayName": "${whatsapp_waba_name}"}
- eq: {"$.data.wabas[?(@.wabaId == '${whatsapp_waba_id}')].phones[0].phoneNumber": "${whatsapp_phone_number}"}
- eq: {"$.data.wabas[?(@.wabaId == '${whatsapp_waba_id}')].phones[0].verifiedName": "${whatsapp_display_name}"}
- eq: {"$.data.wabas[?(@.wabaId == '${whatsapp_waba_id}')].phones[0].status": "${whatsapp_status}"}
- exec: {"code": "assert len(res.json()['data']['wabas']) == ${waba_num}"}
api2:
title: 新增WhatsApp模板
url: /api/v1/whatsapp/local/createTemplate
method: post
data: {"wabaId":"${whatsapp_waba_id}","category":"${template_category}","language":"${template_language}","components":[{"Type":"BODY","Text":"${template_content}"},{"Type":"FOOTER","Text":"${template_footer}"}],"name":"${template_header}","example":{},"v":"${v}"}
expected:
- eq: {"$.code": 0}
sleep: 1
api3:
title: 检查WhatsApp模板列表
url: /api/v1/whatsapp/local/getAllTemplates
method: post
before_sql: setting/whatsappIntegration/whatsappIntegration_template_select.py
data: { "v": "${v}" }
expected:
- eq: {"$.code": 0}
- eq: {"$.data.list[?(@.wabaId == '${whatsapp_waba_id}')].list[?(@.templateCode == '${whatsapp_template_code}')].templateName": "${whatsapp_template_name}"}
- eq: {"$.data.list[?(@.wabaId == '${whatsapp_waba_id}')].list[?(@.templateCode == '${whatsapp_template_code}')].auditStatus": "${whatsapp_template_status}"}
- eq: {"$.data.list[?(@.wabaId == '${whatsapp_waba_id}')].list[?(@.templateCode == '${whatsapp_template_code}')].components": "${whatsapp_template_content}"}
- eq: {"$.data.list[?(@.wabaId == '${whatsapp_waba_id}')].list[?(@.templateCode == '${whatsapp_template_code}')].category": "${whatsapp_template_category}"}
- eq: {"$.data.list[?(@.wabaId == '${whatsapp_waba_id}')].list[?(@.templateCode == '${whatsapp_template_code}')].language": "${whatsapp_template_language}"}
- eq: {"$.data.list[?(@.wabaId == '${whatsapp_waba_id}')].list[?(@.templateCode == '${whatsapp_template_code}')].example": "${whatsapp_template_example}"}
- exec: {"code": "assert len(res.json()['data']['list']) == ${whatsapp_active_account_num}"}
# - exec: {"code": "assert len(jsonpath.jsonpath(res.json(), '$.data.list[?(@.wabaId == \"${whatsapp_waba_id}\")].list')[0]) == ${whatsapp_template_num}"}
api4:
title: 更新WhatsApp模板
url: /api/v1/whatsapp/local/updateTemplate
method: post
data: {"wabaId":"${whatsapp_waba_id}","category":"${template_category}","language":"${template_language}","components":[{"Type":"BODY","Text":"${template_header}"},{"Type":"FOOTER","Text":"${template_footer}"}],"name":"${template_update_content}","example":{},"templateCode":"${whatsapp_template_code}","v":"${v}"}
expected:
- exec: {"code": "assert res.json()['code'] in [0,10]"}
- exec: {"code": "if res.json()['code'] == 10:\n assert res.json()['reasonCode'] == 1250003"}
api5:
title: 删除WhatsApp模板
url: /api/v1/whatsapp/local/deleteTemplate
method: post
data: {"wabaId":"${whatsapp_waba_id}","templateCode":"${delete_template_code}","v":"${v}"}
expected:
- exec: {"code": "assert res.json()['code'] in [0,10]"}
- exec: {"code": "if res.json()['code'] == 10:\n assert res.json()['reasonCode'] == 1250003"}
api6:
title: waba相关接口测试
url: /api/v1/whatsapp/local/syncWabas
method: post
after_sql: setting/whatsappIntegration/whatsappIntegration_data_delete.py
data: {"v":"${v}"}
expected:
- eq: {"$.code": 0}
\ No newline at end of file
......@@ -4,7 +4,7 @@ from Utils.sql_handler import test_env_conn
if __name__ == '__main__':
try:
# pytest.main(['-vs',r'C:\Users\rd71\PycharmProjects\willdesk_api_auto\TestCase\inbox\test_06_channel.py',f'--alluredir=./allureReports/json','--clean-alluredir'])
pytest.main(['-vs','./TestCase',f'--html=./report.html']) #allure报告一直生成不了,改用pytest自带报告
pytest.main(['-vs','./TestCase/setting/test_02_whatsappIntegration.py',f'--html=./report.html']) #allure报告一直生成不了,改用pytest自带报告
finally:
......
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