Web自动化测试项目(五)测试结果通知
一、邮件通知
使用第三方邮件发送库yagmail
github地址:https://github.com/kootenpv/yagmail
安装
pip3 install yagmail
demo.py
import yagmail
# password为登陆密码或者授权码,yagmail SSL默认开启
yag = yagmail.SMTP(user='xxxxxx@163.com', password='xxxxxxx', host='smtp.163.com')
to = 'xxxxxx@qq.com'
subject = 'This is obviously the subject'
body = 'This is obviously the body'
html = '<a href="https://pypi.python.org/pypi/sky/">Click me!</a>'
yag.send(to=to, subject=subject, contents=[body,html])
在config目录下添加mail_config.ini配置文件
[163mail]
user=XXXXXX@163.com
password=XXXXXX
host=smtp.163.com
[project_member]
# 测试人员1
ceshi_1=XXXXXX@qq.com
# 测试人员2
ceshi_2=XXXXXX@qq.com
在utils目录下添加mail_utils.py
mail_utils.py
import yagmail
import configparser
import os
mail_config_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + '/config' + '/mail_config.ini'
mail_config = configparser.ConfigParser()
mail_config.read(mail_config_path)
user = mail_config['163mail']['user']
password = mail_config['163mail']['password']
host = mail_config['163mail']['host']
def send_mail(to, subject, contents, user=user, password=password, host=host):
'''https://github.com/kootenpv/yagmail'''
yag = yagmail.SMTP(user=user, password=password, host=host)
yag.send(to=to, subject=subject, contents=contents)
更新run_login_case_report.py,调用发送报告
import unittest
import configparser
from module_path import *
from test_case.test_login import TestLoginCase
from utils.se_utils import Driver
from utils.HTMLTestRunnerChart import HTMLTestRunner
from utils.mail_utils import send_mail
if __name__ == '__main__':
###### 执行测试用例 ######
cases = unittest.TestLoader().loadTestsFromTestCase(TestLoginCase)
runner = HTMLTestRunner(
title="自动化测试报告",
description="%s ,%s" % (Driver.get_driver().name, cul_platform),
stream=open(report_path, "wb"),
verbosity=2,
retry=0,
save_last_try=True)
runner.run(cases)
# 所有用例运行完后关闭浏览器
Driver.quit_driver()
###### 邮件发送 ######
config = configparser.ConfigParser()
config.read(mail_config_path)
project_member = config.items('project_member')
subject = 'Web Ui 自动化测试报告'
body = '正文内容'
to = project_member_list = [x[1] for x in project_member]
html = open(report_path, 'r', encoding='utf-8').read()
file = report_path
send_mail(to=to, subject=subject,
contents=[file])
二、钉钉通知
有空再写
Web自动化测试项目(五)测试结果通知的更多相关文章
- Web自动化测试项目搭建目录
Web自动化测试项目搭建(一) 需求与设计 Web自动化测试项目(二)BasePage实现 Web自动化测试项目(三)用例的组织与运行 Web自动化测试项目(四)测试报告 Web自动化测试项目(五)测 ...
- Web自动化测试项目(四)测试报告
测试报告生成 使用HTMLTestRunner 生成测试报告 本文使用的 HTMLTestRunner 来源于github: https://github.com/githublitao/HTMLTe ...
- Web自动化测试项目搭建(一) 需求与设计
一.项目需求 测试/生产环境更新后,自动化回归测试 项目易于维护和运行 支持多种测试策略 支持可视化测试报告 运行结果,支持多种方式通知相关人员 可定时/触发的方式运行自动化测试用例 二.设计 2.1 ...
- selenium3 web自动化测试框架 五: 数据驱动简介及基础使用
1.数据驱动概述 相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离,这样的测试脚本设计模式称为数据驱动.简单的理解为数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使 ...
- 推荐一款国产优秀的基于 AI 的 Web 自动化测试工具——kylinTOP 测试与监控平台
对于于一般的传统的自动化测试工具,如:Selenium,robotFramework,QTP等.QTP可以通过操作录制生成自动化用例脚本.生成的脚本与Selenium.robotFramework类似 ...
- web自动化测试---selenium分布式测试
使用selenium框架还可以进行分布式测试,操作如下: 准备俩台PC:A和B,ip分别为IP_A和IP_B 下载最新的selenium-standalone的jar包,可以到下面地址下载各版本的包: ...
- web自动化测试-模块驱动测试实例和数据驱动测试实例
一.模块驱动测试实例 把登录和退出统一封装在login类中,若把login类单独放在一个文件中,就可以给任一测试脚本调用,这里就跟测试脚本放一起 from selenium import webdri ...
- Web自动化测试项目(七)日志
一.日志作用 调试程序 了解系统程序运行的情况,是否正常 系统程序运行故障分析与问题定位 用来做用户行为分析和数据统计 二.为项目添加日志 └── utils ├── log_utils.py └── ...
- Web自动化测试项目(六)多环境执行
需求 使用命令行运行脚本,可以指定测试/预发布/生产环境的url,如果找不到该环境变量则默认为测试环境 python3 xxxxxx.py test 修改constants.py # DOMAIN = ...
随机推荐
- 前端Tips#2 - 将 arguments 转换成Array的最佳实践
本文同步自 JSCON简时空 - 技术博客,点击阅读 视频讲解 文字讲解 1.先讲结论 有很多种方式将 arguments 转换成数组,那么哪一种方式是最优的? 为节约大伙儿的时间,这里先说一下结论: ...
- Autofac总结
Autofac 介绍|术语 控制反转:IOC和DI IOC 调用者不再创建(不自己new)被调用者的实例,而是交给容器去创建(AutoFac就充当这里的容器),这就是控制反转 控制反转中引入的第三方对 ...
- 中小型企业级 IPS 部署
<构建基于Snort+Guardian+Iptables的IPS> 2020年的第三天,依旧如往常写文章,分享最近做的项目继<中小型企业级防火墙部署>之后的另一部分<构建 ...
- 洛谷$P$2252 取石子游戏 博弈论
正解:博弈论 解题报告: 传送门! 威佐夫博弈板子昂$QwQ$ 关于这一类问题也有个结论,是说,先手必败的状态一定形如$(\left \lfloor i+\phi \right \rfloor,\le ...
- $Noip2016/Luogu2822$ 组合数问题
$Luogu$ 看这题题解的时候看到一个好可爱的表情(●'◡'●)ノ♥ $Sol$ 首先注意到这题的模数是$k$.然而$k$并不一定是质数,所以不能用$C_n^m=\frac{n!}{m!(n-m)! ...
- 1041 考试座位号 (15 分)C语言
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...
- 谁再问elasticsearch集群Red怎么办?把这篇笔记给他
前言 可能你经历过这些Red. ...等等 那ES的Red是神么意思? 这里说的red,是指es集群的状态,一共有三种,green.red.yellow.具体含义: 冷静分析 从上图可知,集群red是 ...
- 02_css3.0 前端长度单位 px em rem vm vh vm pc pt in 你真的懂了吗?
1:废话不多说,直接看如下图表: 2:px就不过多介绍了,就是像素点的大小,加入您的屏幕分辨率为1920,则每一个相当于每一个有横着的1920个像素点: 3:em 为相对单位,一般以 body 内的 ...
- 再也不怕和老外交流了!我用python实现一个微信聊天翻译助手!
前言 在前面的一篇文章如何用python“优雅的”调用有道翻译中咱们清楚的写过如何一层一层的解开有道翻译的面纱,并且笔者说过那只是脑洞的开始.现在笔者又回来了.当你遇到一些外国小哥哥小姐姐很心动.想结 ...
- 【tf.keras】AdamW: Adam with Weight decay
论文 Decoupled Weight Decay Regularization 中提到,Adam 在使用时,L2 与 weight decay 并不等价,并提出了 AdamW,在神经网络需要正则项时 ...