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

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. Linux root目录下.gvfs问题处理

    最近收到一些关于磁盘的告警. 查了一下相关的信息. 知道了.gvfs文件夹是GNOME桌面系统的虚拟文件系统.可能是一些其它远程桌面之前连接所产生的一个文件,确定没有人再远程后.可以手动干掉它. 通过 ...

  2. Pecan中api-paste.ini的解析

    在pecan中存在一个请求配置文件,定义服务启动程序app和过滤器filter,例如: [pipeline:main] pipeline = request_id sizelimit api-serv ...

  3. 编写一个 rpc

    手动编写一个 RPC 调用 package com.alibaba.study.rpc.framework; import java.io.ObjectInputStream; import java ...

  4. Spring:AOP

    摘要 本文内容为我在网上搜集Spring AOP资料的汇总.摘抄. AOP是一种编程思想,其对不同对象进行了横向的抽象,将不同对象的.和主流程无关的公共逻辑抽象出来以方便维护.AOP的实现基础为AOP ...

  5. Shell 运算相关

    一.${str} 二.变量替换 三.3种计算字符串长度的效率比较 四.(())用法 五.expr 六.bc 4种连续整数求和效率 七.条件测试 八.字符串测试

  6. HTML5代码段

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. jquery-confirm使用方法

    简要教程 jquery-confirm是一款功能强大的jQuery对话框和确认框插件.它提供多种内置的主题效果,可以实现ajax远程加载内容,提供动画效果和丰富的配置参数等.它的特点还有: 可以使用键 ...

  8. windows下的mongodb安装与配置

    一.下载mongodb安装文件 https://www.mongodb.com/download-center/community 选择zip压缩包方式,如:mongodb-win32-x86_64- ...

  9. Memcached和Memcache安装(64位win7)[z]

    http://www.cnblogs.com/lucky-man/p/6126667.html 一.Memcached和Memcache的区别: 网上关于Memcached和Memcache的区别的理 ...

  10. Linux 学习笔记 2:文件系统

    1.文件系统层次结构 系统目录内容: /: 根目录(之后的/都是目录分隔符) /home:用户目录 /bin: Unix常用命令,如bash, date, cat, tar等 /sbin: 管理员命令 ...