基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用email 自动发送邮件

基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍

基于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.jarmail.jarcommons-email-1.5.jarant-javamail.jar包。

其中 ant-javamail.jar 包在安装ant的时候会自动解压在 antlib 路径下。

activation.jarmail.jarcommons-email-1.5.jar 的包需要手动放到 antlib 路径下。

不知道是不是开发的大神都懂还是其他原因,网络上查到的不少资料只说这些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网易邮箱设置授权码设置方法


在这里插入图片描述


在这里插入图片描述


Guess you like

Origin blog.csdn.net/weixin_42250835/article/details/121072039