前段时间弄一个测试框架,满足公司简单网站的测试,整合了一个函数模块,包括常用的截图、邮件发送、测试报告生成,具体代码如下

import smtplib
from BSTestRunner import BSTestRunner #报告的模板,这里没用到
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import os #截图sc_image
def sc_image(driver,filename):
#获取当前模块所在路径
func_path=os.path.dirname(__file__)
#获取test_case目录
base_dir=os.path.dirname(func_path)
#将路径转化为字符串
base_dir=str(base_dir)
#对路径的字符串进行替换
base_dir=base_dir.replace('\\','/')
#获取项目文件的根目录路径
base=base_dir.split('/Website')[0]
#指定截图存放路径
filepath=base+'/Website/test_report/screenshot/'+filename
print(filepath)
#截图
driver.get_screenshot_as_file(filepath) #发送邮件函数
def send_mail(latest_report,subject):
#账号信息等
smtpserver = "smtp.163.com"
user = "******@163.com" #邮件账号
password = "******" #输入邮件服务的密码
sender = "******@163.com" #发送邮件的账号
receives = ['******@qq.com', ''] #收件人,这里可以是多个收件测试人员
subject = subject
mail_content='详细请看附件' #邮件的标题 # 构造附件内容
file_path = latest_report
send_file = open(file_path, 'rb').read()
name = os.path.basename(file_path)
att = MIMEText(send_file, 'base64', 'utf-8')
att['Content-Type'] = 'application/octet-stream'
att.add_header('Content-Disposition', 'attachment', filename=('gbk', '', name)) # 可以实现中文附件名称 # 构造发送与接收信息
msg = MIMEMultipart()
msg.attach(MIMEText(mail_content, 'html', 'utf-8'))
msg['subject'] = Header(subject, 'utf-8')
msg['From'] = sender
msg['To'] = ','.join(receives)
msg.attach(att) #发送邮件
smtp=smtplib.SMTP_SSL(smtpserver,465)
smtp.helo(smtpserver)
smtp.ehlo(smtpserver)
smtp.login(user,password) print('开始发送邮件!')
smtp.sendmail(sender,receives,msg.as_string())
smtp.quit()
print('发送邮件结束!') #报告函数
def latest_report(report_dir):
lists=os.listdir(report_dir)
lists.sort(key=lambda fn:os.path.getatime(report_dir+'\\'+fn))
print('最新的报告是:'+lists[-1]) file=os.path.join(report_dir,lists[-1])
return file

selenium自动化常用函数的更多相关文章

  1. python selenium自动化常用关键字

    工具安装: 1.安装python 2.安装selenium库(dos命令下进入selenium-2.53.2存放路径,执行pip install selenium-2.53.2) 3.将浏览器驱动放到 ...

  2. selenium webdriver常用函数

    from selenium import webdriver driver = webdriver.Ie(executable_path = "e:\\IEDriverServer" ...

  3. python中selenium自动化常用关键字

    一:定位八种方法 例如: 二:常见的webdriver方法 1.浏览器相关:(打开浏览器先导入webdriver模块) (1)set_window_size(480,800)调整浏览器宽高大小 (2) ...

  4. Scrapy——5 下载中间件常用函数、scrapy怎么对接selenium、常用的Setting内置设置有哪些

    Scrapy——5 下载中间件常用的函数 Scrapy怎样对接selenium 常用的setting内置设置 对接selenium实战 (Downloader Middleware)下载中间件常用函数 ...

  5. 利用Selenium自动化web测试

    简介: Selenium 是一个没有正式指导手册的开源项目,这让测试人员的问题调查很费时间.本文为基于 Selenium 1.0(发布于 2009 年 6 月)的测试期间的常见问题提供最佳实践. 简介 ...

  6. python+selenium自动化软件测试(第2章):WebDriver API

    2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可 ...

  7. appium自动化常用API

    常用函数 一.获得信息类API (1)获取当前页面的activity名,比如: (.ui.login.ViewPage)  current_activity() 比如我们需要实现这个登录的功能时,主要 ...

  8. selenium自动化过程中如何操作Flash动画

    最近在看python的爬虫框架(scrapy),一个词概括就是:"酸爽"!等把selenium自动化版块讲完后,打算写一写关于scrapy相关的知识,打算从源码角度解析下scrap ...

  9. plsql 常用函数-转

    PLSQL常用函数 1)处理字符的函数 || 或 CONCAT---并置运算符. 格式∶CONCAT(STRING1, STRING2) 例:’ABC’|| ’DE’=’ABCDE’ CONCAT(‘ ...

随机推荐

  1. Spinner 默认选中

    https://blog.csdn.net/u014737138/article/details/49495847 spinner.setSelection(2,true); 就这样一行代码,很重要 ...

  2. HTML中<script>的defer属性与async属性

    defer 属性会在 DOMLoaded 事件之前完成异步加载,加载不会阻塞 DOM 解析,并且 script 的顺序会按照 DOM 中的顺序加载. async 属性就是异步加载,没有什么顺序的保证.

  3. JDK环境安装步骤

    1.下载JDK https://www.oracle.com/technetwork/java/javase/downloads/index.html 下图圈中位置为最新JDK 点击进入下载页面,将页 ...

  4. as3.0 比较两个数组

    var arr1:Array=[1,2,3,4] var arr2:Array=[1,2,4,3] trace(arr1.join(",") == arr2.join(" ...

  5. 51单片机学习笔记(清翔版)(21)——ADDA数模转换

    A:anolog模拟的         D:digital数字的 AD模拟转数字,DA数字转模拟 生活中的基本都是模拟量,如温度,可以是10℃,10.1℃等 手机的背光亮度自动调节,拿到太阳光下,亮度 ...

  6. angular中如果几个请求相互不依赖,但是请求结果需要一起处理,可以使用

  7. apache-tomcat 部分中文.html .jsp 连接 404问题

    修改文件到 自己的安装目录:\apache-tomcat-7.0.79\conf 添加   Connector URIEncoding="utf-8" <Connector ...

  8. centos 安装nvm和node.js

    #安装githubyum install git -y #下载nvmgit clone git://github.com/creationix/nvm.git ~/nvm #设置nvm 自动运行;ec ...

  9. 服务管理之mysql基础

    目录 mysql基础 1. 关系型数据库介绍 1.1 数据结构模型 1.2 RDBMS专业名词 2. mysql安装与配置 2.1 mysql安装 2.2 mysql配置 3. mysql的程序组成 ...

  10. gambit软件license文件

    最近自己的gambit软件license文件已经到期,后面采用fluent的license文件后,可以使用,但不能导入文件.不过通过努力,终于找到了可以实现导入文件的代码,并且可以实现无限期的使用fl ...