用X++代码实现自动发送mail

用X++代码实现自动发送mail

/*本源代码只适合Axapta 3.0版本,AX 2009有所不同*/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现接口自动化,可以按照以下步骤进行: 1. 安装pytest、requests、allure、openpyxl、logbook、smtplib等Python库。 2. 创建一个测试用例文件,使用pytest框架编写测试用例,使用requests库发送接口请求,使用openpyxl库读取Excel文件中的测试数据。 3. 使用allure框架生成测试报告,可以通过命令行或pytest.ini配置文件进行配置。 4. 使用logbook库记录测试过程中的日志信息,可以将日志保存到文件或发送到邮件。 5. 使用smtplib库发送测试结果邮件,可以将测试报告、日志等信息一并发送。 下面是一个简单的示例代码,可以根据自己的需求进行修改: ``` import pytest import requests import openpyxl import allure import logbook import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication # 创建日志记录器 logger = logbook.Logger('API Test') # 读取Excel文件中的测试数据 def read_test_data(filename, sheetname): wb = openpyxl.load_workbook(filename) sheet = wb[sheetname] data = [] for row in sheet.iter_rows(min_row=2): case = {} case['name'] = row[0].value case['url'] = row[1].value case['method'] = row[2].value case['headers'] = eval(row[3].value) case['params'] = eval(row[4].value) case['expected'] = eval(row[5].value) data.append(case) return data # 发送接口请求 def send_request(url, method, headers, params): if method == 'get': res = requests.get(url, headers=headers, params=params) elif method == 'post': res = requests.post(url, headers=headers, json=params) else: logger.error('Invalid request method') res = None return res # 编写测试用例 @allure.feature('API Test') @pytest.mark.parametrize('case', read_test_data('test_data.xlsx', 'Sheet1')) def test_api(case): logger.info(f"Test case: {case['name']}") with allure.step(f"Send {case['method'].upper()} request to {case['url']}"): res = send_request(case['url'], case['method'], case['headers'], case['params']) with allure.step('Verify response'): assert res.json() == case['expected'] # 生成测试报告 @pytest.fixture(scope='session', autouse=True) def attach_report(): yield allure_cmd = 'allure generate allure-results --clean -o allure-report' os.system(allure_cmd) # 发送邮件 def send_mail(): # 邮件内容 msg = MIMEMultipart() msg['Subject'] = 'API Test Report' msg['From'] = 'sender@example.com' msg['To'] = 'receiver@example.com' text = MIMEText('Please check the attachment for API test report') msg.attach(text) with open('allure-report.zip', 'rb') as f: report = MIMEApplication(f.read(), 'zip') report.add_header('Content-Disposition', 'attachment', filename='API Test Report.zip') msg.attach(report) # 发送邮件 smtp_server = 'smtp.example.com' smtp_port = 25 smtp_user = 'sender@example.com' smtp_password = 'password' server = smtplib.SMTP(smtp_server, smtp_port) server.login(smtp_user, smtp_password) server.sendmail('sender@example.com', 'receiver@example.com', msg.as_string()) server.quit() # 在测试结束后发送邮件 def pytest_terminal_summary(terminalreporter): if terminalreporter.failed: logger.error('API Test failed') else: logger.info('API Test passed') send_mail() ``` 这个示例代码中,使用了pytest框架编写测试用例,使用allure框架生成测试报告,使用logbook库记录日志信息,使用smtplib库发送邮件。在编写测试用例时,使用了openpyxl库读取Excel文件中的测试数据,使用requests库发送接口请求。在测试结束后,通过pytest_terminal_summary钩子发送邮件,将测试报告、日志等信息发送给指定的邮箱。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fandyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值