解决Jenkins发送测试报告中用例成功失败数量为空的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决Jenkins发送测试报告中用例成功失败数量为空的问题相关的知识,希望对你有一定的参考价值。

参考技术A 使用Jenkins自动化集成发送的测试报告时,出现$TEST_COUNTS的各类值为空的情况,如下图:

关于$TEST_COUNTS用法:显示测试的数量。
· var 默认“total”。
· total 所有测试用例总数
· pass 通过测试用例数量
· fail 失败测试用例数量
· skip 跳过测试用例数量
Maven项目如果使用的是Testng框架,Jenkins集成Maven项目后,项目配置的Post-build Actions下发送email的模板Default Content如下:

发送的邮件中以下几个值显示为空,如上图

解决方法:
1、Jenkins 系统管理 -- 插件管理,安装TestNG Results插件

2、Jenkins选择对应的项目,点击配置,进入构建后操作Post-build Actions,增加构建后操作步骤-Publish TestNG Results

3、保存上述配置,再次构建,查看邮件,就可以正确获取到测试执行的数量

解决jenkins邮件发送不出去

参考技术A jenkins做自动化测试生成测试报告后发送邮件,设置邮箱后,jenkins测试邮件发送成功,构建邮件发送失败

发送邮件的设置需要设置多处:

(1) Jenkins Location
系统管理员邮件地址: 123@qq.com

(2)Extended E-mail Notification
SMTP server: smtp.qq.com
Credentials 添加 (这里没有配置邮箱和邮箱授权码导致测试邮件发送成功,构建邮件发送失败)
Default user e-mail suffix: @qq.com
Default Content Type:HTML(text/html)
Default Recipients: 123@qq.com ,aaa@126.com ,freshmboy@163.com
Reply To List: 123@qq.com

(3)邮件通知
SMTP服务器: smtp.qq.com
用户默认邮件后缀: @qq.com
高级 => √使用SMTP认证 用户名 :123@qq.com 密码:qq授权码
字符集: UTF-8
√通过发送测试邮件测试配置

Project Recipient List: 123@qq.com ,aaa@126.com
Content Type: HTML(text/html)
Default Content:

1、控制台输出邮件debug信息
在 jenkins > 设置 中 把 Extended E-mail Notification 中开启 Enable Debug Mode ,然后在构建中查看“控制台输出”时,就能看到邮件的debug信息。
2、查看debug信息
发送邮件 503 Error:
need EHLO and AUTH first !
报这个错的原因是邮箱登录需要设置安全码,切记安全码不是邮箱密码,是邮箱授权码。
Extended E-mail Notification => Credentials => 添加凭据(此处密码填写邮箱授权码)

看到其他有个回答,跟我的错误和处理方式相似:
用的QQ邮箱SMTP进行邮件发送,所有配置对了,SMPT开了,用的也是授权码,还是报错:535 Login Fail. Please enter your authorization code ,最终定位结果:把 jenkins>设置 中的 邮件通知 和 Extended E-mail Notification 的邮件发送信息设置成一致,就解决了。

1、登录进入qq邮箱 ;
2、 点击“设置” ;
3、 点击“账户” ;
4、下滑到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”;
5、点击“生成授权码”;
6、短信验证,发送短信;
7、点击“我已发送”,复制生成的授权码,即可用于jenkins配置邮箱
注:除了qq外,163等其他邮箱也可以生成授权码,用于jenkins配置邮箱

以上是关于解决Jenkins发送测试报告中用例成功失败数量为空的问题的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins 配置邮件发送测试报告

解决jenkins邮件发送不出去

Jenkins配置邮件发送测试报告给指定的人

接口测试自动化:基于Ant+Jmeter+Jenkins

Jenkins-如果测试失败,即使构建通过,也要查看任何失败图标

Jmeter; Jenkins:比较两个已解析的jtl报告,以确定构建为通过或失败