Python接口自动化-Pytest-Html

发表于:2020-5-12 10:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:cp    来源:搜狗测试

  前言
  小编在搭建组内接口自动化框架过程中使用过两个HTML报告框架,Pytest-HTML和Allure,本文主要介绍下Pytest-HTML。
  Pytest-HTML是个插件,Pytest用于生成测试结果的HTML报告,兼容Python2.7和Python3.6。
  Pytest-HTML介绍
  1.Github源码地址
  https://github.com/pytest-dev/pytest-html
  2.pip安装
 pip install pytest-html
  3.执行方法
  pytest --html=report.html
  执行完后会在当前目录生成一个report.html的报告文件
  4.指定报告路径
  加入目标目录即可
 pytest --html=./report/html/report.html
  5.报告独立展示
  上面生成的报告,css是独立的,分享报告邮件的时候样式就会丢失,不好阅读,也无法筛选。
  为了更好的展示测试报告,可以把css样式合并到HTML里。
  pytest --html=report.html --self-contained-html
  6.失败重试
  失败重试依赖pytest-rerunfailures插件
  pip install pytest-rerunfailures
  用例失败再重跑一次,需要再命令行加参数--reruns
  reruns参数有2个用法:
  --reruns=RERUNS RERUNS是失败重跑的次数,默认为0
  --reruns-delay=RERUNS_DELAY  RERUNS_DELAY是失败后间隔多少s重新执行。
  pytest --reruns 1 -html=report.html --self-contained-html
  Pytest-HTML在接口框架中的使用
  1.Python SMTP发送邮件
    def SendMail(To, Title, mail_msg, From="test@sogou-inc.com", Cc=None):
  """
  :param From: 发件人
  :param To: 收件人
  :param Cc: 抄送
  :param Title: 邮件标题
  :param mail_msg: 邮件内容(可以是html,或文本)
  :return:
  """
  message = MIMEText(mail_msg, 'html', 'utf-8')
  message['From'] = Header(From, 'utf-8')
  message['To'] = Header("; ".join(To), 'utf-8')
  if Cc is not None:
  message['Cc'] = Header("; ".join(Cc), 'utf-8')
  message['Subject'] = Header(Title, 'utf-8')
  try:
  smtpObj = smtplib.SMTP()
  smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号
  smtpObj.login(mail_user, mail_pass)
  smtpObj.sendmail(From, To, message.as_string())
  print("邮件发送成功")
  except smtplib.SMTPException:
  print("Error: 无法发送邮件")
  2.Pytest-HTML执行、邮件发送
   # 利用pytest-html生成html报告
  shell = Shell()
  cmd = 'pytest --reruns 1 --html=report/html/report.html --self-contained-html'
  
 # 邮件发送
  try:
  file_name = html_report_path + '/' + 'report.html'
  f = open(file_name, 'rb')
  message = f.read()
  f.close()
  receiver = ["chenpeng01@sogou-inc.com"]
  cc = [""]
  ExSendEmail.SendMail(To=receiver, Title="【奇点广告】接口自动化测试报告", mail_msg=message, Cc=cc)
  except Exception as e:
  log.error('发送邮件失败,请检查邮件配置')
  raise
    3.测试报告展示

       本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号