'''获取jenkins报告截图基于selenium'''
import math
from selenium import webdriver
from time import sleep
def ctrl_alt():
def driver_(test=1):
if test == 1:
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=chrome_options)
else:
driver = webdriver.Chrome()
return driver
driver = driver_(2)
driver.get('http://127.0.0.1:1111/login?from=%2F')
driver.maximize_window()
a = driver.find_elements_by_class_name('normal')
a[0].send_keys('lcf')
a[1].send_keys(123456)
driver.find_element_by_class_name('submit-button').click()
print('截图开始')
driver.get('http://127.0.0.1:1111/job/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95-gitee%E4%BB%A3%E7%A0%81/allure/')
sleep(1)
driver.get_screenshot_as_file(r'F:\jb\baogao.png')
driver.get('http://127.0.0.1:1111/job/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95-gitee%E4%BB%A3%E7%A0%81/allure/#graph')
sleep(1)
driver.get_screenshot_as_file(r'F:\jb\baogao1.png')
print('截图结束')
driver.quit()
没啥好说的,代码在网上找的,能用,需要使用qq邮箱发送的话配置server = smtplib.SMTP(‘smtp.qq.com’) ,好像是这样
现在代码里是server = smtplib.SMTP(‘smtp.163.com’)
'''发送本地allure报告图片邮件'''
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.mime.application import MIMEApplication
from allure_dd import ctrl_alt
ctrl_alt()
sender = 'xxxx@163.com'
password = 'KWKYGKdfdsfOBH'
receivers = '666666@qq.com'
content = MIMEText("<html><h2>测试报告,误回复</h2>", _subtype="html", _charset="utf-8")
msg = MIMEMultipart('related')
msg.attach(content)
imageFile = r"F:\jb\baogao.png"
imageApart = MIMEImage(open(imageFile, 'rb').read(), imageFile.split('.')[-1])
imageApart.add_header('Content-Disposition', 'attachment', filename=imageFile)
msg.attach(imageApart)
imageFile = r"F:\jb\baogao1.png"
imageApart = MIMEImage(open(imageFile, 'rb').read(), imageFile.split('.')[-1])
imageApart.add_header('Content-Disposition', 'attachment', filename=imageFile)
msg.attach(imageApart)
msg['Subject'] = 'python发送附件测试-图片、Excel'
msg['From'] = sender
msg['To'] = receivers
try:
server = smtplib.SMTP('smtp.163.com')
server.login(sender, password)
server.sendmail(msg['From'], msg['To'].split(','), msg.as_string())
print('发送成功')
server.quit()
except smtplib.SMTPException as e:
print('error', e)
邮箱发送结果
现在钉钉机器人不支持发送本地图片,暂时先不发送报告图片到钉钉
'''发送接口测试信息推送钉钉消息'''
import csv
import json
import requests
a=[]
f = csv.reader(open(r'C:\Users\keking\AppData\Local\Jenkins\.jenkins\workspace\自动化测试-gitee代码\allure-report\data\suites.csv','r',encoding='UTF8'))
for i in f:
if i[0]!='Status':
a.append(i)
print(a)
api_run_count=len(a)
api_passed_count=0
api_failed_count=0
failed_case_name=[]
failed_case_path=[]
for i in a:
if i[0]=='passed':
api_passed_count+=1
elif i[0]=='failed':
failed_case_path.append(i[1])
failed_case_name.append(i[3])
api_failed_count+=1
print(api_passed_count)
print(api_failed_count)
print(failed_case_name)
print(failed_case_path)
def dd_robot():
HEADERS = {"Content-Type": "application/json;charset=utf-8"}
key = "b7ff3fd2fd9b2dc5f78xxxxxxxxxxxxx0ff1056d172d922cab"
url = f" https://oapi.dingtalk.com/robot/send?access_token={key}"
data_info = {
"msgtype": "text",
"text": {
"content": "接口测试结果:"+f'\n总共运行{api_run_count}条用例'
+ f'\n成功{api_passed_count}条用例'
+ f'\n失败{api_failed_count}条用例'
+ f'\n失败用例名称{str(failed_case_name)}'
+ f'\n失败用例地址{str(failed_case_path)}'
"isAtAll": False
value = json.dumps(data_info)
response = requests.post(url,data=value,headers=HEADERS)
if response.json()['errmsg']!='ok':
print(response.text)
if __name__ == '__main__':
dd_robot()
我看过报告下的一些文件信息,这个文件的信息可以用来统计
suites.csv文件信息
结构
信息
新建一个任务
配置指定另一个任务构建完成后执行当前任务的构建
除了脚本文件不同其他都不一样
邮箱和钉钉子任务运行
通过修改用例错误数来看邮件失败用例和钉钉的失败用例数是否变化
每次构建自动化测试后会自动构建发送邮箱的任务,实现发邮箱钉钉,结束
3天的学习成果,就是干
首先发送邮件需要登录邮箱,这里需要用到SMTP协议,python的smtplib对它进行了一个封装,其中email是用来发送邮件的。登录邮箱需要先开启SMTP服务。设置->邮箱安全设置,开启之后会给你一个授权码,这个授权码就是我们在代码里用到的密码。
前言Python+七牛云+钉钉+ODPS实现数据获取及群消息自动推送。几个步骤获取数据制表、绘图利用七牛云获取图片url通过钉钉sdk发送群消息如果有很多信息需要推送,可以考虑在绘图时直接用subplots将图分割好; 也可以通过钉钉推送markdown内容进行多张图配置;获取数据参考python获取外部数据源e.g.def get_monitor_data():sql='select * fro...
复制以下代码,且将脚本中的user,password改为可登陆Jenkins的账号。使用 jenkins 的 emailext 插件配置邮件正文的模板,emailext 的模板中可以使用 groovy 获取 jenkins api 和 jenkins job 的环境变量,然后获取到关键信息,展示在邮件中。目前网上的pytest的测试报告邮件版本,都是以下格式,所有信息都需要通过链接进入,无法直观看出测试结果,而且链接进入需要登录,有些邮件接收人并没有Jenkins权限,需要能够直观真是测试结果的邮件。
1.获取钉钉自定义机器人
点击左上角自己的头像,点击机器人管理,在机器人管理页面选择自定义机器人,输入机器人名字并选择要发送消息的群。如果需要的话,可以为机器人设置一个头像,点击完成。并复制机器人对应的Webhook地址。
2.配置jenkins
安装完成后打开浏览器 输入:http://10.0.0.8:8080
打开配置,增加构建步骤,选择执行shell
在linux环境手动创建存放报告的文件夹,用于自动读取报告
mkdir /usr/local/tomcat/apache-tomcat-8.
pycharm中运行:pytest.main(['-s','--html=report.html'])
执行完之后,在当前目录会生成一个report.html的报告文件,显示效果如下
报告独立显示
上面方法生成的报告,css是独立的,分享报告的时候样式会丢失,为了更好的分享发邮件展示报告,
最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用,真的让人觉得阿里的pm都是脑残才会设计出这种脑残产品,不过吐槽归吐槽,该用还得用,虽然钉钉别的功能很鸡肋,但是机器人这个功能还是让人眼前一亮,属于比较极客的功能,它可以将第三方服务的信息聚合到钉钉群中,实现信息的自动化同步,例如:通过聚合Github、Gitlab等源码管理...
二、拉git代码,ssh链接gitlab,jenkins服务器生成一个sshkey,全局密钥给gitlab,私钥给jenkins配置全局凭据。然后 jenkins选择gitlab地址,选择jenkis刚配置的用户凭证即可。
详情如下:
设置源码管理
在源码管理下,选择Git
Repository URL指代码仓库地址,复制Github仓库的地址填入即可。
SSH方式链接的,使用SSH