基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用email 自动发送邮件
文章目录
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 实现简单的浏览器操作
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 元素定位
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 -常见的页面元素操作
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - iframe元素定位
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 元素定位场景分析
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 获取测试对象属性
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 获取测试对象状态
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 第三方控件类操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 执行JS操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - WebDriver的三种等待方式
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 模拟键盘操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 代码检查点[验证点/断言]与图像检查点
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 验证码处理
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - cookie操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 关联
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - exe文件执行
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - grid [跨浏览器远程测试-可分布式]
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - 框架设计小结
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - testng使用
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - 关于如何手动下载JAR包
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant安装、环境变量配置、ant实例及运行Ant Build 出现问题的解决方法
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用testng文件及ant 调用testng遇到的问题
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用email 自动发送邮件
持续更新中
WebDriver框架篇 - ant使用 - ant调用email 自动发送邮件
ant调用email 自动发送邮件
上图中的代码是一套完整的编译、调用testng、并自动发送邮件的完整代码,这里我们具体看一下三个 target
- target name=“run_tests_and_send_mail”
- target name=“run_tests”
- target name=“send_email”
任务集:“run_tests_and_send_mail”
从name属性我们可以看出这是实现一个执行 testng 调用然后自动发送邮件的功能,说到这里我们就不得不先说说 target name=“run_tests” 和 target name=“send_email”
从实现的步骤来看,“send_email”是在“run_tests”之后执行的,两者本身之间没有什么必然的依赖关系。
比如执行“run_tests”之前,我们必须要有相应的class,同样对应的,需要的class要先执行编译并删掉原来的class之后才能再次执行编译,然后我们才可以再执行“run_tests”。
本身这些需要执行的步骤在代码上就存在这依赖的关系。
而“send_email”不一样,因为本身“send_email”存在着testng上一个版本的报告,所以没有前面的“run_tests” 依赖,我们也仍然是可以发送邮件成功的。如果我们在 “send_email” 加上“depends=“run_tests”也是可以执行成功的。但是这种不存在代码实际上的依赖关系比较奇怪。
所以这里我们做了一个任务集 target name=”run_testsand_send_mail”,将“run_tests”与“send_email”合并起来,这样就可以了。
任务集:发送邮件:“send_email”
上图是实现发送邮件的一段 target
对于常见属性的说明:
1、 mailhost mail 服务器的地址
2、 mailport mail服务器的端口
3、 replyto 回复mail地址
4、 tolist 收件地址列表 可用子标签替代
5、 cclist 抄送地址列表 可用子标签替代
6、 bcclist 暗送地址列表 可用子标签替代
7、 message 邮件内容 一个或多个<message>子标签替代
8、messagefile 文件列表文件内容将被做为邮件内容
一个或多个<message>子标签替代
9、messagemimetype 邮件类型, 默认为text/plain
10、filset 附件列表 多个附件逗号或空格隔开 用<fileset> 子标签替代
11、user 发送邮箱的用户名
12、password 发送邮箱的密码!重点!这里是授权码!说是密码的真是误人子弟!
13、 subject 邮件标题
14、 charset 字符集
15、 encode 编码
16、 ssl 是否使用 TLS/SSL
关于发送邮件遇到报错的情况分析
1、报错 javax.mail.internet.MimeMessage
在一开始写完“send_email” 的target之后运行测试了一下,
报错”javax.mail.internet.MimeMessage”,然后就开始分析,
通过在http://www.findjar.com/index.x搜索报错信息,确认报错信息来源于mail.jar包
解决方法如下:
ant 在实现发送邮件 依赖于 activation.jar
、mail.jar
、commons-email-1.5.jar
、ant-javamail.jar
包。
其中 ant-javamail.jar
包在安装ant的时候会自动解压在 ant
的 lib
路径下。
activation.jar
、mail.jar
和 commons-email-1.5.jar
的包需要手动放到 ant
的 lib
路径下。
不知道是不是开发的大神都懂还是其他原因,网络上查到的不少资料只说这些jar包应该放在对应的路径下。但是执行过这种操作后,再执行 Run As---Ant Build
的时候,仍然报错。
其实这是有原因的,只把这些jar包放到对应的路径下之后,还应该将这些jar包添加 到ant home
里面,在 eclipse 里执行 windows-->Preference-->Ant-->Runtime
,在它的 ant home
里面加入以上jar包
然后 “Apply”—>“OK”,就可以了。
-----
2、报错 authentication failed
这个报错的原因是“身份验证失败”,在target “send_emai” 的password属性我们有段注释。通过查阅的相关资料来看,很多人都说这里输入的是邮箱的密码,即使是给出正确的密码仍报错的情况下,还是让大家输入正确的密码。
其实不然,这里的“password”输入的并不是密码,而是一种授权码,专门作用于登陆 第三方邮件客户端授权的专用密码,适用于登录以下服务: POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。
在邮箱设置里启用授权码服务之后,将password改为使用的授权码,邮件发送成功。
如何启用邮箱授权码服务?
因为我们使用的163邮箱,所以这里我们就以163邮箱为例。出于安全因素的原因,在 设置授权码时,需要绑定的手机号码接收验证码才可以设置授权码,且同一天之内只能 接收3次。
同样,QQ邮箱在设置授权码时,也需要手机执行类似的操作。
网易邮箱帮助中心:http://help.mail.163.com/faq.do?m=list&categoryID=197
腾讯邮箱帮助中心:http://service.mail.qq.com/cgi-bin/help?id=28
下图为163网易邮箱设置授权码设置方法
相关文章
- 【Spring Boot】Spring Boot之整合Sharding-JDBC(java config方式)实现分库分表(水平拆分)
- 最全三大框架整合(使用映射)——DeptAction.java
- java错误:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Bu
- java实现算年龄
- Java实现 蓝桥杯 算法训练 Anagrams问题
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- java struts2入门学习实例--将客户端IP地址和访问方式输出到浏览器
- Atitit web httphandler的实现 java python node.js c# net php 目录 1.1. Java 过滤器 servelet1 1.2. Python的
- atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty HttpListener
- Atitit.面向接口的web 原理与设计重写 路由启动绑定配置url router rewriting urlpage mvc mvp的 java c#.net php js
- paip.web数据绑定 下拉框的api设计 选择框 uapi python .net java swing jsf总结
- 1小时学会通过Java Swing Design设计java图形化
- 基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - 框架设计小结
- 【 华为OD机试 2023】 连接器问题(C++ Java JavaScript Python)
- java 中的 ?: 埃尔维斯操作符
- JAVA web四个属性的范围汇总
- 戏说java与web
- java线程池异步
- Java Instrumentation 内存马——主要是利用Instrumentation Java API来做内存注入,会用到反射机制,文中提到检测思路:注入jar包-> dump已加载class字节码->反编译成java代码-> 源码webshell检测
- 【java】Java线程池实现原理及业务中的实践
- 基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 验证码处理