python自动化测试用例只有执行失败才发送邮件代码
时间: 2023-10-12 19:09:43 浏览: 111
可以根据以下代码实现Python自动化测试用例只有执行失败才发送邮件:
```
import smtplib, unittest
class Test(unittest.TestCase):
def test_pass(self):
self.assertEqual(2 + 2, 4)
def test_fail(self):
self.assertEqual(1 + 1, 3)
def send_email():
# 定义邮件内容
SUBJECT = 'Python自动化测试用例失败邮件'
BODY = 'Python自动化测试用例有失败,请及时查看!'
# 发送邮件
smtp_server = 'smtp.qq.com'
smtp_port = '587'
smtp_sender = 'your_email@qq.com'
smtp_password = 'your_email_password'
smtp_receiver = 'receiver_email@qq.com'
smtp_obj = smtplib.SMTP(smtp_server, smtp_port)
smtp_obj.starttls()
smtp_obj.login(smtp_sender, smtp_password)
smtp_obj.sendmail(smtp_sender, smtp_receiver, 'Subject: {}\n\n{}'.format(SUBJECT, BODY))
smtp_obj.quit()
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(Test('test_pass'))
suite.addTest(Test('test_fail'))
runner = unittest.TextTestRunner()
result = runner.run(suite)
for failure in result.failures:
send_email()
break
```
在以上代码中,我们首先导入了`smtplib`和`unittest`模块。然后定义了一个测试类`Test`,其中包含两个测试用例,一个是成功的用例,一个是失败的用例。接着定义了一个发送邮件的函数`send_email()`,用于在测试用例失败时发送邮件。最后,在`if __name__ == '__main__'`中,我们将两个测试用例加入测试套件中,并通过`TextTestRunner`来运行测试用例,当有失败的用例时,通过`for`循环调用`send_email()`函数发送邮件通知。
阅读全文