python发送邮件并返回提示_python 生成测试报告并发送邮件

前言:

使用unittest编写自动化测试脚本,执行脚本后可以很方便看到测试用例的执行情况。

但如果想向领导汇报工作,就需要提供更直观的测试报告。

思路:

使用unittest编写测试用例,HTMLTestRunner生成测试报告,yagmail发送测试报告

代码:

测试用例:

from selenium import webdriver

import unittest,time,os

from HTMLTestRunner import HTMLTestRunner

#配置信息

desired_caps = {}

desired_caps["platformName"] = "Android"

desired_caps["platformVersion"] = "7.0"

desired_caps["deviceName"] = "HuaWeiP9"

desired_caps["appPackage"] = "com.android.calculator2"

desired_caps["appActivity"] = "com.android.calculator2.Calculator"

# 支持输入中文

desired_caps["unicodeKeyboard"] = "True"

desired_caps["resetKeyboard"] = "True"

class TestCalc(unittest.TestCase):

@classmethod

def setUpClass(cls):

# 启动appium服务

cls.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)

@classmethod

def tearDownClass(cls):

cls.driver.quit()

def test_add(self):

‘‘‘加法计算‘‘‘

driver = self.driver

driver.find_element_by_id("com.android.calculator2:id/digit_7").click()

driver.find_element_by_id("com.android.calculator2:id/op_add").click()

driver.find_element_by_id("com.android.calculator2:id/digit_3").click()

driver.find_element_by_id("com.android.calculator2:id/eq").click()

res = driver.find_element_by_id("com.android.calculator2:id/formula").text

# 添加断言

self.assertEqual(res,"10","结果错误")

def test_sub(self):

‘‘‘减法计算‘‘‘

driver = self.driver

driver.find_element_by_id("com.android.calculator2:id/digit_7").click()

driver.find_element_by_id("com.android.calculator2:id/op_sub").click()

driver.find_element_by_id("com.android.calculator2:id/digit_3").click()

driver.find_element_by_id("com.android.calculator2:id/eq").click()

res = driver.find_element_by_id("com.android.calculator2:id/formula").text

# 添加断言

self.assertEqual(res,"4","结果错误")

if __name__ == "__main__":

unittest.main()

生成测试报告:

将if __name__ == "__main__": 后的语句做如下修改:

if __name__ == "__main__":

#创建测试套

suite = unittest.TestSuite()

#向测试套添加测试用例

suite.addTest(TestCalc("test_add"))

suite.addTest(TestCalc("test_sub"))

#指定测试报告存储路径 及 文件名

now = time.strftime("%Y-%m-%d %H_%M_%S")

filename= "../report/"+now+" result.html"

#使用HTMLTestRunner生成HTML测试报告

with open(filename,"wb") as f:

runner = HTMLTestRunner(

stream=f,

title="测试报告",

description = "用例执行情况"

)

runner.run(suite)

测试报告格式如图:

用例通过:

用例失败:

发送邮件

#测试报告存储路径

report_dir = "../report/"

#将测试报告文件夹下的所有文件名作为一个列表返回

lists = os.listdir(report_dir)

#对所有测试报告按照生成时间进行排序

lists.sort(key = lambda filename : os.path.getmtime(report_dir+filename))

#获取最新的测试报告

recent=lists[-1]

#指定最新的测试报告路径

file=os.path.join(report_dir,recent)

#填写登录信息

yag = yagmail.SMTP("username@126.com","password","smtp.126.com")

#邮件正文

content="计算器测试报告"

#将测试报告作为附件发送

yag.send("username@hmkx.cn","测试报告",content,file)

补充说明:

1.填写的邮箱登录密码为:126邮箱授权码,不是自己126账号的登录密码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值