Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
askbooks
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
齐文博
askbooks
Commits
c665aff9
Commit
c665aff9
authored
Dec 26, 2022
by
左磊磊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改lemon项目-修改REMADE操作流程
parent
5f46d96b
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
328 additions
and
2 deletions
+328
-2
README.md
README.md
+1
-1
pom.xml
pom.xml
+8
-0
TestNGDataProvider.java
src/test/java/com/lemon/testng/TestNGDataProvider.java
+1
-1
EmailUtils.java
src/test/java/com/lemon/utils/EmailUtils.java
+235
-0
MailApplicationTests.java
src/test/java/com/lemon/utils/MailApplicationTests.java
+40
-0
MyAuthenticator.java
src/test/java/com/lemon/utils/MyAuthenticator.java
+34
-0
Robot.java
src/test/java/com/lemon/utils/Robot.java
+3
-0
睿思选题.xls
src/test/resources/睿思选题.xls
+0
-0
createdFiles.lst
...r-plugin/testCompile/default-testCompile/createdFiles.lst
+3
-0
inputFiles.lst
...ler-plugin/testCompile/default-testCompile/inputFiles.lst
+3
-0
RaysDataCase.class
target/test-classes/com/lemon/cases/RaysDataCase.class
+0
-0
TestNGDataProvider.class
...et/test-classes/com/lemon/testng/TestNGDataProvider.class
+0
-0
睿思选题.xls
target/test-classes/睿思选题.xls
+0
-0
No files found.
README.md
View file @
c665aff9
...
@@ -45,7 +45,7 @@ https://blog.csdn.net/qq_32972847/article/details/126511645
...
@@ -45,7 +45,7 @@ https://blog.csdn.net/qq_32972847/article/details/126511645
(3)运行mvn并得到Allure报告。
(3)运行mvn并得到Allure报告。
`mvn c
el
an test`
`mvn c
le
an test`
`mvn io.qameta.allure:allure-maven:serve`
`mvn io.qameta.allure:allure-maven:serve`
...
...
pom.xml
View file @
c665aff9
...
@@ -211,6 +211,14 @@
...
@@ -211,6 +211,14 @@
<version>
1.9.8
</version>
<version>
1.9.8
</version>
</dependency>
</dependency>
<dependency>
<groupId>
javax.mail
</groupId>
<artifactId>
mail
</artifactId>
<version>
1.4
</version>
</dependency>
</dependencies>
</dependencies>
...
...
src/test/java/com/lemon/testng/TestNGDataProvider.java
View file @
c665aff9
...
@@ -55,7 +55,7 @@ public class TestNGDataProvider {
...
@@ -55,7 +55,7 @@ public class TestNGDataProvider {
@Test
(
dataProvider
=
"datas"
)
@Test
(
dataProvider
=
"datas"
)
public
void
testLogin
(
String
username
,
String
password
)
{
public
void
testLogin
5
(
String
username
,
String
password
)
{
System
.
out
.
println
(
username
+
":"
+
password
);
System
.
out
.
println
(
username
+
":"
+
password
);
}
}
...
...
src/test/java/com/lemon/utils/EmailUtils.java
0 → 100644
View file @
c665aff9
package
com
.
lemon
.
utils
;
import
javax.activation.CommandMap
;
import
javax.activation.DataHandler
;
import
javax.activation.FileDataSource
;
import
javax.activation.MailcapCommandMap
;
import
javax.mail.*
;
import
javax.mail.internet.*
;
import
java.util.List
;
import
java.util.Properties
;
/**
* @program: Lemon
* @description:
* @author: ray
* @create: 2022-11-15 16:55
**/
/**
* 使用javax.mail发送邮件
* <p>
* 参数列表:
* 1.邮件服务器
* 2.发件人邮箱
* 3.发件人的授权密码
* 4.邮件主题
* 5.收件人,多个收件人以半角逗号分隔
* 6.抄送,多个抄送以半角逗号分隔
* 7.正文,可以用html格式的哟
* </p>
*/
public
class
EmailUtils
{
private
String
smtpHost
;
// 邮件服务器地址
private
String
sendUserName
;
// 发件人的用户名
private
String
sendUserPass
;
// 发件人密码
private
MimeMessage
mimeMsg
;
// 邮件对象
private
Multipart
mp
;
// 附件添加的组件
private
void
init
()
{
// 创建一个密码验证器
MyAuthenticator
authenticator
=
null
;
authenticator
=
new
MyAuthenticator
(
sendUserName
,
sendUserPass
);
// 实例化Properties对象
Properties
props
=
System
.
getProperties
();
props
.
put
(
"mail.smtp.host"
,
smtpHost
);
props
.
put
(
"mail.smtp.auth"
,
"true"
);
// 需要身份验证
props
.
put
(
"mail.smtp.starttls.enable"
,
"true"
);
// 建立会话
Session
session
=
Session
.
getDefaultInstance
(
props
,
authenticator
);
// 置true可以在控制台(console)上看到发送邮件的过程
session
.
setDebug
(
true
);
// 用session对象来创建并初始化邮件对象
mimeMsg
=
new
MimeMessage
(
session
);
// 生成附件组件的实例
mp
=
new
MimeMultipart
();
}
private
EmailUtils
(
String
smtpHost
,
String
sendUserName
,
String
sendUserPass
,
String
to
,
String
cc
,
String
mailSubject
,
String
mailBody
,
List
<
String
>
attachments
)
{
this
.
smtpHost
=
smtpHost
;
this
.
sendUserName
=
sendUserName
;
this
.
sendUserPass
=
sendUserPass
;
init
();
setFrom
(
sendUserName
);
setTo
(
to
);
setCC
(
cc
);
setBody
(
mailBody
);
setSubject
(
mailSubject
);
if
(
attachments
!=
null
)
{
for
(
String
attachment
:
attachments
)
{
addFileAffix
(
attachment
);
}
}
}
/**
* 邮件实体
*
* @param smtpHost 邮件服务器地址
* @param sendUserName 发件邮件地址
* @param sendUserPass 发件邮箱密码
* @param to 收件人,多个邮箱地址以半角逗号分隔
* @param cc 抄送,多个邮箱地址以半角逗号分隔
* @param mailSubject 邮件主题
* @param mailBody 邮件正文
* @param attachments 附件路径
* @return
*/
public
static
EmailUtils
entity
(
String
smtpHost
,
String
sendUserName
,
String
sendUserPass
,
String
to
,
String
cc
,
String
mailSubject
,
String
mailBody
,
List
<
String
>
attachments
)
{
return
new
EmailUtils
(
smtpHost
,
sendUserName
,
sendUserPass
,
to
,
cc
,
mailSubject
,
mailBody
,
attachments
);
}
/**
* 设置邮件主题
*
* @param mailSubject
* @return
*/
private
boolean
setSubject
(
String
mailSubject
)
{
try
{
mimeMsg
.
setSubject
(
mailSubject
);
}
catch
(
Exception
e
)
{
return
false
;
}
return
true
;
}
/**
* 设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8
*
* @param mailBody
* @return
*/
private
boolean
setBody
(
String
mailBody
)
{
try
{
BodyPart
bp
=
new
MimeBodyPart
();
bp
.
setContent
(
"<meta http-equiv=Content-Type content=text/html; charset=UTF-8>"
+
mailBody
,
"text/html;charset=UTF-8"
);
// 在组件上添加邮件文本
mp
.
addBodyPart
(
bp
);
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"设置邮件正文时发生错误!"
+
e
);
return
false
;
}
return
true
;
}
/**
* 添加一个附件
*
* @param filename 邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常
* @return
*/
public
boolean
addFileAffix
(
String
filename
)
{
try
{
if
(
filename
!=
null
&&
filename
.
length
()
>
0
)
{
BodyPart
bp
=
new
MimeBodyPart
();
FileDataSource
fileds
=
new
FileDataSource
(
filename
);
bp
.
setDataHandler
(
new
DataHandler
(
fileds
));
bp
.
setFileName
(
MimeUtility
.
encodeText
(
fileds
.
getName
(),
"utf-8"
,
null
));
// 解决附件名称乱码
mp
.
addBodyPart
(
bp
);
// 添加附件
}
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"增加邮件附件:"
+
filename
+
"发生错误!"
+
e
);
return
false
;
}
return
true
;
}
/**
* 设置发件人地址
*
* @param from 发件人地址
* @return
*/
private
boolean
setFrom
(
String
from
)
{
try
{
mimeMsg
.
setFrom
(
new
InternetAddress
(
from
));
}
catch
(
Exception
e
)
{
return
false
;
}
return
true
;
}
/**
* 设置收件人地址
*
* @param to 收件人的地址
* @return
*/
private
boolean
setTo
(
String
to
)
{
if
(
to
==
null
)
return
false
;
try
{
mimeMsg
.
setRecipients
(
Message
.
RecipientType
.
TO
,
InternetAddress
.
parse
(
to
));
}
catch
(
Exception
e
)
{
return
false
;
}
return
true
;
}
/**
* 设置抄送
*
* @param cc
* @return
*/
private
boolean
setCC
(
String
cc
)
{
if
(
cc
==
null
)
{
return
false
;
}
try
{
mimeMsg
.
setRecipients
(
Message
.
RecipientType
.
CC
,
InternetAddress
.
parse
(
cc
));
}
catch
(
Exception
e
)
{
return
false
;
}
return
true
;
}
/**
* no object DCH for MIME type multipart/mixed报错解决
*/
private
void
solveError
()
{
MailcapCommandMap
mc
=
(
MailcapCommandMap
)
CommandMap
.
getDefaultCommandMap
();
mc
.
addMailcap
(
"text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"
);
mc
.
addMailcap
(
"text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"
);
mc
.
addMailcap
(
"text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"
);
mc
.
addMailcap
(
"multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed; x-java-fallback-entry=true"
);
mc
.
addMailcap
(
"message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"
);
CommandMap
.
setDefaultCommandMap
(
mc
);
Thread
.
currentThread
().
setContextClassLoader
(
EmailUtils
.
class
.
getClassLoader
());
}
/**
* 发送邮件
*
* @return
*/
public
boolean
send
()
throws
Exception
{
mimeMsg
.
setContent
(
mp
);
mimeMsg
.
saveChanges
();
System
.
out
.
println
(
"正在发送邮件...."
);
solveError
();
Transport
.
send
(
mimeMsg
);
System
.
out
.
println
(
"发送邮件成功!"
);
return
true
;
}
}
src/test/java/com/lemon/utils/MailApplicationTests.java
0 → 100644
View file @
c665aff9
package
com
.
lemon
.
utils
;
import
org.testng.annotations.Test
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* @program: Lemon
* @description:
* @author: ray
* @create: 2022-11-15 17:05
**/
public
class
MailApplicationTests
{
@Test
public
void
sendMail
()
throws
Exception
{
//QQ邮箱测试
// String userName = "754263923@qq.com"; // 发件人邮箱
// String password = "wzxsscqpvrikbbfa"; // 发件人密码,其实不一定是邮箱的登录密码,对于QQ邮箱来说是SMTP服务的授权文本
// String smtpHost = "smtp.qq.com"; // 邮件服务器
//163邮箱测试
String
userName
=
"gblfy02@163.com"
;
// 发件人邮箱
String
password
=
"TBFJUSKCUOPEYOYU"
;
// 发件人密码,其实不一定是邮箱的登录密码,对于QQ邮箱来说是SMTP服务的授权文本
String
smtpHost
=
"smtp.163.com"
;
// 邮件服务器
String
to
=
"zuoleilei@dcrays.cn"
;
// 收件人,多个收件人以半角逗号分隔
String
cc
=
"ray-zuo@qq.com"
;
// 抄送,多个抄送以半角逗号分隔
String
subject
=
"这是邮件的主题163"
;
// 主题
String
body
=
"这是邮件的正文163"
;
// 正文,可以用html格式的哟
List
<
String
>
attachments
=
Arrays
.
asList
(
"/Users/ray/IdeaProjects/Lemon/src/test/resources/睿思选题.xls"
,
"/Users/ray/IdeaProjects/Lemon/src/test/resources/测试用例.xls"
);
// 附件的路径,多个附件也不怕
EmailUtils
emailUtils
=
EmailUtils
.
entity
(
smtpHost
,
userName
,
password
,
to
,
cc
,
subject
,
body
,
attachments
);
emailUtils
.
send
();
// 发送!
}
}
src/test/java/com/lemon/utils/MyAuthenticator.java
0 → 100644
View file @
c665aff9
package
com
.
lemon
.
utils
;
import
org.testng.util.Strings
;
import
javax.mail.Authenticator
;
import
javax.mail.PasswordAuthentication
;
/**
* @program: Lemon
* @description:
* @author: ray
* @create: 2022-11-15 16:55
**/
public
class
MyAuthenticator
extends
Authenticator
{
String
userName
=
null
;
String
password
=
null
;
public
MyAuthenticator
()
{
}
public
MyAuthenticator
(
String
username
,
String
password
)
{
this
.
userName
=
username
;
this
.
password
=
password
;
}
protected
PasswordAuthentication
getPasswordAuthentication
()
{
return
new
PasswordAuthentication
(
userName
,
password
);
}
}
src/test/java/com/lemon/utils/Robot.java
View file @
c665aff9
...
@@ -100,6 +100,9 @@ public class Robot {
...
@@ -100,6 +100,9 @@ public class Robot {
public
static
void
main
(
String
[]
args
)
throws
Exception
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
// 获取最后一次构建的编号
// 获取最后一次构建的编号
String
last_build_url
=
"http://192.168.92.13:9988/job/ryasdata_api_test/lastBuild/buildNumber"
;
String
last_build_url
=
"http://192.168.92.13:9988/job/ryasdata_api_test/lastBuild/buildNumber"
;
...
...
src/test/resources/睿思选题.xls
View file @
c665aff9
No preview for this file type
target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
View file @
c665aff9
...
@@ -2,6 +2,7 @@ com/lemon/cases/RaysDataCase.class
...
@@ -2,6 +2,7 @@ com/lemon/cases/RaysDataCase.class
com/lemon/json/POIDemo.class
com/lemon/json/POIDemo.class
com/lemon/pojo/JsonPathVaildate.class
com/lemon/pojo/JsonPathVaildate.class
com/lemon/json/PropertiesDemo.class
com/lemon/json/PropertiesDemo.class
com/lemon/utils/EmailUtils.class
com/lemon/utils/HttpUtils.class
com/lemon/utils/HttpUtils.class
com/lemon/json/StringDemo.class
com/lemon/json/StringDemo.class
com/lemon/pojo/API.class
com/lemon/pojo/API.class
...
@@ -11,6 +12,7 @@ com/lemon/pojo/WriteBackData.class
...
@@ -11,6 +12,7 @@ com/lemon/pojo/WriteBackData.class
com/lemon/reflex/reflexDemo.class
com/lemon/reflex/reflexDemo.class
com/lemon/json/Dom4jDemo.class
com/lemon/json/Dom4jDemo.class
com/lemon/json/Demo.class
com/lemon/json/Demo.class
com/lemon/utils/MyAuthenticator.class
com/lemon/utils/Robot.class
com/lemon/utils/Robot.class
com/lemon/testng/TestNGDataProvider.class
com/lemon/testng/TestNGDataProvider.class
com/lemon/cases/BaseCase.class
com/lemon/cases/BaseCase.class
...
@@ -26,6 +28,7 @@ com/lemon/utils/JDBCUtils.class
...
@@ -26,6 +28,7 @@ com/lemon/utils/JDBCUtils.class
com/lemon/json/ParseXmlDemo.class
com/lemon/json/ParseXmlDemo.class
com/lemon/pojo/Case.class
com/lemon/pojo/Case.class
com/lemon/utils/SqlUtils.class
com/lemon/utils/SqlUtils.class
com/lemon/utils/MailApplicationTests.class
com/lemon/httpclient/GetDemo.class
com/lemon/httpclient/GetDemo.class
com/lemon/testng/TestNGDemo2.class
com/lemon/testng/TestNGDemo2.class
com/lemon/constants/Constants.class
com/lemon/constants/Constants.class
target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
View file @
c665aff9
...
@@ -5,15 +5,18 @@
...
@@ -5,15 +5,18 @@
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/cases/RegisterDemoCase.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/cases/RegisterDemoCase.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/utils/AuthorizationUtils.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/utils/AuthorizationUtils.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/cases/RaysDataCase.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/cases/RaysDataCase.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/utils/MailApplicationTests.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/testng/TestNGDemo2.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/testng/TestNGDemo2.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/json/Demo.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/json/Demo.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/constants/Constants.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/constants/Constants.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/httpclient/PostDemo2.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/httpclient/PostDemo2.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/utils/MyAuthenticator.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/json/PropertiesDemo.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/json/PropertiesDemo.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/testng/TestNGDataProvider.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/testng/TestNGDataProvider.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/json/ParseXmlDemo.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/json/ParseXmlDemo.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/cases/BaseCase.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/cases/BaseCase.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/json/Dom4jDemo.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/json/Dom4jDemo.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/utils/EmailUtils.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/pojo/API.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/pojo/API.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/utils/HttpUtils.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/utils/HttpUtils.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/pojo/JsonPathVaildate.java
/Users/ray/IdeaProjects/Lemon/src/test/java/com/lemon/pojo/JsonPathVaildate.java
...
...
target/test-classes/com/lemon/cases/RaysDataCase.class
View file @
c665aff9
No preview for this file type
target/test-classes/com/lemon/testng/TestNGDataProvider.class
View file @
c665aff9
No preview for this file type
target/test-classes/睿思选题.xls
View file @
c665aff9
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment